Rev 3794 | Rev 3802 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3794 | Rev 3800 | ||
---|---|---|---|
Line 1... | Line -... | ||
1 | cmd_list: |
- | |
2 | - | ||
3 | call open_dataconnection |
- | |
4 | - | ||
5 | mov dword[s], "LIST" |
- | |
6 | mov byte[s+4], 0x0a |
- | |
7 | mcall send, [socketnum], s, 5, 0 |
- | |
8 | - | ||
9 | jmp wait_for_servercommand |
- | |
10 | - | ||
11 | - | ||
12 | cmd_help: |
1 | cmd_help: |
Line 13... | Line 2... | ||
13 | 2 | ||
14 | push str_help |
3 | push str_help |
Line 15... | Line 4... | ||
15 | call [con_write_asciiz] |
4 | call [con_write_asciiz] |
Line -... | Line 5... | ||
- | 5 | ||
- | 6 | jmp wait_for_usercommand |
|
- | 7 | ||
- | 8 | cmd_bye: |
|
- | 9 | ||
- | 10 | mcall close, [socketnum] |
|
- | 11 | mcall close, [datasocket] |
|
16 | 12 | ||
Line 17... | Line 13... | ||
17 | jmp wait_for_usercommand |
13 | jmp main |
18 | 14 | ||
Line 35... | Line 31... | ||
35 | 31 | ||
Line 36... | Line 32... | ||
36 | mcall send, [socketnum], s, , 0 |
32 | mcall send, [socketnum], s, , 0 |
Line -... | Line 33... | ||
- | 33 | ||
- | 34 | jmp wait_for_servercommand |
|
- | 35 | ||
- | 36 | cmd_dele: |
|
- | 37 | ||
- | 38 | mov dword[s], "DELE" |
|
- | 39 | mov byte[s], " " |
|
- | 40 | ||
- | 41 | mov ecx, 256 |
|
- | 42 | xor al, al |
|
- | 43 | mov edi, s |
|
- | 44 | repne scasb |
|
- | 45 | lea esi, [edi - s - 1] |
|
- | 46 | ||
- | 47 | mcall send, [socketnum], s, , 0 |
|
- | 48 | ||
- | 49 | jmp wait_for_servercommand |
|
- | 50 | ||
- | 51 | cmd_list: |
|
- | 52 | ||
- | 53 | call open_dataconnection |
|
- | 54 | ||
- | 55 | mov [operation], OPERATION_LIST |
|
- | 56 | ||
- | 57 | mov dword[s], "LIST" |
|
- | 58 | mov byte[s+4], 0x0a |
|
- | 59 | mcall send, [socketnum], s, 5, 0 |
|
Line 37... | Line 60... | ||
37 | 60 | ||
Line 38... | Line 61... | ||
38 | jmp wait_for_servercommand |
61 | jmp wait_for_servercommand |
Line -... | Line 62... | ||
- | 62 | ||
- | 63 | ||
- | 64 | cmd_retr: |
|
- | 65 | ||
- | 66 | call open_dataconnection |
|
- | 67 | ||
- | 68 | mov [operation], OPERATION_RETR |
|
- | 69 | ||
- | 70 | mov [filestruct.subfn], 2 ; create/rewrite file |
|
- | 71 | mov [filestruct.offset], 0 |
|
- | 72 | mov [filestruct.offset+4], 0 |
|
- | 73 | mov [filestruct.size], 0 |
|
- | 74 | mov [filestruct.ptr], 0 |
|
- | 75 | ||
- | 76 | lea esi, [s+5] |
|
- | 77 | mov edi, filestruct.name |
|
- | 78 | mov ecx, 256-5 |
|
- | 79 | call set_filename |
|
- | 80 | ||
39 | 81 | mcall 70, filestruct |
|
40 | 82 | cmp eax, -1 |
|
Line 41... | Line 83... | ||
41 | cmd_retr: |
83 | ; je fileerror |
42 | 84 | ||
43 | call open_dataconnection |
85 | mov [filestruct.subfn], 3 ; write to file |
44 | 86 | ||
45 | mov dword[s], "RETR" |
87 | mov dword[s], "RETR" |
46 | mov byte[s+4], " " |
- | |
47 | 88 | mov byte[s+4], " " |
|
Line 48... | Line 89... | ||
48 | mov ecx, 256 |
89 | |
Line 49... | Line 90... | ||
49 | xor al, al |
90 | mov ecx, 256 |
Line 50... | Line 91... | ||
50 | mov edi, s |
91 | xor al, al |
Line -... | Line 92... | ||
- | 92 | mov edi, s |
|
- | 93 | repne scasb |
|
- | 94 | lea esi, [edi - s - 1] |
|
- | 95 | mcall send, [socketnum], s, , 0 |
|
- | 96 | ||
- | 97 | jmp wait_for_servercommand |
|
- | 98 | ||
- | 99 | ||
- | 100 | cmd_stor: |
|
- | 101 | ||
- | 102 | call open_dataconnection |
|
- | 103 | ||
- | 104 | mov [operation], OPERATION_STOR |
|
51 | repne scasb |
105 | |
52 | lea esi, [edi - s - 1] |
106 | mov [filestruct.subfn], 0 ; read file |
Line 53... | Line 107... | ||
53 | 107 | mov [filestruct.offset], 0 |
|
54 | mcall send, [socketnum], s, , 0 |
108 | mov [filestruct.offset+4], 0 |
55 | 109 | mov [filestruct.size], BUFFERSIZE |
|
56 | jmp wait_for_servercommand |
110 | mov [filestruct.ptr], buffer_ptr2 |
57 | 111 | ||
58 | - | ||
59 | cmd_stor: |
112 | lea esi, [s+5] |
Line 60... | Line 113... | ||
60 | 113 | mov edi, filestruct.name |
|
61 | call open_dataconnection |
114 | mov ecx, 256-5 |
- | 115 | call set_filename |
|
- | 116 | ||
- | 117 | mov dword[s], "STOR" |
|
- | 118 | mov byte[s+4], " " |
|
- | 119 | ||
- | 120 | mov ecx, 256 |
|
- | 121 | xor al, al |
|
- | 122 | mov edi, s |
|
- | 123 | repne scasb |
|
- | 124 | lea esi, [edi - s - 1] |
|
- | 125 | mcall send, [socketnum], s, , 0 |
|
- | 126 | ||
- | 127 | jmp wait_for_servercommand |
|
- | 128 | ||
- | 129 | ||
- | 130 | ||
- | 131 | ; esi = source ptr |
|
- | 132 | ; edi = dest ptr |
|
- | 133 | ; ecx = max length of source buffer |
|
- | 134 | set_filename: |
|
- | 135 | ||
- | 136 | .loop: |
|
- | 137 | lodsb |
|
- | 138 | test al, al |