Lines Matching defs:cmsg

637 	struct cmsghdr *cmsg;
660 cmsg = CMSG_FIRSTHDR(&msg);
666 cmsg->cmsg_level = IPPROTO_IP;
667 cmsg->cmsg_type = IP_PKTINFO;
668 memmove(CMSG_DATA(cmsg), &r->pktinfo.v4info,
671 cmsg_data = CMSG_DATA(cmsg);
673 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo));
675 if(sizeof(struct in_pktinfo) < cmsg->cmsg_len)
676 memset(((uint8_t*)(CMSG_DATA(cmsg))) +
677 sizeof(struct in_pktinfo), 0, cmsg->cmsg_len
682 cmsg->cmsg_level = IPPROTO_IP;
683 cmsg->cmsg_type = IP_SENDSRCADDR;
684 memmove(CMSG_DATA(cmsg), &r->pktinfo.v4addr,
686 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
688 if(sizeof(struct in_addr) < cmsg->cmsg_len)
689 memset(((uint8_t*)(CMSG_DATA(cmsg))) +
690 sizeof(struct in_addr), 0, cmsg->cmsg_len
700 cmsg->cmsg_level = IPPROTO_IPV6;
701 cmsg->cmsg_type = IPV6_PKTINFO;
702 memmove(CMSG_DATA(cmsg), &r->pktinfo.v6info,
705 cmsg_data = CMSG_DATA(cmsg);
707 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
709 if(sizeof(struct in6_pktinfo) < cmsg->cmsg_len)
710 memset(((uint8_t*)(CMSG_DATA(cmsg))) +
711 sizeof(struct in6_pktinfo), 0, cmsg->cmsg_len
717 cmsg->cmsg_level = IPPROTO_IPV6;
718 cmsg->cmsg_type = IPV6_PKTINFO;
719 memset(CMSG_DATA(cmsg), 0, sizeof(struct in6_pktinfo));
720 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
722 if(sizeof(struct in6_pktinfo) < cmsg->cmsg_len)
723 memset(((uint8_t*)(CMSG_DATA(cmsg))) +
724 sizeof(struct in6_pktinfo), 0, cmsg->cmsg_len
1007 struct cmsghdr* cmsg;
1051 for(cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL;
1052 cmsg = CMSG_NXTHDR(&msg, cmsg)) {
1053 if( cmsg->cmsg_level == IPPROTO_IPV6 &&
1054 cmsg->cmsg_type == IPV6_PKTINFO) {
1056 memmove(&rep.pktinfo.v6info, CMSG_DATA(cmsg),
1060 } else if( cmsg->cmsg_level == IPPROTO_IP &&
1061 cmsg->cmsg_type == IP_PKTINFO) {
1063 memmove(&rep.pktinfo.v4info, CMSG_DATA(cmsg),
1067 } else if( cmsg->cmsg_level == IPPROTO_IP &&
1068 cmsg->cmsg_type == IP_RECVDSTADDR) {
1070 memmove(&rep.pktinfo.v4addr, CMSG_DATA(cmsg),
1075 } else if( cmsg->cmsg_level == SOL_SOCKET &&
1076 cmsg->cmsg_type == SO_TIMESTAMPNS) {
1077 ts = (struct timespec *)CMSG_DATA(cmsg);
1079 } else if( cmsg->cmsg_level == SOL_SOCKET &&
1080 cmsg->cmsg_type == SO_TIMESTAMPING) {
1081 ts = (struct timespec *)CMSG_DATA(cmsg);
1083 } else if( cmsg->cmsg_level == SOL_SOCKET &&
1084 cmsg->cmsg_type == SO_TIMESTAMP) {
1085 memmove(&rep.c->recv_tv, CMSG_DATA(cmsg), sizeof(struct timeval));
1233 struct cmsghdr* cmsg;
1236 cmsg = CMSG_FIRSTHDR(msg);
1245 cmsg->cmsg_level = IPPROTO_IP;
1246 cmsg->cmsg_type = IP_PKTINFO;
1256 memmove(CMSG_DATA(cmsg), &v4info, sizeof(struct in_pktinfo));
1257 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo));
1264 cmsg->cmsg_level = IPPROTO_IP;
1265 cmsg->cmsg_type = IP_SENDSRCADDR;
1266 memmove(CMSG_DATA(cmsg), &sa->sin_addr,
1268 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
1277 cmsg->cmsg_level = IPPROTO_IPV6;
1278 cmsg->cmsg_type = IPV6_PKTINFO;
1283 memmove(CMSG_DATA(cmsg), &v6info, sizeof(struct in6_pktinfo));
1284 cmsg->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
1447 struct cmsghdr* cmsg;
1452 for(cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL;
1453 cmsg = CMSG_NXTHDR(msg, cmsg)) {
1454 if( cmsg->cmsg_level == IPPROTO_IPV6 &&
1455 cmsg->cmsg_type == IPV6_PKTINFO) {
1457 (struct in6_pktinfo*)CMSG_DATA(cmsg);
1463 log_err("doq cmsg family mismatch cmsg is ip6");
1476 } else if( cmsg->cmsg_level == IPPROTO_IP &&
1477 cmsg->cmsg_type == IP_PKTINFO) {
1479 (struct in_pktinfo*)CMSG_DATA(cmsg);
1485 log_err("doq cmsg family mismatch cmsg is ip4");
1498 } else if( cmsg->cmsg_level == IPPROTO_IP &&
1499 cmsg->cmsg_type == IP_RECVDSTADDR) {
1505 log_err("doq cmsg family mismatch cmsg is ip4");
1513 memmove(&sa.sin_addr, CMSG_DATA(cmsg),
1530 struct cmsghdr* cmsg;
1532 for(cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL;
1533 cmsg = CMSG_NXTHDR(msg, cmsg)) {
1534 if(cmsg->cmsg_level == IPPROTO_IPV6 &&
1535 cmsg->cmsg_type == IPV6_TCLASS &&
1536 cmsg->cmsg_len != 0) {
1537 uint8_t* ecn = (uint8_t*)CMSG_DATA(cmsg);
1543 for(cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL;
1544 cmsg = CMSG_NXTHDR(msg, cmsg)) {
1545 if(cmsg->cmsg_level == IPPROTO_IP &&
1546 cmsg->cmsg_type == IP_TOS &&
1547 cmsg->cmsg_len != 0) {
1548 uint8_t* ecn = (uint8_t*)CMSG_DATA(cmsg);