On Mon, 2018-10-29 at 09:52 +0530, Pushpa Thimmaiah wrote:
> Hi All,
> I am using option 'clientAddr' with IPv6 address and noticed that it is not
> working.
> so I applied patch
> https://sourceforge.net/p/net-snmp/mailman/message/33064273/ on 5.7.3 but It
> seems not working.
> Kindly let me know if I am missing any configurations.
>
> Eg:
> linux machine has ipv6 '2002::2054' and sends trap using
> 'clientAddr=2002::2056'
> There is no IPv6 '2002::2056' and trap sent out via '2002::2054'. I have
> expected it to fail when it doesnot find 2002::2056.
>
> snmp trap sender:
> /home/# /tmp/snmptrap -Dall -v 3 --clientAddr="2002::2056" -n "" -u testigmv6
> -l authNoPriv -a MD5 -A mypassword -e 0x80001f880300b0a
> e123548 udp6:[2002::2045]:162 "" .1.3.6.1.4.1.8072.2.3.1
> .1.3.6.1.4.1.8072.2.1.1 i 444
> /home#
>
> Trap Receiver shows:
> usm: USM processing begun...
> usm: match on user testigmv6
> usm: Verification succeeded.
> usm: USM processing completed.
> 2018-10-29 09:43:59 UDP/IPv6: [2002::2054]:50455 [UDP/IPv6:
> [2002::2054]:50455]:
> DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (89119) 0:14:51.19
> SNMPv2-MIB::snmpTrapOID.0 = OID:
> NET-SNMP-EXAMPLES-MIB::netSnmpExampleNotification NET-SNMP-EXAMPLES-
> MIB::netSnmpExampleInteger = INTEGER: 444
Please retest with the Net-SNMP master branch. That branch includes the patch
shown below.
$ git branch --contains cc45578c2fa0b94f776* master
$ git show cc45578c2fa0b94f776commit
cc45578c2fa0b94f7762057ee3b8a0b795c497ffAuthor: Bill Fenner
<fen...@gmail.com>Date: Sun May 6 13:05:55 2018 +0000
snmpd: BUG: 2864: use clientaddr properly The code parsed out the
address from the clientaddr spec, then used the return value wrong and only
respected it if it existed but didn't
parse properly.
diff --git a/snmplib/transports/snmpUDPIPv4BaseDomain.c
b/snmplib/transports/snmpUDPIPv4BaseDomain.cindex 37d8e33b47c7..433eb809bb91
100644--- a/snmplib/transports/snmpUDPIPv4BaseDomain.c+++
b/snmplib/transports/snmpUDPIPv4BaseDomain.c@@ -367,7 +367,7 @@
netsnmp_udpipv4base_transport(const struct sockaddr_in *addr, int local)
rc = netsnmp_sockaddr_in2(&client_addr,
client_socket, NULL); if (client_address != client_socket)
free(client_address);- if(!rc) {+ if(rc) {
if (!uses_port || !have_port) /*
if port isn't from string, */ client_addr.sin_port = 0; /*
... clear it */ return
netsnmp_udpipv4base_transport_with_source(addr, local,
Thanks,
Bart.
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders