gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 378/411: vquic/ngtcp2.h: define local_addr as sockaddr_storage


From: gnunet
Subject: [gnurl] 378/411: vquic/ngtcp2.h: define local_addr as sockaddr_storage
Date: Wed, 13 Jan 2021 01:23:13 +0100

This is an automated email from the git hooks/post-receive script.

nikita pushed a commit to branch master
in repository gnurl.

commit 0cbd5d5c4f150be7f802ec8898a37445d258cb45
Author: Daiki Ueno <dueno@redhat.com>
AuthorDate: Thu Nov 26 09:37:03 2020 +0100

    vquic/ngtcp2.h: define local_addr as sockaddr_storage
    
    This field needs to be wide enough to hold sockaddr_in6 when
    connecting via IPv6.  Otherwise, ngtcp2_conn_read_pkt will drop the
    packets because of the address mismatch:
      I00000022 [...] con ignore packet from unknown path
    
    We can safely assume that struct sockaddr_storage is available, as it
    is used in the public interface of ngtcp2.
    
    Closes #6250
---
 lib/vquic/ngtcp2.c | 7 ++++---
 lib/vquic/ngtcp2.h | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c
index c75df6310..696a5c2a5 100644
--- a/lib/vquic/ngtcp2.c
+++ b/lib/vquic/ngtcp2.c
@@ -828,7 +828,8 @@ CURLcode Curl_quic_connect(struct connectdata *conn,
   if(rv == -1)
     return CURLE_QUIC_CONNECT_ERROR;
 
-  ngtcp2_addr_init(&path.local, &qs->local_addr, qs->local_addrlen, NULL);
+  ngtcp2_addr_init(&path.local, (struct sockaddr *)&qs->local_addr,
+                   qs->local_addrlen, NULL);
   ngtcp2_addr_init(&path.remote, addr, addrlen, NULL);
 
   rc = ngtcp2_conn_client_new(&qs->qconn, &qs->dcid, &qs->scid, &path,
@@ -1745,7 +1746,7 @@ static CURLcode ng_process_ingress(struct connectdata 
*conn,
       return CURLE_RECV_ERROR;
     }
 
-    ngtcp2_addr_init(&path.local, &qs->local_addr,
+    ngtcp2_addr_init(&path.local, (struct sockaddr *)&qs->local_addr,
                      qs->local_addrlen, NULL);
     ngtcp2_addr_init(&path.remote, (struct sockaddr *)&remote_addr,
                      remote_addrlen, NULL);
@@ -1779,7 +1780,7 @@ static CURLcode ng_flush_egress(struct connectdata *conn, 
int sockfd,
   nghttp3_vec vec[16];
   ssize_t ndatalen;
 
-  switch(qs->local_addr.sa_family) {
+  switch(qs->local_addr.ss_family) {
   case AF_INET:
     pktlen = NGTCP2_MAX_PKTLEN_IPV4;
     break;
diff --git a/lib/vquic/ngtcp2.h b/lib/vquic/ngtcp2.h
index ce1bbef62..c6d4d12e6 100644
--- a/lib/vquic/ngtcp2.h
+++ b/lib/vquic/ngtcp2.h
@@ -58,7 +58,7 @@ struct quicsocket {
   struct quic_handshake crypto_data[3];
   /* the last TLS alert description generated by the local endpoint */
   uint8_t tls_alert;
-  struct sockaddr local_addr;
+  struct sockaddr_storage local_addr;
   socklen_t local_addrlen;
 
   nghttp3_conn *h3conn;

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]