I said I'd get back to you on Monday ... it's Wednesday now but what the hell...
OK I set the values, just as you said, with
sudo sysctl -w net.inet.tcp.recvspace=40960
Etc., but it doesn't seem to have made any difference.
The upload takes just over two minutes for a one-line text file.
But I turned on Debugging in Net::FTP -- should have done that before, shouldn't I? And found something interesting.
Net::FTP=GLOB(0xfc84)>>> ALLO 5
Net::FTP=GLOB(0xfc84): Timeout at ftptest.pl line 17
Net::FTP=GLOB(0xfc84)>>> PASV
Net::FTP=GLOB(0xfc84)<<< 227 Entering passive mode (202,6,74,98,243,97
+)
Net::FTP=GLOB(0xfc84)>>> STOR adsf.txt
Net::FTP=GLOB(0xfc84)<<< 125 Data connection already open; Transfer st
+arting.
Net::FTP=GLOB(0xfc84)<<< 226 Transfer complete.
It seems it's trying to do a non-passive transfer, (line 17 is the "put()" command), timing out after two minutes, then issuing the PASV command and doing it instantly ... what's that all about?
Update: I issued the PASV command myself before the "put()" command, but it made no difference. It still timed out and then did its own PASV command.
Update-Update: I realised a couple of seconds ago that I could just set the timeout to some low value and it would instantly time out then move on to the PASV thing. But I'd still like to know what's going on...
($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss')
=~y~b-v~a-z~s; print
|