Lines Matching defs:sk

72 	struct nl_sock *sk;
74 sk = calloc(1, sizeof(*sk));
75 if (!sk)
78 sk->s_fd = -1;
79 sk->s_cb = cb;
80 sk->s_local.nl_family = AF_NETLINK;
81 sk->s_peer.nl_family = AF_NETLINK;
82 sk->s_seq_expect = sk->s_seq_next = time(0);
83 sk->s_local.nl_pid = generate_local_port();
84 if (sk->s_local.nl_pid == UINT_MAX) {
85 nl_socket_free(sk);
89 return sk;
127 * @arg sk Netlink socket.
129 void nl_socket_free(struct nl_sock *sk)
131 if (!sk)
134 if (sk->s_fd >= 0)
135 close(sk->s_fd);
137 if (!(sk->s_flags & NL_OWN_PORT))
138 release_local_port(sk->s_local.nl_pid);
140 nl_cb_put(sk->s_cb);
141 free(sk);
159 * @arg sk Netlink socket.
168 void nl_socket_disable_seq_check(struct nl_sock *sk)
170 nl_cb_set(sk->s_cb, NL_CB_SEQ_CHECK,
178 * @arg sk Netlink socket.
184 void nl_socket_set_local_port(struct nl_sock *sk, uint32_t port)
188 sk->s_flags &= ~NL_OWN_PORT;
190 if (!(sk->s_flags & NL_OWN_PORT))
191 release_local_port(sk->s_local.nl_pid);
192 sk->s_flags |= NL_OWN_PORT;
195 sk->s_local.nl_pid = port;
207 * @arg sk Netlink socket
221 int nl_socket_add_memberships(struct nl_sock *sk, int group, ...)
226 if (sk->s_fd == -1)
235 err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP,
250 * @arg sk Netlink socket
260 int nl_socket_drop_memberships(struct nl_sock *sk, int group, ...)
265 if (sk->s_fd == -1)
274 err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_DROP_MEMBERSHIP,
292 * @arg sk Netlink socket.
296 int nl_socket_set_nonblocking(struct nl_sock *sk)
298 if (sk->s_fd == -1)
301 if (fcntl(sk->s_fd, F_SETFL, O_NONBLOCK) < 0)
316 * @arg sk Netlink socket.
327 int nl_socket_set_buffer_size(struct nl_sock *sk, int rxbuf, int txbuf)
337 if (sk->s_fd == -1)
340 err = setsockopt(sk->s_fd, SOL_SOCKET, SO_SNDBUF,
345 err = setsockopt(sk->s_fd, SOL_SOCKET, SO_RCVBUF,
350 sk->s_flags |= NL_SOCK_BUFSIZE_SET;
357 * @arg sk Netlink socket.
362 int nl_socket_set_passcred(struct nl_sock *sk, int state)
366 if (sk->s_fd == -1)
369 err = setsockopt(sk->s_fd, SOL_SOCKET, SO_PASSCRED,
375 sk->s_flags |= NL_SOCK_PASSCRED;
377 sk->s_flags &= ~NL_SOCK_PASSCRED;
384 * @arg sk Netlink socket.
389 int nl_socket_recv_pktinfo(struct nl_sock *sk, int state)
393 if (sk->s_fd == -1)
396 err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_PKTINFO,