Add TCP_INFO support to getsockopt for tcp sessions.
authorclaudio <claudio@openbsd.org>
Thu, 11 Aug 2022 09:13:21 +0000 (09:13 +0000)
committerclaudio <claudio@openbsd.org>
Thu, 11 Aug 2022 09:13:21 +0000 (09:13 +0000)
commitced6d44d3b6b8e0b34987d39fdb7319e7ac81cb1
treea32931413991a5568100b8cc3c48ad374e67f9fc
parent20c1567ca25d5ced79e16ffbeabf9c5a574dd261
Add TCP_INFO support to getsockopt for tcp sessions.

TCP_INFO provides a lot of information about the TCP session of this socket.
Many processes like to peek at the rtt of a connection but this also provides
a lot of more special info for use by e.g. tcpbench(1).
While the basic minimal info is available all the time the more specific
data is only populated for privileged processes. This is done to not share
data back to userland that may allow to attack a session.
TCP_INFO is available to pledge "inet" since pledged processes like chrome
tend to use TCP_INFO when available.
OK bluhm@
sys/kern/kern_pledge.c
sys/netinet/tcp.h
sys/netinet/tcp_input.c
sys/netinet/tcp_output.c
sys/netinet/tcp_usrreq.c
sys/netinet/tcp_var.h