]> git.pld-linux.org Git - packages/lftp.git/blob - lftp-ipv6.patch
ea3e9b349dc2afaf0cfd04cb8edf33b570565c3a
[packages/lftp.git] / lftp-ipv6.patch
1 diff -ur lftp-3.7.8.org/src/Resolver.cc lftp-3.7.8/src/Resolver.cc
2 --- lftp-3.7.8.org/src/Resolver.cc      2008-11-27 06:56:26.000000000 +0100
3 +++ lftp-3.7.8/src/Resolver.cc  2009-01-27 14:47:57.466736403 +0100
4 @@ -291,7 +291,7 @@
5     done=true;
6  }
7  
8 -void Resolver::AddAddress(int family,const char *address,int len)
9 +void Resolver::AddAddress(int family,const char *address,int len, unsigned int scope)
10  {
11     sockaddr_u add;
12     memset(&add,0,sizeof(add));
13 @@ -315,6 +315,7 @@
14           return;
15        memcpy(&add.in6.sin6_addr,address,len);
16        add.in6.sin6_port=port_number;
17 +      add.in6.sin6_scope_id=scope;
18  #ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
19        add.sa.sa_len=sizeof(add.in6);
20  #endif
21 @@ -693,6 +694,7 @@
22        struct sockaddr_in6   *inet6_addr;
23        const char           *addr_data;
24        int                  addr_len;
25 +      unsigned int          addr_scope;
26  
27        memset(&a_hint, 0, sizeof(a_hint));
28        a_hint.ai_flags      = AI_PASSIVE;
29 @@ -717,17 +719,19 @@
30                case AF_INET:
31                   inet_addr   = (sockaddr_in *)sockname;
32                   addr_data   = (const char *)&(inet_addr->sin_addr.s_addr);
33 +                 addr_scope  = 0;
34                   addr_len    = sizeof(inet_addr->sin_addr.s_addr);
35                   break;
36                case AF_INET6:
37                   inet6_addr  = (sockaddr_in6 *)sockname;
38                   addr_data   = (const char *)&(inet6_addr->sin6_addr.s6_addr);
39 +                 addr_scope  = inet6_addr->sin6_scope_id;
40                   addr_len    = sizeof(inet6_addr->sin6_addr.s6_addr);
41                   break;
42                default:
43                   continue;
44                }
45 -              AddAddress(a_res->ai_family, addr_data, addr_len);
46 +              AddAddress(a_res->ai_family, addr_data, addr_len, addr_scope);
47             }
48          }
49  
50 @@ -773,7 +777,7 @@
51        {
52          const char * const *a;
53          for(a=ha->h_addr_list; *a; a++)
54 -           AddAddress(ha->h_addrtype, *a, ha->h_length);
55 +           AddAddress(ha->h_addrtype, *a, ha->h_length, 0);
56          retries=0;
57          af_index++;
58  # if defined(HAVE_GETIPNODEBYNAME)
59 diff -ur lftp-3.7.8.org/src/Resolver.h lftp-3.7.8/src/Resolver.h
60 --- lftp-3.7.8.org/src/Resolver.h       2008-11-27 06:56:27.000000000 +0100
61 +++ lftp-3.7.8/src/Resolver.h   2009-01-27 14:47:12.017783307 +0100
62 @@ -47,7 +47,7 @@
63  
64     xarray<sockaddr_u> addr;
65  
66 -   void AddAddress(int family,const char *a,int len);
67 +   void AddAddress(int family,const char *a,int len,unsigned int scope);
68  
69     xstring err_msg;
70     bool done;
This page took 0.02926 seconds and 2 git commands to generate.