Subversion Repositories Kolibri OS

Rev

Rev 4920 | Rev 5011 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4920 Rev 4922
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
 
8
 
9
cmd_bye:
9
cmd_bye:
10
 
10
 
11
; Send BYE message to the server
11
; Send BYE message to the server
Line 12... Line 12...
12
        mov     dword[s], "BYE" + 13 shl 24
12
        mov     dword[buf_cmd], "BYE" + 13 shl 24
13
        mov     byte[s+4], 10
13
        mov     byte[buf_cmd+4], 10
14
        mcall   send, [socketnum], s, 5, 0
14
        mcall   send, [socketnum], buf_cmd, 5, 0
Line 15... Line 15...
15
 
15
 
Line 16... Line 16...
16
; Close the control connection
16
; Close the control connection
17
        mcall   close, [socketnum]
17
        mcall   close, [socketnum]
18
        jmp     main
18
        jmp     main
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
 
20
 
Line 21... Line 21...
21
cmd_pwd:
21
cmd_pwd:
Line 22... Line 22...
22
 
22
 
23
        mov     dword[s], "PWD" + 13 shl 24
23
        mov     dword[buf_cmd], "PWD" + 13 shl 24
24
        mov     byte[s+4], 10
24
        mov     byte[buf_cmd+4], 10
25
        mcall   send, [socketnum], s, 5, 0
25
        mcall   send, [socketnum], buf_cmd, 5, 0
26
 
26
 
27
        jmp     wait_for_servercommand
27
        jmp     wait_for_servercommand
Line 28... Line 28...
28
 
28
 
Line 29... Line 29...
29
 
29
 
Line 30... Line 30...
30
cmd_cwd:
30
cmd_cwd:
Line 31... Line 31...
31
 
31
 
32
        mov     dword[s], "CWD "
32
        mov     dword[buf_cmd], "CWD "
Line 33... Line 33...
33
 
33
 
34
        mov     ecx, 256
34
        mov     ecx, 256
35
        xor     al, al
35
        xor     al, al
36
        mov     edi, s
36
        mov     edi, buf_cmd
37
        repne scasb
37
        repne scasb
38
        lea     esi, [edi - s]
38
        lea     esi, [edi - buf_cmd]
Line 39... Line 39...
39
        mov     word [edi - 2], 0x0a0d
39
        mov     word [edi - 2], 0x0a0d
Line 40... Line 40...
40
 
40
 
Line 41... Line 41...
41
        mcall   send, [socketnum], s, , 0
41
        mcall   send, [socketnum], buf_cmd, , 0
42
 
42
 
Line 43... Line 43...
43
        jmp     wait_for_servercommand
43
        jmp     wait_for_servercommand
Line 44... Line 44...
44
 
44
 
45
 
45
 
46
cmd_dele:
46
cmd_dele:
Line 47... Line 47...
47
 
47
 
Line 48... Line 48...
48
        mov     dword[s], "DELE"
48
        mov     dword[buf_cmd], "DELE"
49
        mov     byte[s], " "
49
        mov     byte[buf_cmd], " "
Line 50... Line 50...
50
 
50
 
Line -... Line 51...
-
 
51
        mov     ecx, 256
-
 
52
        xor     al, al
51
        mov     ecx, 256
53
        mov     edi, buf_cmd
52
        xor     al, al
54
        repne scasb
53
        mov     edi, s
55
        lea     esi, [edi - buf_cmd]
Line 54... Line 56...
54
        repne scasb
56
        mov     word [edi - 2], 0x0a0d
55
        lea     esi, [edi - s]
57
 
Line 96... Line 98...
96
        mov     [filestruct.subfn], 3   ; write to file
98
        mov     [filestruct.subfn], 3   ; write to file
97
        mov     [operation], OPERATION_RETR
99
        mov     [operation], OPERATION_RETR
Line 98... Line 100...
98
 
100
 
Line 99... Line 101...
99
; Request the file from server
101
; Request the file from server
100
 
102
    
Line 101... Line 103...
101
        mov     dword[s], "RETR"
103
        mov     dword[buf_cmd], "RETR"
102
        mov     byte[s+4], " "
104
        mov     byte[buf_cmd+4], " "
103
 
105
 
104
        mov     ecx, 256
106
        mov     ecx, 256
105
        xor     al, al
107
        xor     al, al
106
        mov     edi, s
108
        mov     edi, buf_cmd
107
        repne scasb
109
        repne scasb
Line 108... Line 110...
108
        lea     esi, [edi - s]
110
        lea     esi, [edi - buf_cmd]
109
        mov     dword[edi - 2], 0x0a0d
111
        mov     dword[edi - 2], 0x0a0d
Line -... Line 112...
-
 
112
        mcall   send, [socketnum], buf_cmd, , 0
-
 
113
 
-
 
114
        invoke  con_write_asciiz, buf_cmd     ; print command
-
 
115
        jmp     wait_for_servercommand
-
 
116
 
-
 
117
cmd_rdir:        
-
 
118
 
-
 
119
        mov     [operation], OPERATION_RDIR
-
 
120
 
-
 
121
; Request filename list from the server
-
 
122
 
-
 
123
	call    open_dataconnection
-
 
124
	
-
 
125
	mov	[size_fname], 0
Line 110... Line 126...
110
        mcall   send, [socketnum], s, , 0
126
        mov     dword[buf_cmd], "NLST"
Line 111... Line 127...
111
 
127
        mov     word[buf_cmd+4], 0x0a0d
Line 121... Line 137...
121
 
137
 
122
        mov     [filestruct.subfn], 0   ; read file
138
        mov     [filestruct.subfn], 0   ; read file
123
        mov     [filestruct.offset], 0
139
        mov     [filestruct.offset], 0
124
        mov     [filestruct.offset+4], 0
140
        mov     [filestruct.offset+4], 0
125
        mov     [filestruct.size], BUFFERSIZE
141
        mov     [filestruct.size], BUFFERSIZE
Line 126... Line 142...
126
        mov     [filestruct.ptr], buffer_ptr2
142
        mov     [filestruct.ptr], buf_buffer2
127
 
143
 
128
        mov     esi, s+5
144
        mov     esi, buf_cmd+5
Line 129... Line 145...
129
        mov     ecx, 256-5
145
        mov     ecx, 256-5
130
        call    set_filename
146
        call    set_filename
Line 131... Line 147...
131
 
147
 
132
        mov     dword[s], "STOR"
148
        mov     dword[buf_cmd], "STOR"
133
        mov     byte[s+4], " "
149
        mov     byte[buf_cmd+4], " "
134
 
150
 
135
        mov     ecx, 256
151
        mov     ecx, 256
136
        xor     al, al
152
        xor     al, al
137
        mov     edi, s
153
        mov     edi, buf_cmd
Line 138... Line 154...
138
        repne scasb
154
        repne scasb
Line 139... Line 155...
139
        lea     esi, [edi - s]
155
        lea     esi, [edi - buf_cmd]
Line 140... Line 156...
140
        mov     word [edi - 2], 0x0a0d
156
        mov     word [edi - 2], 0x0a0d
141
        mcall   send, [socketnum], s, , 0
157
        mcall   send, [socketnum], buf_cmd, , 0
142
 
158
 
143
        jmp     wait_for_servercommand
159
        jmp     wait_for_servercommand
144
 
160
 
145
 
161
 
146
cmd_lcwd:
162
cmd_lcwd:
147
 
163
 
148
        mov     esi, s+5
164
        mov     esi, buf_cmd+5
149
        mov     ecx, 256-5
165
        mov     ecx, 256-5
150
  .loop:
166
  .loop:
151
        lodsb
167
        lodsb
152
        cmp     al, 10
168
        cmp     al, 10
Line 153... Line 169...
153
        je      .done
169
        je      .done
154
        test    al, al
170
        test    al, al
155
        je      .done
171
        je      .done
Line 156... Line 172...
156
        loop    .loop
172
        loop    .loop
Line 157... Line 173...
157
  .done:
173
  .done:
Line 158... Line 174...
158
        mov     byte[esi-1], 0
174
        mov     byte[esi-1], 0
159
        mcall   30, 1, s+5              ; set working directory
175
        mcall   30, 1, buf_cmd+5              ; set working directory
160
        mcall   30, 2, s, 256           ; and read it again
176
        mcall   30, 2, buf_cmd, 256           ; and read it again
Line 161... Line 177...
161
 
177
 
Line 162... Line 178...
162
        invoke  con_write_asciiz, str_lcwd
178
        invoke  con_write_asciiz, str_lcwd
Line 163... Line 179...
163
        invoke  con_write_asciiz, s
179
        invoke  con_write_asciiz, buf_cmd
Line 164... Line 180...
164
        invoke  con_write_asciiz, str_newline
180
        invoke  con_write_asciiz, str_newline
165
 
181
 
166
        jmp     wait_for_usercommand
182
        jmp     wait_for_usercommand
167
 
183
 
168
 
184
 
169
cmd_cdup:
185
cmd_cdup:
Line 170... Line 186...
170
 
186
 
Line 171... Line 187...
171
        mov     dword[s], "CDUP"
187
        mov     dword[buf_cmd], "CDUP"
Line 172... Line 188...
172
        mov     word[s+4], 0x0d0a
188
        mov     word[buf_cmd+4], 0x0d0a
Line 173... Line 189...
173
        mcall   send, [socketnum], s, 6, 0
189
        mcall   send, [socketnum], buf_cmd, 6, 0
Line 174... Line 190...
174
 
190
 
175
        jmp     wait_for_servercommand
191
        jmp     wait_for_servercommand
176
 
192
 
177
 
193
 
178
cmd_rmd:
194
cmd_rmd:
179
 
195
 
Line 180... Line 196...
180
        mov     dword[s], "RMD "
196
        mov     dword[buf_cmd], "RMD "
Line 181... Line 197...
181
 
197
 
Line 182... Line 198...
182
        mov     ecx, 256
198
        mov     ecx, 256