Gentlemen, today is a sad day, for the man pages have failed me 
I was writing a networking app in C, and I had to refresh my memory on the socket API, and I was reading this man page as a reference on multicasting:
and in it there is this passage, and I quote:
However, when attempting to compile my humble code, my not so humble compiler decided to bless me with the gift of forbidden knowledge:
So, in utter panic I grepped:
and in the wreckage of the output i spotted:
(Also, I confirmed that this is also the case upstream: https://github.com/freebsd/freebsd-src/blob/main/sys/netinet/in.h#L563)
So, my question is, where should i report this discrepancy?
Should I write an email or something?
For any help, I thank you kindly.
I was writing a networking app in C, and I had to refresh my memory on the socket API, and I was reading this man page as a reference on multicasting:
and in it there is this passage, and I quote:
A host must become a member of a multicast group before it can receive
datagrams sent to the group. To join a multicast group, use the
IP_ADD_MEMBERSHIP option:
struct ip_mreqn mreqn;
setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreqn, sizeof(mreqn));
where mreqn is the following structure:
struct ip_mreqn {
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
int imr_ifindex; /* interface index */
}
However, when attempting to compile my humble code, my not so humble compiler decided to bless me with the gift of forbidden knowledge:
server.c:97:41: error: no member named 'imr_interface' in 'struct ip_mreqn'
So, in utter panic I grepped:
grep -rnEI "struct ip_mreqn" -A 10 /usr/include
and in the wreckage of the output i spotted:
/usr/include/netinet/in.h:564:struct ip_mreqn {
/usr/include/netinet/in.h-565- struct in_addr imr_multiaddr; /* IP multicast address of group */
/usr/include/netinet/in.h-566- struct in_addr imr_address; /* local IP address of interface */
/usr/include/netinet/in.h-567- int imr_ifindex; /* Interface index; cast to uint32_t */
/usr/include/netinet/in.h-568-};
(Also, I confirmed that this is also the case upstream: https://github.com/freebsd/freebsd-src/blob/main/sys/netinet/in.h#L563)
So, my question is, where should i report this discrepancy?
Should I write an email or something?
For any help, I thank you kindly.