Phases
Phases to transfer a file
** [ Source ] & [Destination] [Phase] ** ** CWD & CWD [ MKD [ CWD ] ] 1 | Go to dir, create if needed. [1] ** CCSN/SSCN & [CCSN/SSCN] 2 | SSL, send to one of them. [2] ** [PROT] & [PROT] 3 | SSL, go privacy, or not. ** TYPE & TYPE 4 | Set Binary, if needed. ** & SIZE 5 | Exists? Size? Resume? Res-Last? ** [PRET] & [PRET] 6 | If pre-transfer ** [PASV] & [PASV] 7 | Send pasv to one site ** [PORT] & [PORT] 8 | Send port to the other. ** [REST] & [REST] 9 | If resume, send restart point [3] ** & STOR 10 | Attempt stor ** & [XDUPE] 10 | Look for XDUPE messages in failures ** [RETR] & 11 | Attempt retr ** & [XDUPE] 11 | Look for XDUPE messages in 226 ** NOOP & NOOP 12 | Stop idle out until we are rdy [4]
- [1] This means that creation of destination directories only occur once we try to transfer a valid file. If there are no files to transfer, the destination directory is not made. (However, if dskipempty is set to NO we should create it. Currently not implemented)
- [2] Is ignored if data_TLS, or optional FXP_TLS, is set to YNA_NO.
- [3] The REST command need to be very close to the transfer commands as some commands will clear the REST value if executed.
- [4] Waiting for 150 messages, and also 226 is also considered a phase.