View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002407 | unreal | ircd | public | 2005-03-07 15:01 | 2005-03-13 15:25 |
| Reporter | Ron2K | Assigned To | |||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | closed | Resolution | open | ||
| Product Version | 3.2.3 | ||||
| Summary | 0002407: [win32 + curl] Unable to connect to remote FTP server with new curl | ||||
| Description | I've experienced problems connecting to FTP servers with the new curl in pre3. Using the "old" curl (which works fine), the relevant parts of the FTP log are as follows: 230 User irc-ron2k logged in. PWD 257 "/" is current directory. MDTM LANGamesNET.network 550 'LANGamesNET.network' : no such file or directory. EPSV 500 Unknown command. PASV 227 Entering Passive Mode (127,0,0,1,45,218). TYPE I 200 Type set to I. SIZE LANGamesNET.network 213 2449 RETR LANGamesNET.network 150 Data connection accepted from 127.0.0.1:1421; transfer starting for LANGamesNET.network (2449 bytes). With the "new" curl present in the Win32 version of 3.2.3-pre3, the server decides after receiving the 550 that the file does not exist. This is a curl issue: I compiled 3.2.3-pre3 from source using the "old" curl and it runs fine. You'll probably have to revert to the old curl for the 3.2.3 release, unless a fix is made before then. Sorry for the inconvenience (since I reported that you weren't using the "new" curl in the first place :P) | ||||
| 3rd party modules | |||||
|
|
hm, I just tested a file on my (anonymous) ftp server and with pre1 it works right, but with pre3 I get: [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:2: Ignoring extra data - [21:23:20] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:2: Ignoring extra data - [21:23:21] -winlink.test.net- *** Notice -- [warning] unrealircd.conf:97: listen with SSL flag enabled on a non SSL compile - [21:23:21] -winlink.test.net- *** Notice -- tmp/1E88FBD2.test.conf:1: unknown directive Last-Modified: - [21:23:21] -winlink.test.net- *** Notice -- Configuration loaded without any problems .. uh-huh ;). (that's a server that supports MDTM correctly btw, so even then it screws something up) |
|
|
What I don't understand in your example btw is that MDTM returns no such file or directory. I'm not surprised curl stops then. Ron2K: I tried playing a ftp server that does not support MDTM (by replying 500 Unknown command), and curl just continues then (EPSV, PASV, etc). So I'm not so sure if curl is to blame for that :) codemastr: could you take a look at this? I wonder why we suddenly get Last-Modified in our data stream (I suppose?), IIRC that's a curl option but isn't that disabled by default? *g* Anyway, let me know what you think we should do... fix that or revert to the old curl. |
|
|
I told it to request the modification time (to support caching). From the curl changelog, "FTP code overhaul => multi interface much less blocking" my guess is something got screwed up. Perhaps we can try telling libcurl to run in debug mode (it prints to stderr) so we can see what is going on? |
|
|
Syzop, can you paste the contents of 1E88FBD2.test.conf? Looking at the code I see where the Last-Modified is generated, however the code seems the same as previous versions so I have no idea why it is being sent now but never was before. |
|
|
ban nick { mask "bassie"; reason "bassie suxeerd"; }; (text + \n [so normal], no empty lines, nothing else) |
|
|
Oh sorry, you requested the tmp file.. well.. that one includes this line indeed: Last-Modified: Tue, 08 Mar 2005 02:23:53 GMT |
|
|
Well I believe I have found the cause, I sent an email to the libcurl people, hopefully they'll be able to solve it quickly. |
|
|
http://cool.haxx.se/cvs.cgi/curl/lib/ftp.c.diff?r2=1.306&r1=1.305&diff_format=u That should solve it. I'll apply that and rebuild the libcurl later today. |
|
|
Compiled with the new curl.zip you gave me, works fine now :) |
|
|
So ehm Ron2K, what kind of ftp server is that? Like I said, it replies with no such file or directory in the MDTM request, which I think is not a good idea if the file exists ;P. So I'm curious what server it is (eg: proftpd, blahftp, blihftp, ..). |
|
|
[quote]Like I said, it replies with no such file or directory in the MDTM request, which I think is not a good idea if the file exists[/quote] Just for the record, even if it is undesired behavior, it's still not a bug that it fails. In the code, there is a case for 550 and if it is found, it aborts. So it's not a bug, it's a situation libcurl was designed to fail under. |
|
|
Yeah, this isn't making any sense, eh? Like I told in my 2nd post I also tried 500 Unknown command and it continued just fine, also I didn't find any code that checks for "no such file or directory", so how could this problem be caused then?? :P You sure that it aborts after the 500 on MDTM, Ron2K? :P Actually I just tried playing for ftp server and it just continued fine here: [..] 257 "/" MDTM test.conf 500 'test.conf': no such file or directory EPSV [..] |
|
|
Sorry for not responding - I'm on holiday at the moment, will get back tomorrow and then I'll let you know. |
|
|
Tomorrow is too late, but nevermind & enjoy *g* ;).. we'll use this new curl since it seems to work just fine. |
|
|
Back :P FTP Server is BPFTP 2.21. Not the latest version, but I grabbed the changelog and couldn't find anything relating to a change to MDTM behaviour. |
|
|
Right, well seems a BFTP bug to me.. if it understands the MDTM command (which it does), and returns a 550 saying the file was not found, well.. isn't it logical that curl would assume the file is not found ?? *g* ;p You might want to inform the bpftpd authors of it :) *edit* sorry for confusing 500 and 550 in my posts earlier on */edit* |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2005-03-07 15:01 | Ron2K | New Issue | |
| 2005-03-07 15:26 | syzop | Note Added: 0009479 | |
| 2005-03-07 15:26 | syzop | Note Edited: 0009479 | |
| 2005-03-07 15:27 | syzop | Note Edited: 0009479 | |
| 2005-03-07 15:36 | syzop | Status | new => confirmed |
| 2005-03-07 15:39 | syzop | Note Added: 0009480 | |
| 2005-03-07 15:40 | syzop | Note Edited: 0009480 | |
| 2005-03-07 20:21 |
|
Note Added: 0009483 | |
| 2005-03-07 20:47 |
|
Note Added: 0009485 | |
| 2005-03-07 21:01 | syzop | Note Added: 0009486 | |
| 2005-03-07 21:30 | syzop | Note Added: 0009487 | |
| 2005-03-07 22:23 |
|
Note Added: 0009488 | |
| 2005-03-08 10:59 |
|
Note Added: 0009521 | |
| 2005-03-08 15:24 | syzop | Note Added: 0009530 | |
| 2005-03-08 23:08 | syzop | Note Added: 0009536 | |
| 2005-03-08 23:12 |
|
Note Added: 0009537 | |
| 2005-03-08 23:18 | syzop | Note Added: 0009538 | |
| 2005-03-12 05:38 | Ron2K | Note Added: 0009566 | |
| 2005-03-12 11:10 | syzop | Note Added: 0009568 | |
| 2005-03-13 08:47 | Ron2K | Note Added: 0009575 | |
| 2005-03-13 11:54 | syzop | Note Added: 0009576 | |
| 2005-03-13 11:54 | syzop | Note Edited: 0009576 | |
| 2005-03-13 15:25 | syzop | Status | confirmed => closed |