Timeout with Win98SE using SSL/TLS and encrypted data channel

Hi, using v1.5.7.19 on Windows 98SE I'm have a problem getting a directory listing when using SSL/TLS and data channel encryption is enabled. It times out retrieving the directory listing. If the data channel is not encrypted then it works without problem. The FTP server is Serv-U.

Hi, I can reproduce this problem using the latest FTP client on Win98SE. The initial folder is fine, but if I change to another folder there's a timeout:

[20060223 10:50:50] Log opened
[20060223 10:50:50] SmartFTP v2.0.995.3
[20060223 10:50:51] Resolving host name "xxx"
[20060223 10:50:51] Connecting to 192.168.1.201 Port: 21
[20060223 10:50:51] Connected to bigted.
[20060223 10:50:51] 220 xxx FTP server ready...
[20060223 10:50:51] AUTH TLS
[20060223 10:50:51] 234 AUTH command OK. Initializing SSL connection.
[20060223 10:50:51] Connected. Exchanging encryption keys...
[20060223 10:50:52] Session Cipher: 128 bit RC4
[20060223 10:50:52] TLS encrypted session established.
[20060223 10:50:52] PBSZ 0
[20060223 10:50:52] 200 PBSZ command OK. Protection buffer size set to 0.
[20060223 10:50:52] USER test
[20060223 10:50:52] 331 User name okay, need password.
[20060223 10:50:52] PASS (hidden)
[20060223 10:50:52] 230 User logged in, proceed.
[20060223 10:50:52] SYST
[20060223 10:50:52] 215 UNIX Type: L8
[20060223 10:50:52] FEAT
[20060223 10:50:52] 211-Extension supported
[20060223 10:50:52] AUTH TLS
[20060223 10:50:52] SSCN
[20060223 10:50:52] PBSZ
[20060223 10:50:52] PROT
[20060223 10:50:52] CCC
[20060223 10:50:52] CLNT
[20060223 10:50:52] MDTM
[20060223 10:50:52] MDTM YYYYMMDDHHMMSS[+-TZ];filename
[20060223 10:50:52] SIZE
[20060223 10:50:52] SITE PSWD;EXEC;SET;INDEX;ZONE;CHMOD;MSG
[20060223 10:50:52] REST STREAM
[20060223 10:50:52] XCRC filename;start;end
[20060223 10:50:52] MODE Z
[20060223 10:50:52] MLST Type*;Size*;Create;Modify*;Win32.ea*;
[20060223 10:50:52] 211 End
[20060223 10:50:52] Detected Server Software: Serv-U 5.x/6.x
[20060223 10:50:52] CLNT SmartFTP 2.0.995
[20060223 10:50:52] 200 Noted.
[20060223 10:50:52] PWD
[20060223 10:50:52] 257 "/" is current directory.
[20060223 10:50:52] CWD /Accessories
[20060223 10:50:52] 250 Directory changed to /Accessories
[20060223 10:50:52] PWD
[20060223 10:50:52] 257 "/Accessories" is current directory.
[20060223 10:50:52] Compression disabled for private IP addresses.
[20060223 10:50:52] TYPE A
[20060223 10:50:52] 200 Type set to A.
[20060223 10:50:52] PROT P
[20060223 10:50:52] 200 PROT command OK. Using private data connection.
[20060223 10:50:52] PASV
[20060223 10:50:52] 227 Entering Passive Mode (192,168,1,201,35,50)
[20060223 10:50:52] Opening data connection to 192.168.1.201 Port: 9010
[20060223 10:50:52] MLSD
[20060223 10:50:52] Connected. Exchanging encryption keys...
[20060223 10:50:53] 150 Opening BINARY mode data connection for MLSD.
[20060223 10:50:53] 226 Transfer complete.
[20060223 10:50:53] Session Cipher: 128 bit RC4
[20060223 10:50:53] TLS encrypted session established.
[20060223 10:50:53] 134 bytes transferred. (1.21 KB/s) (108 ms)
[20060223 10:50:54] CWD /Accessories/HyperTerminal
[20060223 10:50:54] 250 Directory changed to /Accessories/HyperTerminal
[20060223 10:50:54] PWD
[20060223 10:50:54] 257 "/Accessories/HyperTerminal" is current directory.
[20060223 10:50:54] Compression disabled for private IP addresses.
[20060223 10:50:54] PASV
[20060223 10:50:54] 227 Entering Passive Mode (192,168,1,201,35,40)
[20060223 10:50:54] Opening data connection to 192.168.1.201 Port: 9000
[20060223 10:50:54] MLSD
[20060223 10:50:54] Connected. Exchanging encryption keys...
[20060223 10:50:54] Session Cipher: 128 bit RC4
[20060223 10:50:54] TLS encrypted session established.
[20060223 10:50:54] 150 Opening BINARY mode data connection for MLSD.
[20060223 10:50:54] 226 Transfer complete.
[20060223 10:51:34] Transfer Timeout (40s). Closing data connection.
[20060223 10:51:34] 81 bytes transferred. (2 bytes/s) (00:00:39)
[20060223 10:51:54] CWD /
[20060223 10:51:54] 250 Directory changed to /
[20060223 10:51:54] PWD
[20060223 10:51:54] 257 "/" is current directory.
[20060223 10:51:54] Compression disabled for private IP addresses.
[20060223 10:51:54] PASV
[20060223 10:51:54] 227 Entering Passive Mode (192,168,1,201,35,41)
[20060223 10:51:54] Opening data connection to 192.168.1.201 Port: 9001
[20060223 10:51:54] MLSD
[20060223 10:51:54] Connected. Exchanging encryption keys...
[20060223 10:51:54] 150 Opening BINARY mode data connection for MLSD.
[20060223 10:51:54] Session Cipher: 128 bit RC4
[20060223 10:51:54] TLS encrypted session established.
[20060223 10:51:54] 226 Transfer complete.
[20060223 10:52:34] Transfer Timeout (40s). Closing data connection.
[20060223 10:52:34] 1132 bytes transferred. (28 bytes/s) (00:00:39)
[20060223 10:52:47] Log closed

Note there are two timeouts above. Is there any more info I can provide?

Thanks

It looks like a timing problem.

Do you have such problems when connecting to remote servers (e.g. ftp.smartftp.com) as well?

It this problem limited to Windows 98SE?

Thanks
-Mat

Hi, the problem is only on Win98SE. Unfortunately I cannot test with another remote FTP server (don't have access to one) that supports encryption, unless you can provide one (the one I'm using is on another computer, but the same LAN). The client is on a clean installation of Win98SE (with all updates applied) on VMWare.

Hello ..

For some unknown reason Winsock 2.x lost the FD_CLOSE event on Windows 98.

The latest version of the FTP Library (.20) includes a workaround:
https://www.smartftp.com/ftplib/download

Thanks for reporting.

-Mat

Thanks for the very quick fix. It's working fine now.