GNOME Bugzilla – Bug 305829
IPv6 Proxy does not work
Last modified: 2005-06-01 00:53:03 UTC
Version details: 1.3.90 Distribution/Version: PLD AC Put an IPv6 address in the gnome proxy settings, and drivel will not connect properly, instead trying to connect as if it were IPv4 -- straced: connect(16, {sa_family=AF_INET, sin_port=htons(470), sin_addr=inet_addr("0.0.7.209")}, 16) = -1 EINVAL (Invalid argument)
Can you verify that curl is compiled with IPv6 support? The following command should look like so: [todd@llyr drivel]$ curl-config --feature SSL IPv6 libz
aredridel@mizar:~/rpm/SPECS$ curl-config --feature SSL IPv6 libz Sure is.
Hrm, what version of libcurl do you have installed? The documentation on the curl site claims IPv6 support should be transparent.
Created attachment 47006 [details] [review] Add a new debug statement
The attached patch adds debugging code for the proxy options. If you apply this and run Drivel with the -v switch you should see something like this: [todd@llyr drivel]$ ./src/drivel -v debug: built lj login request debug: Proxy enabled: URL: 47:08::23:4f Port: 8080 Authentication: todd:test (drivel:13123): Drivel-WARNING **: Could not get a challenge token from the server. That will at least tell us if Drivel is correctly pulling the proxy information from GNOME.
aredridel@mizar:~/rpm/SPECS$ drivel -v debug: built lj login request debug: Proxy enabled: URL: 2001:470:1f01:301::1 Port: 80 Authentication: aredridel@theinternetco.net:***censored*** (drivel:28206): Drivel-WARNING **: Could not get a challenge token from the server. debug: journal_window_state_save() Yes, it is.
aredridel@mizar:~/rpm/SPECS$ rpm -q curl curl-7.12.3-1
Confirming, the IPv6 address is not being parsed correctly.
Here's an updated version of the previous patch which forces the use of IPv6 name resolution for IPv6 proxy servers. I don't have a functional IPv6 proxy to test it on, could you let me know if this works or, if not, the result of a "strace -f -e trace=network"?
Created attachment 47016 [details] [review] possible ipv6 proxy fix
No fly. aredridel@mizar:~/rpm/SPECS$ strace -o drivel.log -ff -e trace=network drivel colon1: :470:1f01:301::1 colon2: :1f01:301::1 (drivel:29435): Drivel-WARNING **: Could not get a challenge token from the server. aredridel@mizar:~/rpm/SPECS$ more drivel.log socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_FILE, SOCK_STREAM, 0) = 11 connect(11, {sa_family=AF_FILE, path="/tmp/.X11-unix/X0"}, 19) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 12 connect(12, {sa_family=AF_FILE, path="/tmp/.ICE-unix/10070"}, 22) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 13 connect(13, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-2785-0-7395408ad86ed"}, 49) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 14 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(14, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-72fb-0-7a3aef10195ac"}, 49) = 0 listen(14, 10) = 0 getsockname(14, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-72fb-0-7a3aef10195ac"}, [49]) = 0 accept(14, {sa_family=AF_FILE, path="\uffff\uffffûA"}, [2]) = 15 aredridel@mizar:~/rpm/SPECS$ more drivel.log drivel.log drivel.log.29436 aredridel@mizar:~/rpm/SPECS$ more drivel.log.29436 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 16 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 16 aredridel@mizar:~/rpm/SPECS$ strace -o drivel.log -ff -e trace=network drivel aredridel@mizar:~/rpm/SPECS$ rm drivel.log* aredridel@mizar:~/rpm/SPECS$ strace -o drivel.log -ff -e trace=network drivel colon1: :470:1f01:301::1 colon2: :1f01:301::1 (drivel:29444): Drivel-WARNING **: Could not get a challenge token from the server. aredridel@mizar:~/rpm/SPECS$ cat drivel.log socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) socket(PF_FILE, SOCK_STREAM, 0) = 11 connect(11, {sa_family=AF_FILE, path="/tmp/.X11-unix/X0"}, 19) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 12 connect(12, {sa_family=AF_FILE, path="/tmp/.ICE-unix/10070"}, 22) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 13 connect(13, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-2785-0-7395408ad86ed"}, 49) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 14 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(14, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-7304-0-4d6ecc1d7a386"}, 49) = 0 listen(14, 10) = 0 getsockname(14, {sa_family=AF_FILE, path="/tmp/orbit-aredridel/linc-7304-0-4d6ecc1d7a386"}, [49]) = 0 accept(14, {sa_family=AF_FILE, path="\uffff\uffffûA"}, [2]) = 15 aredridel@mizar:~/rpm/SPECS$ cat drivel.log.29445 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 16 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 16 If you'd like a proxy server to test against, I can make an account on mine. I can also help with IPv6 tunnelling if you need as well.
Thanks, I've not had much experience with IPv6, so help would be appreciated. :)
Then you've no IPv6 connectivity at all at the moment?
My workstation supports IPv6, but my gateway (a Debian 3.0 machine) does not.
A free, permanent way to get IPv6 connectivity is tunnelbroker.net's tunnel service. If you want something temporary, I can start a tunnel endpoint here for testing.
Here's a patch to place brackets around an IPv6 proxy address. Let me know if this finally works :)
Created attachment 47086 [details] [review] possible ipv6 proxy fix take two
We have liftoff. Assuming CURL is patched, it works like a charm.