Lines Matching refs:cmsg
246 struct cmsghdr *cmsg; in ip_cmsg_send() local
249 for_each_cmsghdr(cmsg, msg) { in ip_cmsg_send()
250 if (!CMSG_OK(msg, cmsg)) in ip_cmsg_send()
254 cmsg->cmsg_level == SOL_IPV6 && in ip_cmsg_send()
255 cmsg->cmsg_type == IPV6_PKTINFO) { in ip_cmsg_send()
258 if (cmsg->cmsg_len < CMSG_LEN(sizeof(*src_info))) in ip_cmsg_send()
260 src_info = (struct in6_pktinfo *)CMSG_DATA(cmsg); in ip_cmsg_send()
269 if (cmsg->cmsg_level == SOL_SOCKET) { in ip_cmsg_send()
270 err = __sock_cmsg_send(sk, msg, cmsg, &ipc->sockc); in ip_cmsg_send()
276 if (cmsg->cmsg_level != SOL_IP) in ip_cmsg_send()
278 switch (cmsg->cmsg_type) { in ip_cmsg_send()
280 err = cmsg->cmsg_len - sizeof(struct cmsghdr); in ip_cmsg_send()
283 err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg), in ip_cmsg_send()
291 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct in_pktinfo))) in ip_cmsg_send()
293 info = (struct in_pktinfo *)CMSG_DATA(cmsg); in ip_cmsg_send()
300 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) in ip_cmsg_send()
302 val = *(int *)CMSG_DATA(cmsg); in ip_cmsg_send()
308 if (cmsg->cmsg_len == CMSG_LEN(sizeof(int))) in ip_cmsg_send()
309 val = *(int *)CMSG_DATA(cmsg); in ip_cmsg_send()
310 else if (cmsg->cmsg_len == CMSG_LEN(sizeof(u8))) in ip_cmsg_send()
311 val = *(u8 *)CMSG_DATA(cmsg); in ip_cmsg_send()