Package: gpsdrive
Version: 2.09-2
I've discovered that gpsdrive does not seem to properly obey the
http_proxy environment setting when one requests to download a new map
from Expedia. My experience was that the program hung instantly as I
clicked Download; it finally recovered some time later stating that the
connection had timed out.
The machine I ran this on must use an HTTP proxy (squid) to send such
traffic to the Internet. Curious, I tried again and this time attached
strace to the process to see what was happening. Instantly I could see
a problem; it was attempting to connect to the IP of the mappoint.com
host as though it were my proxy server! (3128/tcp). Since this won't
pass our firewall, the program blocks until the connect() finally times
out. Even more interesting, it appears to actually work properly just
prior to this behavior for one GET request (which returns a 302).
No other proxy-aware applications on this system are exhibiting any
abnormal behavior.
I'm attaching the relevant snippet of strace output showing the behavior
I describe above.
Debian sid (3.1)
Linux laptop 2.6.10 #1 Tue Feb 22 07:04:25 CST 2005 i686 GNU/Linux
(fresh packages were updated via aptitude and all updates
installed prior to any actions noted above)
Thanks,
--
Adam
[EMAIL PROTECTED]
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="/tmp/.X11-unix/X0"}, 19) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(1314),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5
connect(5, {sa_family=AF_INET, sin_port=htons(2947),
sin_addr=inet_addr("127.0.0.1")}, 16) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 6
socket(PF_FILE, SOCK_STREAM, 0) = 7
connect(7, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT
(No such file or directory)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
connect(7, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("aaa.bbb.ccc.ddd")}, 28) = 0
send(7, "\302k\1\0\0\1\0\0\0\0\0\0\5proxy\3aaa\tfoobarbaz\3com\0\0\1\0\1", 41,
0) = 41
recvfrom(7,
"\302k\205\200\0\1\0\1\0\1\0\1\5proxy\3foo\tfoobarbaz\3com\0\0\1\0\1\300\f\0\1\0\1\0\0\2X\0\4\254\21\2\4\300\22\0\2\0\1\0\0\2X\0\10\5abcde\300\22\300E\0\1\0\1\0\0\2X\0\4\254\21\2\3",
1024, 0, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("aaa.bbb.ccc.ddd")}, [16]) = 93
connect(6, {sa_family=AF_INET, sin_port=htons(3128),
sin_addr=inet_addr("aaa.bbb.ccc.ddd")}, 16) = 0
write(6, "GET http://www.expedia.com/pub/a"..., 275) = 275
read(6, "HTTP/1.0 302 Moved Temporarily\r\n"..., 8000) = 1486
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 6
socket(PF_FILE, SOCK_STREAM, 0) = 7
connect(7, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT
(No such file or directory)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
connect(7, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("aaa.bbb.ccc.ddd")}, 28) = 0
send(7, "\302l\1\0\0\1\0\0\0\0\0\0\nrenderv314\10mappoint\3net\0\0\1\0\1", 41,
0) = 41
recvfrom(7,
"\302l\201\200\0\1\0\1\0\5\0\0\nrenderv314\10mappoint\3net\0\0\1\0\1\300\f\0\1\0\1\0\0\7\10\0\4\317.\215\36\300\27\0\2\0\1\0\2T\236\0\v\3ns4\4msft\300
\300\27\0\2\0\1\0\2T\236\0\6\3ns5\300I\300\27\0\2\0\1\0\2T\236\0\6\3ns1\300I\300\27\0\2\0\1\0\2T\236\0\6\3ns2\300I\300\27\0\2\0\1\0\2T\236\0\6\3ns3\300I",
1024, 0, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("aaa.bbb.ccc.ddd")}, [16]) = 152
connect(6, {sa_family=AF_INET, sin_port=htons(3128),
sin_addr=inet_addr("207.46.141.30")}, 16) = -1 ETIMEDOUT (Connection timed out)