Subversion Repositories Kolibri OS

Rev

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

Rev 3789 Rev 3790
Line 121... Line 121...
121
        mcall   connect, [socketnum], sockaddr1, 18
121
        mcall   connect, [socketnum], sockaddr1, 18
122
        mov     [status], STATUS_CONNECTING
122
        mov     [status], STATUS_CONNECTING
Line 123... Line 123...
123
 
123
 
Line -... Line 124...
-
 
124
        invoke  con_write_asciiz, str12
-
 
125
 
124
        invoke  con_write_asciiz, str12
126
        mov     [offset], 0
Line -... Line 127...
-
 
127
 
-
 
128
wait_for_servercommand:
125
 
129
 
-
 
130
        cmp     [offset], 0
-
 
131
        je      .receive
-
 
132
        mov     esi, [offset]
-
 
133
        mov     edi, s
Line 126... Line 134...
126
wait_for_servercommand:
134
        mov     ecx, [size]
-
 
135
        add     ecx, esi
127
 
136
        jmp     .byteloop
128
;        invoke  con_write_asciiz, str_dbg
137
 
129
 
138
; receive socket data
130
; receive socket data
139
  .receive:
131
        mcall   recv, [socketnum], buffer_ptr, BUFFERSIZE, 0
140
        mcall   recv, [socketnum], buffer_ptr, BUFFERSIZE, 0
Line 132... Line 141...
132
        inc     eax
141
        inc     eax
Line 133... Line 142...
133
        jz      socket_error
142
        jz      socket_error
134
        dec     eax
143
        dec     eax
135
        jz      wait_for_servercommand
144
        jz      wait_for_servercommand
136
 
145
 
Line 149... Line 158...
149
        cmp     al, 13                          ; just ignore this byte
158
        cmp     al, 13                          ; just ignore this byte
150
        je      .byteloop
159
        je      .byteloop
151
        stosb
160
        stosb
152
        jmp     .byteloop
161
        jmp     .byteloop
153
  .got_command:                                 ; we have a newline check if its a command
162
  .got_command:                                 ; we have a newline check if its a command
-
 
163
        cmp     esi, ecx
-
 
164
        je      .no_more_data
-
 
165
        mov     [offset], esi
-
 
166
        sub     ecx, esi
-
 
167
        mov     [size], ecx
-
 
168
        jmp     .go_cmd
-
 
169
  .no_more_data:
-
 
170
        mov     [offset], 0
-
 
171
  .go_cmd:
154
        xor     al, al
172
        xor     al, al
155
        stosb
173
        stosb
Line 156... Line -...
156
 
-
 
157
        sub     edi, s                          ; length
-
 
158
        push    edi
-
 
159
 
174
 
160
        invoke  con_set_flags, 0x03             ; change color
175
        invoke  con_set_flags, 0x03             ; change color
161
        invoke  con_write_asciiz, s             ; print servercommand
176
        invoke  con_write_asciiz, s             ; print servercommand
162
        invoke  con_write_asciiz, str4          ; newline
177
        invoke  con_write_asciiz, str4          ; newline
Line 163... Line -...
163
        invoke  con_set_flags, 0x07
-
 
164
 
178
        invoke  con_set_flags, 0x07
Line 165... Line 179...
165
        pop     ecx
179
 
Line 166... Line 180...
166
        jmp     server_parser                   ; parse command
180
        jmp     server_parser                   ; parse command
Line 186... Line 200...
186
        je      cmd_list
200
        je      cmd_list
Line 187... Line 201...
187
 
201
 
188
        cmp     dword[s], "help"
202
        cmp     dword[s], "help"
Line -... Line 203...
-
 
203
        je      cmd_help
-
 
204
 
-
 
205
        cmp     dword[s], "cwd "
189
        je      cmd_help
206
        je      cmd_cwd
190
 
207
 
Line 191... Line 208...
191
        invoke  con_write_asciiz, str_unknown
208
        invoke  con_write_asciiz, str_unknown
Line 278... Line 295...
278
str_help db "available commands:",10,10
295
str_help db "available commands:",10,10
279
         db "help       list",10,0
296
         db "help       list",10,0
Line 280... Line 297...
280
 
297
 
Line 281... Line -...
281
str_open db "opening data socket",10,0
-
 
282
 
-
 
283
str_dbg db 'debug',10,0
-
 
284
str_dbg2 db 'debug2',10,0
298
str_open db "opening data socket",10,0
285
 
299
 
286
sockaddr1:
300
sockaddr1:
287
        dw AF_INET4
301
        dw AF_INET4
288
.port   dw 0x1500       ; 21
302
.port   dw 0x1500       ; 21
Line 324... Line 338...
324
i_end:
338
i_end:
Line 325... Line 339...
325
 
339
 
326
active_passive  db ?
340
active_passive  db ?
327
socketnum       dd ?
341
socketnum       dd ?
328
datasocket      dd ?
342
datasocket      dd ?
-
 
343
buffer_ptr      rb BUFFERSIZE
329
buffer_ptr      rb 2*BUFFERSIZE
344
buffer_ptr2     rb BUFFERSIZE
-
 
345
status          db ?
-
 
346
offset          dd ?
Line 330... Line 347...
330
status          db ?
347
size            dd ?
Line 331... Line 348...
331
 
348