Solved What to do with documentation discrepancy?

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:

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.
 
Back
Top