From: NIIBE Yutaka Date: Thu, 13 Apr 2017 05:46:57 +0000 (+0900) Subject: dirmngr: Fix http.c for sockaddr_storage. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=d0479ef36813e3f8f1065d68ba7d358a8b4cb4f1;p=gnupg2.git dirmngr: Fix http.c for sockaddr_storage. dirmngr/http.c (use_socks): Use sockaddr_storage. (my_sock_new_for_addr, connect_server): Likewise. Signed-off-by: NIIBE Yutaka (cherry picked from commit 86dcb03134fd4957d51ebaa06b7991239f9ee56a) Gbp-Pq: Name 0070-dirmngr-Fix-http.c-for-sockaddr_storage.patch --- diff --git a/dirmngr/http.c b/dirmngr/http.c index c9c16df..674cb3d 100644 --- a/dirmngr/http.c +++ b/dirmngr/http.c @@ -2415,13 +2415,13 @@ start_server () * This function is basically a copy of the same internal fucntion in * Libassuan. */ static int -use_socks (struct sockaddr *addr) +use_socks (struct sockaddr_storage *addr) { int mode; if (assuan_sock_get_flag (ASSUAN_INVALID_FD, "tor-mode", &mode) || !mode) return 0; /* Not in Tor mode. */ - else if (addr->sa_family == AF_INET6) + else if (addr->ss_family == AF_INET6) { struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)addr; const unsigned char *s; @@ -2436,7 +2436,7 @@ use_socks (struct sockaddr *addr) return 0; /* This is the loopback address. */ } - else if (addr->sa_family == AF_INET) + else if (addr->ss_family == AF_INET) { struct sockaddr_in *addr_in = (struct sockaddr_in *)addr; @@ -2453,7 +2453,7 @@ use_socks (struct sockaddr *addr) /* Wrapper around assuan_sock_new which takes the domain from an * address parameter. */ static assuan_fd_t -my_sock_new_for_addr (struct sockaddr *addr, int type, int proto) +my_sock_new_for_addr (struct sockaddr_storage *addr, int type, int proto) { int domain; @@ -2464,7 +2464,7 @@ my_sock_new_for_addr (struct sockaddr *addr, int type, int proto) domain = AF_INET; } else - domain = addr->sa_family; + domain = addr->ss_family; return assuan_sock_new (domain, type, proto); } @@ -2589,7 +2589,8 @@ connect_server (const char *server, unsigned short port, } anyhostaddr = 1; - if (assuan_sock_connect (sock, ai->addr, ai->addrlen)) + if (assuan_sock_connect (sock, (struct sockaddr *)ai->addr, + ai->addrlen)) { last_err = gpg_err_make (default_errsource, gpg_err_code_from_syserror ());