Attached is my fix for IPv6 address. I think it is clear and simple way. - getting
addr directly from inet_ntop() call without manipulating it in
netsnmp_tcp6(udp6)_frmaddr(). Do you see any problem with it? This is based on v5.0.9.
Thanks,
Fong
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, August 11, 2004 11:32 PM
To: Fong Tsui
Cc: [EMAIL PROTECTED]
Subject: Re: RE: Get data using Tcp6
> From: "Fong Tsui" <[EMAIL PROTECTED]>
>
> I have checked patch [ 942155 ] IPv6 addr_string fix,
> patch [ 550830 ] Fixes for libwrap.
> Both fixes seem manipulating data after netsnmp_tcp6(udp6)_fmtaddr()
> forms the address. Why we need to reformat the ipv6 address(add
> [..]:port) at the first place ?
Hi, Fong.
Perhaps there is a misunderstanding expressed in the code.
Have you tried adding "-D ALL" to the command options ?
Did you see where the host name was being interpreted ?
>
> My local fixes for this tcpwrap issue are getting addr directly from
> inet_ntop() call without manipulating it in
> netsnmp_tcp6(udp6)_frmaddr(). It works for tcpwrap. Will my change
> cause tcp6 "Unknow host" or it is just a separated issue?
Did you attach a 'diff -u old new' patch that expresses your local fixes ?
>
>
> Thanks,
>
> Fong
>
--
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>
>I believe there are patches and a bug report in the net-snmp repository
>that might provide ideas that can be applied to your situation.
>
>In other words, there may be a need to parse the '[' and the ']'
>more intelligently ?
>
>patch [ 942155 ] IPv6 addr_string fix
>patch [ 550830 ] Fixes for libwrap
> bug [ 555417 ] bad tcpwrapper-related typecast
>
>To get clear on where the change might be made,
> "printf()" can be your friend, if used judiciously.
>
>Best Regards,
>-Mike Slifcak
>
>
>
>>-----Original Message-----
>> From: "Fong Tsui" <[EMAIL PROTECTED]>
>>
>> Hi, Greeting,
>>
>>
>> Is the followiing command correct? I am on Linux with v5.0.9.
>>
>> snmpwalk -c public tcp6:[fe80::2e0:81ff:fe25:8097]:161 ucdavis
>>
>> I lanuch snmpd on udp6:161,tcp6:161 and netstat shows it is lisening
>> on tcp. >> However, I seem have a problem to run above command. It
>> gives me "snmpwalk: >> Unknown host (Invalid argument)". What will be
>> the correct argument?
>
>>
>> snmpwalk -c public udp6:[fe80::2e0:81ff:fe25:8097]:161 ucdavis --ok
>> snmpwalk -c public tcp:192.168.102.235 ucdavis --ok
>>
>> Have I missed anything?
>>
>>
>> Thanks,
>>
>> Fong
>>
--- snmpTCPIPv6Domain.c.old 2004-08-12 14:13:59.000000000 -0700
+++ snmpTCPIPv6Domain.c 2004-08-11 15:19:44.000000000 -0700
@@ -67,12 +67,10 @@
return strdup("TCP/IPv6: unknown");
} else {
char addr[INET6_ADDRSTRLEN];
- char tmp[INET6_ADDRSTRLEN + 8];
- sprintf(tmp, "[%s]:%hd",
- inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
- INET6_ADDRSTRLEN), ntohs(to->sin6_port));
- return strdup(tmp);
+ inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
+ INET6_ADDRSTRLEN);
+ return strdup(addr);
}
}
--- snmpUDPIPv6Domain.c.old 2004-08-12 14:14:19.000000000 -0700
+++ snmpUDPIPv6Domain.c 2004-08-11 15:19:48.000000000 -0700
@@ -67,12 +67,10 @@
return strdup("UDP/IPv6: unknown");
} else {
char addr[INET6_ADDRSTRLEN];
- char tmp[INET6_ADDRSTRLEN + 8];
- sprintf(tmp, "[%s]:%hd",
- inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
- INET6_ADDRSTRLEN), ntohs(to->sin6_port));
- return strdup(tmp);
+ inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
+ INET6_ADDRSTRLEN);
+ return strdup(addr);
}
}