Subversion Repositories Kolibri OS

Rev

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

Rev 3819 Rev 3824
Line 88... Line 88...
88
;        dd 'MDTM', login_first, login_first, login_first, cmd_MDTM
88
;        dd 'MDTM', login_first, login_first, login_first, cmd_MDTM
89
;        dd 'MKD',  login_first, login_first, login_first, cmd_MKD
89
;        dd 'MKD',  login_first, login_first, login_first, cmd_MKD
90
;        dd 'MODE', login_first, login_first, login_first, cmd_MODE
90
;        dd 'MODE', login_first, login_first, login_first, cmd_MODE
91
        dd 'NLST', login_first, login_first, login_first, cmdNLST
91
;        dd 'NLST', login_first, login_first, login_first, cmdNLST
92
        dd 'NOOP', login_first, login_first, login_first, cmdNOOP
92
        dd 'NOOP', login_first, login_first, login_first, cmdNOOP
93
        dd 'PASS', cmdPASS.0,   cmdPASS    , cmdPASS.2,   cmdPASS.3
93
        dd 'PASS', cmdPASS.0,   cmdPASS    , cmdPASS.2,   cmdPASS.3
94
        dd 'PASV', login_first, login_first, login_first, cmdPASV
94
        dd 'PASV', login_first, login_first, login_first, cmdPASV
95
        dd 'PORT', login_first, login_first, login_first, cmdPORT
95
        dd 'PORT', login_first, login_first, login_first, cmdPORT
96
        dd 'PWD',  login_first, login_first, login_first, cmdPWD
96
        dd 'PWD',  login_first, login_first, login_first, cmdPWD
97
        dd 'QUIT', cmdQUIT,     cmdQUIT,     cmdQUIT,     cmdQUIT
97
        dd 'QUIT', cmdQUIT,     cmdQUIT,     cmdQUIT,     cmdQUIT
98
;        dd 'REIN', login_first, login_first, login_first, cmd_REIN
98
;        dd 'REIN', login_first, login_first, login_first, cmd_REIN
Line 281... Line 281...
281
open_datasock:
281
open_datasock:
282
 
282
 
Line 283... Line 283...
283
        cmp     [ebp + thread_data.mode], MODE_PASSIVE_OK
283
        cmp     [ebp + thread_data.mode], MODE_PASSIVE_OK
284
        je      .start
284
        je      .already_open
Line 285... Line 285...
285
 
285
 
286
; If we are in active mode, it's time to open a data socket..
286
; If we are in active mode, it's time to open the data socket..
287
        cmp     [ebp + thread_data.mode], MODE_ACTIVE
287
        cmp     [ebp + thread_data.mode], MODE_ACTIVE
288
        jne     .not_active
288
        jne     .not_active
289
        mov     ecx, [ebp + thread_data.datasocketnum]
289
        mov     ecx, [ebp + thread_data.datasocketnum]
290
        lea     edx, [ebp + thread_data.datasock]
290
        lea     edx, [ebp + thread_data.datasock]
291
        mov     esi, sizeof.thread_data.datasock
291
        mov     esi, sizeof.thread_data.datasock
292
        mcall   connect
292
        mcall   connect
293
        cmp     eax, -1
293
        cmp     eax, -1
-
 
294
        je      .socketerror
-
 
295
        invoke  con_write_asciiz, str_datasock2
-
 
296
        ret
-
 
297
 
-
 
298
  .already_open:
-
 
299
        invoke  con_write_asciiz, str_alopen
Line 294... Line 300...
294
        jne     .start
300
        ret
295
 
301
 
296
  .socketerror:
302
  .socketerror:
Line 321... Line 327...
321
        mov     [ebp + thread_data.passivesocknum], -1
327
        mov     [ebp + thread_data.passivesocknum], -1
322
        invoke  con_write_asciiz, str_datasock
328
        invoke  con_write_asciiz, str_datasock
323
 
329
 
324
  .start:
330
        ret
Line 325... Line -...
325
        ret
-
 
326
 
331
 
Line 327... Line 332...
327
 
332
 
328
;------------------------------------------------
333
;------------------------------------------------
Line 598... Line 603...
598
        mov     [ebp + thread_data.mode], MODE_NOTREADY
603
        mov     [ebp + thread_data.mode], MODE_NOTREADY
599
        mcall   close, [ebp + thread_data.datasocketnum]
604
        mcall   close, [ebp + thread_data.datasocketnum]
600
 
605
 
Line 601... Line 606...
601
        sendFTP "226 Transfer OK"
606
        sendFTP "226 List OK"
602
        ret
607
        ret
Line 603... Line 608...
603
 
608
 
604
  .nosuchdir:
609
  .nosuchdir:
605
        sendFTP "550 Directory does not exist"
610
        sendFTP "550 Directory does not exist"
Line 771... Line 776...
771
        mov     eax, ')' + (0x000a0d shl 8)
776
        mov     eax, ')' + (0x000a0d shl 8)
772
        stosd
777
        stosd
773
 
778
 
774
        lea     esi, [edi - thread_data.buffer]
779
        lea     esi, [edi - thread_data.buffer - 1]      ; calculate length, do not cound the trailing 0 byte
Line 775... Line 780...
775
        sub     esi, ebp
780
        sub     esi, ebp
776
        mov     ecx, [ebp + thread_data.socketnum]
781
        mov     ecx, [ebp + thread_data.socketnum]
777
        lea     edx, [ebp + thread_data.buffer]
782
        lea     edx, [ebp + thread_data.buffer]
778
        xor     edi, edi
783
        xor     edi, edi
779
        mcall   send
784
        mcall   send
780
 
785
 
Line -... Line 786...
-
 
786
        invoke  con_write_asciiz, edx
-
 
787
 
781
        ret
788
        ret
Line 782... Line 789...
782
 
789
 
783
 
790
 
Line 811... Line 818...
811
 
818
 
812
  .ok:
819
  .ok:
Line 813... Line 820...
813
        mov     dword [edi], '"' + 0x000a0d00    ; '"',13,10,0
820
        mov     dword [edi], '"' + 0x000a0d00    ; '"',13,10,0
814
        lea     esi, [edi - thread_data.buffer + 4]
821
        lea     esi, [edi - thread_data.buffer + 3]
815
        sub     esi, ebp
822
        sub     esi, ebp
816
        mov     ecx, [ebp + thread_data.socketnum]
823
        mov     ecx, [ebp + thread_data.socketnum]
817
        lea     edx, [ebp + thread_data.buffer]
824
        lea     edx, [ebp + thread_data.buffer]
818
        xor     edi, edi
825
        xor     edi, edi
819
        mcall   send
826
        mcall   send
820
 
827
 
Line 989... Line 996...
989
        test    [ebp + thread_data.permissions], PERMISSION_WRITE
996
        test    [ebp + thread_data.permissions], PERMISSION_WRITE
Line 990... Line 997...
990
        jz      permission_denied
997
        jz      permission_denied
991
 
998
 
Line -... Line 999...
-
 
999
        sendFTP " Ready to receive"
-
 
1000
 
-
 
1001
 
-
 
1002
;;;;    TODO
Line 992... Line -...
992
 
-
 
993
;;;;
1003
 
994
        test    [ebp + thread_data.permissions], ABORT
1004
        test    [ebp + thread_data.permissions], ABORT
Line 995... Line 1005...
995
        jnz     abort_transfer
1005
        jnz     abort_transfer
Line -... Line 1006...
-
 
1006
 
-
 
1007
;;;;
996
 
1008
 
Line 997... Line 1009...
997
;;;;
1009
        sendFTP "226 Transfer OK"
998
 
1010
 
999
        ret
1011
        ret