lftp处理对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

我在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 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的正确行为。