]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r312331:
authorngie <ngie@FreeBSD.org>
Fri, 20 Jan 2017 06:22:42 +0000 (06:22 +0000)
committerngie <ngie@FreeBSD.org>
Fri, 20 Jan 2017 06:22:42 +0000 (06:22 +0000)
commitbc98894a2d3528fe78e46419ae78b9d3e420f31a
tree149b5a559182594626584cbd32b185d3065f3b46
parent9f2fdaa6ac36c62cc5148b6d163438e6ff16aa31
MFC r312331:
r312331 (by glebius):

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.
contrib/bsnmp/snmpd/trans_udp.c
contrib/bsnmp/snmpd/trans_udp.h