Lines Matching defs:sk

19  * nl_connect(sk, NETLINK_ROUTE);
28 * nl_sendto(sk, buf, sizeof(buf));
33 * nl_send(sk, nlmsg_hdr(msg));
38 * nl_sendmsg(sk, nlmsg_hdr(msg), &hdr);
45 * nl_send_auto_complete(sk, nlmsg_hdr(msg));
50 * nl_send_simple(sk, MY_MSG_TYPE, 0, buf, sizeof(buf));
59 * nl_recv(sk, &peer, &msg);
64 * nl_recvmsgs(sk, my_callback_configuration);
68 * nl_recvmsgs_default(sk);
72 * nl_wait_for_ack(sk);
78 * nl_close(sk);
98 * @arg sk Netlink socket.
106 int nl_connect(struct nl_sock *sk, int protocol)
111 sk->s_fd = socket(AF_NETLINK, SOCK_RAW, protocol);
112 if (sk->s_fd < 0) {
117 if (!(sk->s_flags & NL_SOCK_BUFSIZE_SET)) {
118 err = nl_socket_set_buffer_size(sk, 0, 0);
123 err = bind(sk->s_fd, (struct sockaddr*) &sk->s_local,
124 sizeof(sk->s_local));
130 addrlen = sizeof(sk->s_local);
131 err = getsockname(sk->s_fd, (struct sockaddr *) &sk->s_local,
138 if (addrlen != sizeof(sk->s_local)) {
143 if (sk->s_local.nl_family != AF_NETLINK) {
148 sk->s_proto = protocol;
152 close(sk->s_fd);
153 sk->s_fd = -1;
160 * @arg sk Netlink socket.
162 void nl_close(struct nl_sock *sk)
164 if (sk->s_fd >= 0) {
165 close(sk->s_fd);
166 sk->s_fd = -1;
169 sk->s_proto = 0;
181 * @arg sk Netlink socket.
186 int nl_sendto(struct nl_sock *sk, void *buf, size_t size)
190 ret = sendto(sk->s_fd, buf, size, 0, (struct sockaddr *)
191 &sk->s_peer, sizeof(sk->s_peer));
200 * @arg sk Netlink socket.
205 int nl_sendmsg(struct nl_sock *sk, struct nl_msg *msg, struct msghdr *hdr)
218 nlmsg_set_src(msg, &sk->s_local);
220 cb = sk->s_cb;
225 ret = sendmsg(sk->s_fd, hdr, 0);
235 * @arg sk Netlink socket.
240 int nl_send(struct nl_sock *sk, struct nl_msg *msg)
246 .msg_name = (void *) &sk->s_peer,
273 return nl_sendmsg(sk, msg, &hdr);
278 * @arg sk Netlink socket.
288 int nl_send_auto_complete(struct nl_sock *sk, struct nl_msg *msg)
291 struct nl_cb *cb = sk->s_cb;
295 nlh->nlmsg_pid = sk->s_local.nl_pid;
298 nlh->nlmsg_seq = sk->s_seq_next++;
301 msg->nm_protocol = sk->s_proto;
305 if (!(sk->s_flags & NL_NO_AUTO_ACK))
309 return cb->cb_send_ow(sk, msg);
311 return nl_send(sk, msg);
316 * @arg sk Netlink socket.
328 int nl_send_simple(struct nl_sock *sk, int type, int flags, void *buf,
345 err = nl_send_auto_complete(sk, msg);
361 * @arg sk Netlink socket.
378 int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla,
396 if (sk->s_flags & NL_MSG_PEEK)
405 if (sk->s_flags & NL_SOCK_PASSCRED) {
411 n = recvmsg(sk->s_fd, &msg, flags);
485 static int recvmsgs(struct nl_sock *sk, struct nl_cb *cb)
495 NL_DBG(3, "Attempting to read from %p\n", sk);
497 n = cb->cb_recv_ow(sk, &nla, &buf, &creds);
499 n = nl_recv(sk, &nla, &buf, &creds);
504 NL_DBG(3, "recvmsgs(%p): Read %d bytes\n", sk, n);
508 NL_DBG(3, "recgmsgs(%p): Processing valid message...\n", sk);
517 nlmsg_set_proto(msg, sk->s_proto);
532 else if (hdr->nlmsg_seq != sk->s_seq_expect) {
547 sk->s_seq_expect++;
550 sk, sk->s_seq_expect);
667 * @arg sk Netlink socket.
680 int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb)
683 return cb->cb_recvmsgs_ow(sk, cb);
685 return recvmsgs(sk, cb);
696 * @arg sk Netlink socket.
702 int nl_wait_for_ack(struct nl_sock *sk)
707 cb = nl_cb_clone(sk->s_cb);
712 err = nl_recvmsgs(sk, cb);