It was not made clear in several socket options that they were not supported by SOCK_STREAM; this patch fixes that. Socket options not supported by SOCK_STREAM are handled in the ip_cmsg_recv_offset function in net/ipv4/ip_sockglue.c. The function is called for udp sockets, and indirectly by ping and raw sockets, but not for TCP sockets, as they don't support these options. Signed-off-by: Oliver Crumrine <ozlinuxc@xxxxxxxxx> --- man7/ip.7 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/man7/ip.7 b/man7/ip.7 index 2b4b06324..104e65feb 100644 --- a/man7/ip.7 +++ b/man7/ip.7 @@ -828,6 +828,9 @@ is not zero, the primary local address of the interface specified by the index overwrites .I ipi_spec_dst for the routing table lookup. +Not supported for +.B SOCK_STREAM +sockets. .TP .BR IP_RECVERR " (since Linux 2.2)" .\" Precisely: since Linux 2.1.15 @@ -989,6 +992,9 @@ in which the kernel returns the original destination address of the datagram being received. The ancillary message contains a .IR "struct sockaddr_in" . +Not supported for +.B SOCK_STREAM +sockets. .TP .BR IP_RECVTOS " (since Linux 2.2)" .\" Precisely: since Linux 2.1.68 @@ -998,6 +1004,9 @@ ancillary message is passed with incoming packets. It contains a byte which specifies the Type of Service/Precedence field of the packet header. Expects a boolean integer flag. +Not supported for +.B SOCK_STREAM +sockets. .TP .BR IP_RECVTTL " (since Linux 2.2)" .\" Precisely: since Linux 2.1.68 -- 2.44.0