1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// 1xx: Positive Preliminary Reply
pub const INITIATING: u32 = 100;
pub const RESTART_MARKER: u32 = 110;
pub const READY_MINUTE: u32 = 120;
pub const ALREADY_OPEN: u32 = 125;
pub const ABOUT_TO_SEND: u32 = 150;

// 2xx: Positive Completion Reply
pub const COMMAND_OK: u32 = 200;
pub const COMMAND_NOT_IMPLEMENTED: u32 = 202;
pub const SYSTEM: u32 = 211;
pub const DIRECTORY: u32 = 212;
pub const FILE: u32 = 213;
pub const HELP: u32 = 214;
pub const NAME: u32 = 215;
pub const READY: u32 = 220;
pub const CLOSING: u32 = 221;
pub const DATA_CONNECTION_OPEN: u32 = 225;
pub const CLOSING_DATA_CONNECTION: u32 = 226;
pub const PASSIVE_MODE: u32 = 227;
pub const LONG_PASSIVE_MODE: u32 = 228;
pub const EXTENDED_PASSIVE_MODE: u32 = 229;
pub const LOGGED_IN: u32 = 230;
pub const LOGGED_OUT: u32 = 231;
pub const LOGOUT_ACK: u32 = 232;
pub const AUTH_OK: u32 = 234;
pub const REQUESTED_FILE_ACTION_OK: u32 = 250;
pub const PATH_CREATED: u32 = 257;

// 3xx: Positive intermediate Reply
pub const NEED_PASSWORD: u32 = 331;
pub const LOGIN_NEED_ACCOUNT: u32 = 332;
pub const REQUEST_FILE_PENDING: u32 = 350;

// 4xx: Transient Negative Completion Reply
pub const NOT_AVAILABLE: u32 = 421;
pub const CANNOT_OPEN_DATA_CONNECTION: u32 = 425;
pub const TRANSER_ABORTED: u32 = 426;
pub const INVALID_CREDENTIALS: u32 = 430;
pub const HOST_UNAVAILABLE: u32 = 434;
pub const REQUEST_FILE_ACTION_IGNORED: u32 = 450;
pub const ACTION_ABORTED: u32 = 451;
pub const REQUESTED_ACTION_NOT_TAKEN: u32 = 452;

// 5xx: Permanent Negative Completion Reply
pub const BAD_COMMAND: u32 = 500;
pub const BAD_ARGUMENTS: u32 = 501;
pub const NOT_IMPLEMENTED: u32 = 502;
pub const BAD_SEQUENCE: u32 = 503;
pub const NOT_IMPLEMENTED_PARAMETER: u32 = 504;
pub const NOT_LOGGED_IN: u32 = 530;
pub const STORING_NEED_ACCOUNT: u32 = 532;
pub const FILE_UNAVAILABLE: u32 = 550;
pub const PAGE_TYPE_UNKNOWN: u32 = 551;
pub const EXCEEDED_STORAGE: u32 = 552;
pub const BAD_FILENAME: u32 = 553;