Skip to content

Commit b5d185c

Browse files
committed
picosocks.c: improve fallback code
1 parent 14b222e commit b5d185c

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

picoquic/picosocks.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,11 @@ void picoquic_socks_cmsg_parse(
448448
}
449449
}
450450
#endif
451-
else if ((cmsg->cmsg_type == IP_TOS || cmsg->cmsg_type == IP_RECVTOS) && cmsg->cmsg_len > 0) {
451+
else if ((cmsg->cmsg_type == IP_TOS
452+
#ifdef IP_RECVTOS
453+
|| cmsg->cmsg_type == IP_RECVTOS
454+
#endif
455+
) && cmsg->cmsg_len > 0) {
452456
if (received_ecn != NULL) {
453457
*received_ecn = *((unsigned char*)CMSG_DATA(cmsg));
454458
}
@@ -642,7 +646,13 @@ void picoquic_socks_cmsg_format(
642646
#else
643647
/* The IP_PKTINFO structure is not defined on BSD */
644648
struct in_addr* pktinfo = (struct in_addr*)cmsg_format_header_return_data_ptr(msg, &last_cmsg,
645-
&control_length, IPPROTO_IP, IP_SENDSRCADDR, sizeof(struct in_addr));
649+
&control_length, IPPROTO_IP,
650+
#ifdef IP_SENDSRCADDR
651+
IP_SENDSRCADDR
652+
#else
653+
IP_RECVDSTADDR
654+
#endif
655+
, sizeof(struct in_addr));
646656
if (pktinfo != NULL) {
647657
pktinfo->s_addr = ((struct sockaddr_in*)addr_from)->sin_addr.s_addr;
648658
}

0 commit comments

Comments
 (0)