Rev 3792 | Rev 3813 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3792 | Rev 3800 | ||
---|---|---|---|
Line 19... | Line 19... | ||
19 | 19 | ||
20 | cmp dword[s], "230 " |
20 | cmp dword[s], "230 " |
Line 21... | Line 21... | ||
21 | je login_ok |
21 | je login_ok |
22 | 22 | ||
Line 23... | Line 23... | ||
23 | ; cmp dword[s], "250" |
23 | ; cmp dword[s], "250" |
24 | ; je dir_ok |
24 | ; je op_ok |
Line 25... | Line 25... | ||
25 | 25 | ||
26 | cmp dword[s], "331 " |
26 | cmp dword[s], "331 " |
Line 27... | Line 27... | ||
27 | je pass |
27 | je pass |
28 | 28 | ||
Line -... | Line 29... | ||
- | 29 | ; cmp dword[s], "421 " |
|
- | 30 | ; je timeout |
|
- | 31 | ||
29 | ; cmp dword[s], "421 " |
32 | cmp dword[s], "530 " ; password incorrect |
Line 30... | Line 33... | ||
30 | ; je timeout |
33 | je welcome |
Line 88... | Line 91... | ||
88 | jmp wait_for_servercommand |
91 | jmp wait_for_servercommand |
Line 89... | Line 92... | ||
89 | 92 | ||
Line -... | Line 93... | ||
- | 93 | ||
- | 94 | data_ok: |
|
- | 95 | ||
- | 96 | cmp [operation], OPERATION_STOR |
|
90 | 97 | je .stor |
|
91 | data_ok: |
98 | |
92 | 99 | ; we are receiving data |
|
93 | mcall recv, [datasocket], buffer_ptr2, BUFFERSIZE, 0 |
100 | mcall recv, [datasocket], buffer_ptr2, BUFFERSIZE, 0 |
Line -... | Line 101... | ||
- | 101 | test ebx, ebx |
|
- | 102 | jnz .done |
|
- | 103 | mov byte[buffer_ptr2 + eax], 0 |
|
- | 104 | ||
94 | test ebx, ebx |
105 | cmp [operation], OPERATION_RETR |
- | 106 | je .retr |
|
Line -... | Line 107... | ||
- | 107 | ||
- | 108 | ; not retreiving, just print to console |
|
- | 109 | invoke con_write_asciiz, buffer_ptr2 |
|
- | 110 | jmp data_ok |
|
- | 111 | ||
- | 112 | ; retreiving, save to file |
|
- | 113 | .retr: |
|
- | 114 | mov [filestruct.ptr], buffer_ptr2 |
|
95 | jnz .fail |
115 | mov [filestruct.size], eax |
Line -... | Line 116... | ||
- | 116 | push eax |
|
96 | mov byte[buffer_ptr2 + eax], 0 |
117 | mcall 70, filestruct |
- | 118 | pop eax |
|
- | 119 | add [filestruct.offset], eax |
|
- | 120 | jmp data_ok |
|
- | 121 | ||
- | 122 | ; storing, send all data |
|
- | 123 | .stor: |
|
- | 124 | mcall 70, filestruct |
|
- | 125 | cmp eax, 6 ; end of file |
|
- | 126 | je .last_call |
|
- | 127 | test eax, eax ; error |
|
- | 128 | ; jne .fileerror |
|
- | 129 | add [filestruct.offset], ebx |
|
- | 130 | mov esi, ebx |
|
- | 131 | mcall send, [datasocket], buffer_ptr2, , 0 |
|
- | 132 | jmp .stor |
|
97 | 133 | ||
98 | invoke con_write_asciiz, buffer_ptr2 |
134 | .last_call: |
Line -... | Line 135... | ||
- | 135 | mov esi, ebx |
|
- | 136 | mcall send, [datasocket], buffer_ptr2, , 0 |
|
- | 137 | ||
- | 138 | .done: |
|
- | 139 | mcall close, [datasocket] |
|
- | 140 | jmp wait_for_servercommand |
|
- | 141 | ||
99 | 142 | ||
Line 100... | Line 143... | ||
100 | jmp data_ok |
143 | |
101 | 144 | close_datacon: |
|
102 | .fail: |
145 | mcall close, [datasocket] |