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 |