Subversion Repositories Kolibri OS

Rev

Rev 2554 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2554 hidnplayr 1
 
2
 
3
 
4
        cmp     byte [esi+3], 0x20
5
        jae     @f
6
 
2557 hidnplayr 7
       @@:
8
9
        mov     eax, [esi]
10
        and     eax, not 0x20202020     ; convert to upper case
11
 
2554 hidnplayr 12
        mov     edi, commands           ; list of commands to scan
13
  .scanloop:
14
        cmp     eax, [edi]
15
        jne     .try_next
16
17
        jmp     dword [edi+4]
2557 hidnplayr 18
2554 hidnplayr 19
 
20
        add     edi, 8
21
 
22
        jne     .scanloop
23
24
  .error:
25
        mcall   send, [socketnum2], str500, str500.length, 0
26
 
27
        ret
2557 hidnplayr 28
29
 
2554 hidnplayr 30
align 4
31
 
32
 
33
        db 'ABOR'
2557 hidnplayr 34
        dd cmdABOR
2554 hidnplayr 35
 
36
        db 'CWD', 0
37
        dd cmdCWD
38
 
39
        db 'DELE'
40
        dd cmdDELE
41
 
42
        db 'LIST'
43
        dd cmdLIST
44
 
45
        db 'NLST'
46
        dd cmdNLST
47
 
48
        db 'NOOP'
49
        dd cmdNOOP
50
 
51
        db 'PASS'
52
        dd cmdPASS
53
 
2557 hidnplayr 54
        db 'PWD', 0
55
        dd cmdPWD
56
 
2554 hidnplayr 57
        db 'PORT'
58
        dd cmdPORT
59
 
60
        db 'QUIT'
61
        dd cmdQUIT
62
 
63
        db 'RETR'
64
        dd cmdRETR
65
 
66
        db 'STOR'
67
        dd cmdSTOR
68
 
69
        db 'SYST'
70
        dd cmdSYST
71
 
72
        db 'TYPE'
73
        dd cmdTYPE
74
 
75
        db 'USER'
76
        dd cmdUSER
77
 
78
        db 'XPWD'
79
        dd cmdPWD
80
 
81
        db 0                    ; end marker
82
83
 
84
align 4
85
 
86
 
87
        ret
88
89
 
90
cmdCWD:
91
 
92
        ret
93
94
 
95
cmdDELE:
96
 
97
        ret
98
99
 
100
cmdLIST:
101
 
102
        ret
103
104
 
105
cmdNLST:
106
 
107
        ret
108
109
 
110
cmdNOOP:
111
 
112
        ret
113
114
 
115
cmdPASS:
116
 
117
        mcall   send, [socketnum2], str230, str230.length, 0
2557 hidnplayr 118
        mov     [state], STATE_ACTIVE
119
 
120
        ret
121
122
 
123
cmdPWD:
124
 
125
        ret
2554 hidnplayr 126
127
 
128
cmdPORT:
129
 
130
        ret
131
132
 
133
cmdQUIT:
134
 
135
        mcall   send, [socketnum2], str221, str221.length, 0
136
        mcall   close, [socketnum2]
137
 
2557 hidnplayr 138
        ret
139
140
 
2554 hidnplayr 141
cmdRETR:
142
 
143
        ret
144
145
 
146
cmdSTOR:
147
 
148
        ret
149
150
 
151
cmdSYST:
152
 
153
        mcall   send, [socketnum2], str215, str215.length, 0
154
155
 
2557 hidnplayr 156
157
 
2554 hidnplayr 158
cmdTYPE:
159
 
160
        ret
161
162
 
163
cmdUSER:
164
 
165
        mcall   send, [socketnum2], str331, str331.length, 0
166
        mov     [state], STATE_LOGIN
167
 
2557 hidnplayr 168
        ret
169
170
 
2554 hidnplayr 171
172
 
173
 
174
 
175
.length = $ - str215
176
str220  db '220 KolibriOS FTP Daemon 1.0', 13, 10
177
.length = $ - str220
2557 hidnplayr 178
str221  db '221 Bye!', 13, 10
2554 hidnplayr 179
.length = $ - str221
180
str225  db '225 Abort successful', 13, 10
181
str226  db '226 Transfer OK, Closing connection', 13, 10
2557 hidnplayr 182
str230  db '230 You are now logged in.', 13, 10
2554 hidnplayr 183
.length = $ - str230
184
str250  db '250 command successful', 13, 10
185
str257  db '257 ""', 13, 10
2557 hidnplayr 186
str331  db '331 Please specify the password.', 13, 10
2554 hidnplayr 187
.length = $ - str331
188
str500  db '500 Unsupported command', 13, 10
189
.length = $ - str500
2557 hidnplayr 190
str550  db '550 No such file', 13, 10
2554 hidnplayr 191