curl 7.19.6 on openSUSE 11.2, connecting via ftp through a squid proxy.
I noticed a problem attempting to fetch from an ftp resources that curl appeared to connect and then do nothing until it eventually timed out.
Suspecting some other problem, I tried aria2, wget, and firefox -- all of which worked just fine.
So I strace'd curl and this is what I get (the proxy is 192.168.1.1 port 3128):
...
10137 16:03:52.937144 socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 <0.000020>
10137 16:03:52.937229 setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 <0.000015>
10137 16:03:52.937290 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) <0.000012>
10137 16:03:52.937340 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 <0.000011>
10137 16:03:52.937394 connect(3, {sa_family=AF_INET, sin_port=htons(3128), sin_addr=inet_addr("192.168.1.1")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000057>
10137 16:03:52.937516 poll([{fd=3, events=POLLOUT}], 1, 299999) = 1 ([{fd=3, revents=POLLOUT}]) <0.000879>
10137 16:03:52.938452 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 <0.000012>
10137 16:03:52.938516 poll([{fd=3, events=POLLIN|POLLPRI}], 1, 3600000) = 1 ([{fd=3, revents=POLLIN}]) <29.348688>
10137 16:04:22.287387 recvfrom(3, "", 16384, 0, NULL, NULL) = 0 <0.000028>
10137 16:04:22.287525 close(3) = 0 <0.000079>
followed by curl grumping (error 56).
What I don't understand is why, after the connect is successful, curl doesn't send the proxy anything.
Daniel Stenberg
libcurl
wrong behaviour
Public
|
Date: 2009-12-15 10:05:06 UTC Ok, I'm now closing this entry as fixed. |
|
Date: 2009-12-15 02:30:13 UTC awesome. when is the next release likely? |
|
Date: 2009-12-14 23:17:35 UTC Thanks a lot. I tracked it down, fixed it, added a new test case for this |
|
Date: 2009-12-14 21:28:53 UTC Whoa, very nice catch. I believe that may also be why the test cases never |
|
Date: 2009-12-14 21:25:40 UTC I think we have a winner. |
|
Date: 2009-12-14 21:18:49 UTC I'm using Apache with its proxy_ftp enabled, eglibc 2.10.2, Linux 2.6.31 on |
|
Date: 2009-12-14 19:22:06 UTC What proxy did you go through? I am using squid. |
|
Date: 2009-12-14 18:48:17 UTC Also, my strace outputs show NO calls to recvfrom() at all. TCP data is |
|
Date: 2009-12-14 18:41:44 UTC Just FYI, I can do ftp over proxy just fine. I just tested 7.19.7 and my |
|
Date: 2009-12-14 16:58:49 UTC I tried 7.19.5 and 7.19.4. |
|
Date: 2009-12-14 16:14:52 UTC 7.19.7 does not fix for me. |
|
Date: 2009-12-14 15:21:36 UTC Any chance you can just run a quick test with 7.19.7 too, just to make sure |
|
Date: 2009-12-14 15:15:33 UTC One thing to note: I tried an older version (curl 7.19.0) on openSUSE 11.1 |
|
Date: 2009-12-13 23:14:32 UTC recv frequently gets turned into recvfrom by the C library. |
|
Date: 2009-12-13 22:47:53 UTC I disagree with your conclusion. |
|
Date: 2009-12-13 22:40:17 UTC The recvfrom: |
|
Date: 2009-12-13 22:31:57 UTC recvfrom() ?? Is that from the DNS resolve? It doesnät make sense to me. |
| Field | Old Value | Date | By |
|---|---|---|---|
| close_date | - | 2009-12-15 10:05:06 UTC | bagder |
| status_id | Open | 2009-12-15 10:05:06 UTC | bagder |
| allow_comments | 1 | 2009-12-15 10:05:06 UTC | bagder |
| close_date | 2009-12-14 23:17 | 2009-12-15 02:30:13 UTC | jnelson |
| status_id | Pending | 2009-12-15 02:30:13 UTC | jnelson |
| status_id | Open | 2009-12-14 23:17:35 UTC | bagder |
| close_date | - | 2009-12-14 23:17:35 UTC | bagder |
| resolution_id | None | 2009-12-14 23:17:35 UTC | bagder |