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)
210 nlmsg_set_src(msg, &sk->s_local);
212 cb = sk->s_cb;
217 ret = sendmsg(sk->s_fd, hdr, 0);
228 * @arg sk Netlink socket.
235 int nl_send_iovec(struct nl_sock *sk, struct nl_msg *msg, struct iovec *iov, unsigned iovlen)
240 .msg_name = (void *) &sk->s_peer,
269 return nl_sendmsg(sk, msg, &hdr);
276 * @arg sk Netlink socket.
281 int nl_send(struct nl_sock *sk, struct nl_msg *msg)
288 return nl_send_iovec(sk, msg, &iov, 1);
291 void nl_auto_complete(struct nl_sock *sk, struct nl_msg *msg)
297 nlh->nlmsg_pid = sk->s_local.nl_pid;
300 nlh->nlmsg_seq = sk->s_seq_next++;
303 msg->nm_protocol = sk->s_proto;
307 if (!(sk->s_flags & NL_NO_AUTO_ACK))
313 * @arg sk Netlink socket.
323 int nl_send_auto_complete(struct nl_sock *sk, struct nl_msg *msg)
325 struct nl_cb *cb = sk->s_cb;
327 nl_auto_complete(sk, msg);
330 return cb->cb_send_ow(sk, msg);
332 return nl_send(sk, msg);
337 * @arg sk Netlink socket.
349 int nl_send_simple(struct nl_sock *sk, int type, int flags, void *buf,
366 err = nl_send_auto_complete(sk, msg);
382 * @arg sk Netlink socket.
399 int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla,
417 if (sk->s_flags & NL_MSG_PEEK)
426 if (sk->s_flags & NL_SOCK_PASSCRED) {
432 n = recvmsg(sk->s_fd, &msg, flags);
506 static int recvmsgs(struct nl_sock *sk, struct nl_cb *cb)
516 NL_DBG(3, "Attempting to read from %p\n", sk);
518 n = cb->cb_recv_ow(sk, &nla, &buf, &creds);
520 n = nl_recv(sk, &nla, &buf, &creds);
525 NL_DBG(3, "recvmsgs(%p): Read %d bytes\n", sk, n);
529 NL_DBG(3, "recgmsgs(%p): Processing valid message...\n", sk);
538 nlmsg_set_proto(msg, sk->s_proto);
553 else if (hdr->nlmsg_seq != sk->s_seq_expect) {
568 sk->s_seq_expect++;
571 sk, sk->s_seq_expect);
688 * @arg sk Netlink socket.
701 int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb)
704 return cb->cb_recvmsgs_ow(sk, cb);
706 return recvmsgs(sk, cb);
711 * @arg sk Netlink socket.
715 int nl_recvmsgs_default(struct nl_sock *sk)
717 return nl_recvmsgs(sk, sk->s_cb);
728 * @arg sk Netlink socket.
734 int nl_wait_for_ack(struct nl_sock *sk)
739 cb = nl_cb_clone(sk->s_cb);
744 err = nl_recvmsgs(sk, cb);