lftp处理对ALLO的负面反应
我在Ubuntu20.4上使用lftp 4.8.4和我自己的ftpd服务器代码 如下面的调试日志所示,在准备传输时,lftp发送ALLO,但似乎忽略了否定响应(452“无空间”) 我还尝试了552“超出存储分配”响应,该响应也被忽略 是否有更恰当的回应?我是否误解了ALLO的角色 欢迎提出任何建议!谢谢lftp处理对ALLO的负面反应,ftp,lftp,Ftp,Lftp,我在Ubuntu20.4上使用lftp 4.8.4和我自己的ftpd服务器代码 如下面的调试日志所示,在准备传输时,lftp发送ALLO,但似乎忽略了否定响应(452“无空间”) 我还尝试了552“超出存储分配”响应,该响应也被忽略 是否有更恰当的回应?我是否误解了ALLO的角色 欢迎提出任何建议!谢谢 > put lfs.img -o lfs3 ---- Connecting to ftpd (192.168.0.171) port 21 <--- 220
> put lfs.img -o lfs3
---- Connecting to ftpd (192.168.0.171) port 21
<--- 220 nil
---> FEAT
<--- 211-Extensions supported:
<--- SIZE
<--- REST STREAM
<--- PASV
<--- 211 END
---> USER anonymous
<--- 331 nil
---> PASS lftp@
<--- 230 nil
---> PWD
<--- 257 /
---> TYPE I
<--- 200 nil
---> PASV
<--- 227 Entering Passive Mode. 192,168,0,171,255,249
---- Connecting data socket to (192.168.0.171) port 65529
---- Data connection established
---> ALLO 72408
<--- 452 no space
---> STOR lfs3
<--- 500 open fail
---- Closing data socket
put: lfs.img: Fatal error: 500 open fail
>put lfs.img-o lfs3
----连接到ftpd(192.168.0.171)端口21
壮举
lftp正确处理552(“请求的文件操作中止。超出存储分配”)对ALLO命令的响应。lftp用STOR命令响应552响应,紧接着是ABOR(即Abort)命令
来自RFC 959(第4.1.3.段):“此命令[ALLO]后面应跟着一个存储或追加命令。”因此,尽管STOR命令不会成功,但跳过它并发送ABOR是不正确的。lftp似乎忽略了对ALLO
的4xx响应。5xx的日志是什么样子的?啊哈;对552响应效果更好。lftp仍然发送STOR,但随后发送一个ABOR。重新阅读rfc 959,我发现ALLO后面必须始终跟有STOR或APPE(第4.1.3段),因此这是lftp的正确行为。