Lines Matching refs:msg

56 static void ip_cmsg_recv_pktinfo(struct msghdr *msg, struct sk_buff *skb)  in ip_cmsg_recv_pktinfo()  argument
62 put_cmsg(msg, SOL_IP, IP_PKTINFO, sizeof(info), &info); in ip_cmsg_recv_pktinfo()
65 static void ip_cmsg_recv_ttl(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_ttl() argument
68 put_cmsg(msg, SOL_IP, IP_TTL, sizeof(int), &ttl); in ip_cmsg_recv_ttl()
71 static void ip_cmsg_recv_tos(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_tos() argument
73 put_cmsg(msg, SOL_IP, IP_TOS, 1, &ip_hdr(skb)->tos); in ip_cmsg_recv_tos()
76 static void ip_cmsg_recv_opts(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_opts() argument
81 put_cmsg(msg, SOL_IP, IP_RECVOPTS, IPCB(skb)->opt.optlen, in ip_cmsg_recv_opts()
86 static void ip_cmsg_recv_retopts(struct net *net, struct msghdr *msg, in ip_cmsg_recv_retopts() argument
96 msg->msg_flags |= MSG_CTRUNC; in ip_cmsg_recv_retopts()
101 put_cmsg(msg, SOL_IP, IP_RETOPTS, opt->optlen, opt->__data); in ip_cmsg_recv_retopts()
104 static void ip_cmsg_recv_fragsize(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_fragsize() argument
112 put_cmsg(msg, SOL_IP, IP_RECVFRAGSIZE, sizeof(val), &val); in ip_cmsg_recv_fragsize()
115 static void ip_cmsg_recv_checksum(struct msghdr *msg, struct sk_buff *skb, in ip_cmsg_recv_checksum() argument
128 put_cmsg(msg, SOL_IP, IP_CHECKSUM, sizeof(__wsum), &csum); in ip_cmsg_recv_checksum()
131 static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_security() argument
145 put_cmsg(msg, SOL_IP, SCM_SECURITY, seclen, secdata); in ip_cmsg_recv_security()
149 static void ip_cmsg_recv_dstaddr(struct msghdr *msg, struct sk_buff *skb) in ip_cmsg_recv_dstaddr() argument
168 put_cmsg(msg, SOL_IP, IP_ORIGDSTADDR, sizeof(sin), &sin); in ip_cmsg_recv_dstaddr()
171 void ip_cmsg_recv_offset(struct msghdr *msg, struct sock *sk, in ip_cmsg_recv_offset() argument
181 ip_cmsg_recv_pktinfo(msg, skb); in ip_cmsg_recv_offset()
189 ip_cmsg_recv_ttl(msg, skb); in ip_cmsg_recv_offset()
197 ip_cmsg_recv_tos(msg, skb); in ip_cmsg_recv_offset()
205 ip_cmsg_recv_opts(msg, skb); in ip_cmsg_recv_offset()
213 ip_cmsg_recv_retopts(sock_net(sk), msg, skb); in ip_cmsg_recv_offset()
221 ip_cmsg_recv_security(msg, skb); in ip_cmsg_recv_offset()
229 ip_cmsg_recv_dstaddr(msg, skb); in ip_cmsg_recv_offset()
237 ip_cmsg_recv_checksum(msg, skb, tlen, offset); in ip_cmsg_recv_offset()
240 ip_cmsg_recv_fragsize(msg, skb); in ip_cmsg_recv_offset()
244 int ip_cmsg_send(struct sock *sk, struct msghdr *msg, struct ipcm_cookie *ipc, in ip_cmsg_send() argument
251 for_each_cmsghdr(cmsg, msg) { in ip_cmsg_send()
252 if (!CMSG_OK(msg, cmsg)) in ip_cmsg_send()
525 int ip_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len) in ip_recv_error() argument
529 DECLARE_SOCKADDR(struct sockaddr_in *, sin, msg->msg_name); in ip_recv_error()
544 msg->msg_flags |= MSG_TRUNC; in ip_recv_error()
547 err = skb_copy_datagram_msg(skb, 0, msg, copied); in ip_recv_error()
552 sock_recv_timestamp(msg, sk, skb); in ip_recv_error()
573 ip_cmsg_recv(msg, skb); in ip_recv_error()
576 put_cmsg(msg, SOL_IP, IP_RECVERR, sizeof(errhdr), &errhdr); in ip_recv_error()
580 msg->msg_flags |= MSG_ERRQUEUE; in ip_recv_error()
1697 struct msghdr msg; in do_ip_getsockopt() local
1705 msg.msg_control_is_user = false; in do_ip_getsockopt()
1706 msg.msg_control = optval.kernel; in do_ip_getsockopt()
1708 msg.msg_control_is_user = true; in do_ip_getsockopt()
1709 msg.msg_control_user = optval.user; in do_ip_getsockopt()
1711 msg.msg_controllen = len; in do_ip_getsockopt()
1712 msg.msg_flags = in_compat_syscall() ? MSG_CMSG_COMPAT : 0; in do_ip_getsockopt()
1720 put_cmsg(&msg, SOL_IP, IP_PKTINFO, sizeof(info), &info); in do_ip_getsockopt()
1724 put_cmsg(&msg, SOL_IP, IP_TTL, sizeof(hlim), &hlim); in do_ip_getsockopt()
1728 put_cmsg(&msg, SOL_IP, IP_TOS, sizeof(tos), &tos); in do_ip_getsockopt()
1730 len -= msg.msg_controllen; in do_ip_getsockopt()