HomeFreeBSD

Fix regression from r310655, which broke operation of bsnmpd if it is bound

Description

Fix regression from r310655, which broke operation of bsnmpd if it is bound
to a non-wildcard address. As documented in ip(4), doing sendmsg(2) with
IP_SENDSRCADDR on a socket that is bound to non-wildcard address is
completely different to using this control message on a wildcard one.

A fix is to add a bool to mark whether we did setsockopt(IP_RECVDSTADDR)
on the socket, and use IP_SENDSRCADDR control message only if we did.

While here, garbage collect absolutely useless udp_recv() function that
establishes some structures on stack to never use them later.

Details

Provenance
glebiusAuthored on
Parents
rS312330: Add smilint target to subdir targets so "make smilint" here will run
Branches
Unknown
Tags
Unknown