commons_net/ftp/
ftp_reply.rs

1// 1xx: Positive Preliminary Reply
2pub const INITIATING: u32 = 100;
3pub const RESTART_MARKER: u32 = 110;
4pub const READY_MINUTE: u32 = 120;
5pub const ALREADY_OPEN: u32 = 125;
6pub const ABOUT_TO_SEND: u32 = 150;
7
8// 2xx: Positive Completion Reply
9pub const COMMAND_OK: u32 = 200;
10pub const COMMAND_NOT_IMPLEMENTED: u32 = 202;
11pub const SYSTEM: u32 = 211;
12pub const DIRECTORY: u32 = 212;
13pub const FILE: u32 = 213;
14pub const HELP: u32 = 214;
15pub const NAME: u32 = 215;
16pub const READY: u32 = 220;
17pub const CLOSING: u32 = 221;
18pub const DATA_CONNECTION_OPEN: u32 = 225;
19pub const CLOSING_DATA_CONNECTION: u32 = 226;
20pub const PASSIVE_MODE: u32 = 227;
21pub const LONG_PASSIVE_MODE: u32 = 228;
22pub const EXTENDED_PASSIVE_MODE: u32 = 229;
23pub const LOGGED_IN: u32 = 230;
24pub const LOGGED_OUT: u32 = 231;
25pub const LOGOUT_ACK: u32 = 232;
26pub const AUTH_OK: u32 = 234;
27pub const REQUESTED_FILE_ACTION_OK: u32 = 250;
28pub const PATH_CREATED: u32 = 257;
29
30// 3xx: Positive intermediate Reply
31pub const NEED_PASSWORD: u32 = 331;
32pub const LOGIN_NEED_ACCOUNT: u32 = 332;
33pub const SECURITY_MECHANISM_IS_OK: u32 = 334;
34pub const REQUEST_FILE_PENDING: u32 = 350;
35
36// 4xx: Transient Negative Completion Reply
37pub const NOT_AVAILABLE: u32 = 421;
38pub const CANNOT_OPEN_DATA_CONNECTION: u32 = 425;
39pub const TRANSER_ABORTED: u32 = 426;
40pub const INVALID_CREDENTIALS: u32 = 430;
41pub const HOST_UNAVAILABLE: u32 = 434;
42pub const REQUEST_FILE_ACTION_IGNORED: u32 = 450;
43pub const ACTION_ABORTED: u32 = 451;
44pub const REQUESTED_ACTION_NOT_TAKEN: u32 = 452;
45
46// 5xx: Permanent Negative Completion Reply
47pub const BAD_COMMAND: u32 = 500;
48pub const BAD_ARGUMENTS: u32 = 501;
49pub const NOT_IMPLEMENTED: u32 = 502;
50pub const BAD_SEQUENCE: u32 = 503;
51pub const NOT_IMPLEMENTED_PARAMETER: u32 = 504;
52pub const NOT_LOGGED_IN: u32 = 530;
53pub const STORING_NEED_ACCOUNT: u32 = 532;
54pub const FILE_UNAVAILABLE: u32 = 550;
55pub const PAGE_TYPE_UNKNOWN: u32 = 551;
56pub const EXCEEDED_STORAGE: u32 = 552;
57pub const BAD_FILENAME: u32 = 553;
58
59pub fn is_positive_preliminary(reply: u32) -> bool {
60    reply >= 100 && reply < 200
61}
62
63pub fn is_positive_completion(reply: u32) -> bool {
64    reply >= 200 && reply < 300
65}
66
67pub fn is_positive_intermediate(reply: u32) -> bool {
68    reply >= 300 && reply < 400
69}
70
71pub fn is_negative_transient(reply: u32) -> bool {
72    reply >= 400 && reply < 500
73}
74
75pub fn is_negative_permanent(reply: u32) -> bool {
76    reply >= 500 && reply < 600
77}
78
79pub fn is_protected_reply_code(reply: u32) -> bool {
80    reply >= 600 && reply < 700
81}