90,7 → 90,7 |
; dd 'MDTM', login_first, login_first, login_first, cmd_MDTM |
; dd 'MKD', login_first, login_first, login_first, cmd_MKD |
; dd 'MODE', login_first, login_first, login_first, cmd_MODE |
; dd 'NLST', login_first, login_first, login_first, cmdNLST |
dd 'NLST', login_first, login_first, login_first, cmdNLST |
dd 'NOOP', login_first, login_first, login_first, cmdNOOP |
dd 'PASS', cmdPASS.0, cmdPASS , cmdPASS.2, cmdPASS.3 |
dd 'PASV', login_first, login_first, login_first, cmdPASV |
283,9 → 283,9 |
open_datasock: |
|
cmp [ebp + thread_data.mode], MODE_PASSIVE_OK |
je .already_open |
je .start |
|
; If we are in active mode, it's time to open the data socket.. |
; If we are in active mode, it's time to open a data socket.. |
cmp [ebp + thread_data.mode], MODE_ACTIVE |
jne .not_active |
mov ecx, [ebp + thread_data.datasocketnum] |
293,14 → 293,8 |
mov esi, sizeof.thread_data.datasock |
mcall connect |
cmp eax, -1 |
je .socketerror |
invoke con_write_asciiz, str_datasock2 |
ret |
jne .start |
|
.already_open: |
invoke con_write_asciiz, str_alopen |
ret |
|
.socketerror: |
add esp, 4 |
jmp socketerror |
329,6 → 323,7 |
mov [ebp + thread_data.passivesocknum], -1 |
invoke con_write_asciiz, str_datasock |
|
.start: |
ret |
|
|
605,7 → 600,7 |
mov [ebp + thread_data.mode], MODE_NOTREADY |
mcall close, [ebp + thread_data.datasocketnum] |
|
sendFTP "226 List OK" |
sendFTP "226 Transfer OK" |
ret |
|
.nosuchdir: |
778,7 → 773,7 |
mov eax, ')' + (0x000a0d shl 8) |
stosd |
|
lea esi, [edi - thread_data.buffer - 1] ; calculate length, do not cound the trailing 0 byte |
lea esi, [edi - thread_data.buffer] |
sub esi, ebp |
mov ecx, [ebp + thread_data.socketnum] |
lea edx, [ebp + thread_data.buffer] |
785,8 → 780,6 |
xor edi, edi |
mcall send |
|
invoke con_write_asciiz, edx |
|
ret |
|
|
820,7 → 813,7 |
|
.ok: |
mov dword [edi], '"' + 0x000a0d00 ; '"',13,10,0 |
lea esi, [edi - thread_data.buffer + 3] |
lea esi, [edi - thread_data.buffer + 4] |
sub esi, ebp |
mov ecx, [ebp + thread_data.socketnum] |
lea edx, [ebp + thread_data.buffer] |
998,18 → 991,13 |
test [ebp + thread_data.permissions], PERMISSION_WRITE |
jz permission_denied |
|
sendFTP " Ready to receive" |
|
|
;;;; TODO |
|
;;;; |
test [ebp + thread_data.permissions], ABORT |
jnz abort_transfer |
|
;;;; |
|
sendFTP "226 Transfer OK" |
|
ret |
|
;------------------------------------------------ |