I have a problem with failed file uploads between the ICS FTP client and server when using passive mode, which may be related to the passive port pool. For some reason, the passive port pool does not allocate sequential port numbers, but continually re-allocates the same numbers, if they have been freed.
So one upload works fine, less than a second later an attempt to upload the next file fails with 'connection refused' in the client, perhaps because the same port can not be re-used so quickly? 21:59:53:779 ** > PASV 21:59:53:808 ** < 227 Entering Passive Mode (192,168,0,7,82,9). 21:59:54:544 ** < 226 File received ok 21:59:55:209 ** > PASV 21:59:55:239 ** < 227 Entering Passive Mode (192,168,0,7,82,9). 21:59:56:290 Upload Failed: Unable to establish data connection - Connection refused (#10061) Although the client fakes a 550 error for the connection refused error, it does not send any commands to the server, which keeps listening. After the failed upload, I retry the upload, but at this point the server is out of sequence and often responds with old responses, like: 21:59:58:069 ** > PASV 21:59:58:101 ** < 226 File sent ok I've changed my application code to always send an AbortXfer command if the connection is refused, so the server gets back into sync with later commands. Maybe AbortXfer should be in the FTP client code? But I'm wondering if passive mode should be using incrementing ports, and not the same ones all the time (my server only used four different ports for the four simultaneous clients). Note these FTP commands are passing through a VPN, three Sonicwalls, two ADSL links and an ADSL bonding Firebrick, so the error could be elsewhere, although I still have to recover from it better. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be