[prev in list] [next in list] [prev in thread] [next in thread]
List: net-snmp-coders
Subject: Re: clientAddr ipv6
From: Pushpa Thimmaiah <pushpa.thimmaiah () gmail ! com>
Date: 2018-10-31 5:33:07
Message-ID: CAASqVJU+0Txnmp6rezBJ-Bw-zJXWqbKJkxXoyAPZVvhTQGtP_A () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Thank you Bart. I will check.
Regards,
Pushpa.T
On Tue, Oct 30, 2018 at 10:34 AM Bart Van Assche <bvanassche@acm.org> wrote:
> On 10/29/18 9:34 PM, Pushpa Thimmaiah wrote:
> > Thank you. I will verify. Does the patch works for IPv6 too?
>
> Oops, I had overlooked that your example uses an IPv6 client address.
> Can you verify whether the following (untested) patch helps (checked
> in yesterday on the v5.8 and master branches):
>
> commit 9b637efe809c490fdcaf30d1af20b4cbaef76e3e
> Author: Bart Van Assche <bvanassche@acm.org>
> Date: Sat Oct 27 20:34:21 2018 -0700
>
> libsnmp/transports: Fix netsnmp_udp6_transport()
>
> Only create a transport object if parsing the client address succeeded
> instead of creating a transport object when parsing the client address
> failed.
>
> Fixes: 5d8372341594 ("shared transport + udp shared domain")
>
> diff --git a/snmplib/transports/snmpUDPIPv6Domain.c
> b/snmplib/transports/snmpUDPIPv6Domain.c
> index 4d9f65eb9d19..7a3b1db15c67 100644
> --- a/snmplib/transports/snmpUDPIPv6Domain.c
> +++ b/snmplib/transports/snmpUDPIPv6Domain.c
> @@ -460,14 +460,16 @@ netsnmp_udp6_transport(const struct sockaddr_in6
> *addr, int local)
> {
> if (!local) {
> const char *client_socket;
> +
> client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
>
> NETSNMP_DS_LIB_CLIENT_ADDR);
> if (client_socket) {
> struct sockaddr_in6 client_addr;
> - if(!netsnmp_sockaddr_in6_2(&client_addr, client_socket,
> NULL)) {
> - return netsnmp_udp6_transport_with_source(addr, local,
> - &client_addr);
> - }
> +
> + if (!netsnmp_sockaddr_in6_2(&client_addr, client_socket,
> NULL))
> + return NULL;
> + return netsnmp_udp6_transport_with_source(addr, local,
> + &client_addr);
> }
> }
> return netsnmp_udp6_transport_with_source(addr, local, NULL);
>
[Attachment #5 (text/html)]
<div dir="ltr"><div>Thank you Bart. I will \
check.</div><div><br></div><div>Regards,</div><div>Pushpa.T<br></div></div><br><div \
class="gmail_quote"><div dir="ltr">On Tue, Oct 30, 2018 at 10:34 AM Bart Van Assche \
<<a href="mailto:bvanassche@acm.org">bvanassche@acm.org</a>> \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex">On 10/29/18 9:34 PM, Pushpa \
Thimmaiah wrote:<br> > Thank you. I will verify. Does the patch works for IPv6 \
too?<br> <br>
Oops, I had overlooked that your example uses an IPv6 client address.<br>
Can you verify whether the following (untested) patch helps (checked<br>
in yesterday on the v5.8 and master branches):<br>
<br>
commit 9b637efe809c490fdcaf30d1af20b4cbaef76e3e<br>
Author: Bart Van Assche <<a href="mailto:bvanassche@acm.org" \
target="_blank">bvanassche@acm.org</a>><br>
Date: Sat Oct 27 20:34:21 2018 -0700<br>
<br>
libsnmp/transports: Fix netsnmp_udp6_transport()<br>
<br>
Only create a transport object if parsing the client address succeeded<br>
instead of creating a transport object when parsing the client address<br>
failed.<br>
<br>
Fixes: 5d8372341594 ("shared transport + udp shared domain")<br>
<br>
diff --git a/snmplib/transports/snmpUDPIPv6Domain.c \
b/snmplib/transports/snmpUDPIPv6Domain.c<br> index 4d9f65eb9d19..7a3b1db15c67 \
100644<br>
--- a/snmplib/transports/snmpUDPIPv6Domain.c<br>
+++ b/snmplib/transports/snmpUDPIPv6Domain.c<br>
@@ -460,14 +460,16 @@ netsnmp_udp6_transport(const struct sockaddr_in6 *addr, int \
local)<br> {<br>
if (!local) {<br>
const char *client_socket;<br>
+<br>
client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,<br>
\
NETSNMP_DS_LIB_CLIENT_ADDR);<br> if (client_socket) {<br>
struct sockaddr_in6 client_addr;<br>
- if(!netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL)) \
{<br>
- return netsnmp_udp6_transport_with_source(addr, local,<br>
- \
&client_addr);<br>
- }<br>
+<br>
+ if (!netsnmp_sockaddr_in6_2(&client_addr, client_socket, \
NULL))<br> + return NULL;<br>
+ return netsnmp_udp6_transport_with_source(addr, local,<br>
+ \
&client_addr);<br> }<br>
}<br>
return netsnmp_udp6_transport_with_source(addr, local, NULL);<br>
</blockquote></div>
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic