Lines Matching defs:conn
54 struct udev_ctrl_connection *conn;
188 struct udev_ctrl_connection *conn;
193 conn = new(struct udev_ctrl_connection, 1);
194 if (conn == NULL)
196 conn->refcount = 1;
197 conn->uctrl = uctrl;
200 conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
203 if ( conn->sock < 0 && (errno == ENOSYS || errno == EOPNOTSUPP) )
204 conn->sock = accept4_fallback(uctrl->sock);
206 conn->sock = accept4_fallback(uctrl->sock);
209 if (conn->sock < 0) {
216 r = getpeercred(conn->sock, &ucred);
227 r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
232 return conn;
234 if (conn->sock >= 0)
235 close(conn->sock);
236 free(conn);
240 struct udev_ctrl_connection *udev_ctrl_connection_ref(struct udev_ctrl_connection *conn) {
241 if (conn == NULL)
243 conn->refcount++;
244 return conn;
247 struct udev_ctrl_connection *udev_ctrl_connection_unref(struct udev_ctrl_connection *conn) {
248 if (conn && -- conn->refcount == 0) {
249 if (conn->sock >= 0)
250 close(conn->sock);
252 udev_ctrl_unref(conn->uctrl);
254 free(conn);
346 struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
364 uctrl_msg->conn = conn;
365 udev_ctrl_connection_ref(conn);
372 pfd[0].fd = conn->sock;
396 size = recvmsg(conn->sock, &smsg, 0);
430 udev_ctrl_connection_unref(ctrl_msg->conn);