chiark / gitweb /
Import gnupg2_2.1.18-8~deb9u1.debian.tar.bz2
[gnupg2.git] / patches / 0070-dirmngr-Fix-http.c-for-sockaddr_storage.patch
1 From: NIIBE Yutaka <gniibe@fsij.org>
2 Date: Thu, 13 Apr 2017 14:46:57 +0900
3 Subject: dirmngr: Fix http.c for sockaddr_storage.
4
5 dirmngr/http.c (use_socks): Use sockaddr_storage.
6 (my_sock_new_for_addr, connect_server): Likewise.
7
8 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
9 (cherry picked from commit 86dcb03134fd4957d51ebaa06b7991239f9ee56a)
10 ---
11  dirmngr/http.c | 13 +++++++------
12  1 file changed, 7 insertions(+), 6 deletions(-)
13
14 diff --git a/dirmngr/http.c b/dirmngr/http.c
15 index c9c16df..674cb3d 100644
16 --- a/dirmngr/http.c
17 +++ b/dirmngr/http.c
18 @@ -2415,13 +2415,13 @@ start_server ()
19   * This function is basically a copy of the same internal fucntion in
20   * Libassuan.  */
21  static int
22 -use_socks (struct sockaddr *addr)
23 +use_socks (struct sockaddr_storage *addr)
24  {
25    int mode;
26  
27    if (assuan_sock_get_flag (ASSUAN_INVALID_FD, "tor-mode", &mode) || !mode)
28      return 0;  /* Not in Tor mode.  */
29 -  else if (addr->sa_family == AF_INET6)
30 +  else if (addr->ss_family == AF_INET6)
31      {
32        struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)addr;
33        const unsigned char *s;
34 @@ -2436,7 +2436,7 @@ use_socks (struct sockaddr *addr)
35  
36        return 0; /* This is the loopback address.  */
37      }
38 -  else if (addr->sa_family == AF_INET)
39 +  else if (addr->ss_family == AF_INET)
40      {
41        struct sockaddr_in *addr_in = (struct sockaddr_in *)addr;
42  
43 @@ -2453,7 +2453,7 @@ use_socks (struct sockaddr *addr)
44  /* Wrapper around assuan_sock_new which takes the domain from an
45   * address parameter.  */
46  static assuan_fd_t
47 -my_sock_new_for_addr (struct sockaddr *addr, int type, int proto)
48 +my_sock_new_for_addr (struct sockaddr_storage *addr, int type, int proto)
49  {
50    int domain;
51  
52 @@ -2464,7 +2464,7 @@ my_sock_new_for_addr (struct sockaddr *addr, int type, int proto)
53        domain = AF_INET;
54      }
55    else
56 -    domain = addr->sa_family;
57 +    domain = addr->ss_family;
58  
59    return assuan_sock_new (domain, type, proto);
60  }
61 @@ -2589,7 +2589,8 @@ connect_server (const char *server, unsigned short port,
62              }
63  
64            anyhostaddr = 1;
65 -          if (assuan_sock_connect (sock, ai->addr, ai->addrlen))
66 +          if (assuan_sock_connect (sock, (struct sockaddr *)ai->addr,
67 +                                   ai->addrlen))
68              {
69                last_err = gpg_err_make (default_errsource,
70                                         gpg_err_code_from_syserror ());