Rev 4235 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4235 | Rev 4536 | ||
---|---|---|---|
1 | //HTTP library |
1 | //HTTP library |
2 | 2 | ||
3 | dword libHTTP = #alibHTTP; |
3 | dword libHTTP = #alibHTTP; |
4 | char alibHTTP[23] = "/sys/lib/http.obj\0"; |
4 | char alibHTTP[23] = "/sys/lib/http.obj\0"; |
5 | 5 | ||
6 | dword http_lib_init = #aLib_init; |
6 | dword http_lib_init = #aLib_init; |
7 | dword http_get = #aHTTPget; |
7 | dword http_get = #aHTTPget; |
8 | dword http_head = #aHTTPhead; |
8 | dword http_head = #aHTTPhead; |
9 | dword http_post = #aHTTPpost; |
9 | dword http_post = #aHTTPpost; |
10 | dword http_find_header_field = #aFHF; |
10 | dword http_find_header_field = #aFHF; |
11 | dword http_process = #aHTTPprocess; |
11 | dword http_process = #aHTTPprocess; |
12 | dword http_free = #aHTTPfree; |
12 | dword http_free = #aHTTPfree; |
13 | dword http_stop = #aHTTPstop; |
13 | dword http_stop = #aHTTPstop; |
14 | dword uri_escape = #aURIescape; |
14 | dword uri_escape = #aURIescape; |
15 | dword uri_unescape = #aURIunescape; |
15 | dword uri_unescape = #aURIunescape; |
16 | $DD 2 dup 0 |
16 | $DD 2 dup 0 |
17 | 17 | ||
18 | char aLib_init[9] = "lib_init\0"; |
18 | char aLib_init[9] = "lib_init\0"; |
19 | char aHTTPget[4] = "get\0"; |
19 | char aHTTPget[4] = "get\0"; |
20 | char aHTTPhead[5] = "head\0"; |
20 | char aHTTPhead[5] = "head\0"; |
21 | char aHTTPpost[5] = "post\0"; |
21 | char aHTTPpost[5] = "post\0"; |
22 | char aFHF[18] = "find_header_field\0"; |
22 | char aFHF[18] = "find_header_field\0"; |
23 | char aHTTPprocess[8] = "process\0"; |
23 | char aHTTPprocess[8] = "process\0"; |
24 | char aHTTPfree[5] = "free\0"; |
24 | char aHTTPfree[5] = "free\0"; |
25 | char aHTTPstop[5] = "stop\0"; |
25 | char aHTTPstop[5] = "stop\0"; |
26 | char aURIescape[7] = "escape\0"; |
26 | char aURIescape[7] = "escape\0"; |
27 | char aURIunescape[9] = "unescape\0"; |
27 | char aURIunescape[9] = "unescape\0"; |
28 | 28 | ||
29 | #define FLAG_HTTP11 1 << 0 |
29 | #define FLAG_HTTP11 1 << 0 |
30 | #define FLAG_GOT_HEADER 1 << 1 |
30 | #define FLAG_GOT_HEADER 1 << 1 |
31 | #define FLAG_GOT_DATA 1 << 2 |
31 | #define FLAG_GOT_ALL_DATA 1 << 2 |
32 | #define FLAG_CONTENT_LENGTH 1 << 3 |
32 | #define FLAG_CONTENT_LENGTH 1 << 3 |
33 | #define FLAG_CHUNKED 1 << 4 |
33 | #define FLAG_CHUNKED 1 << 4 |
34 | #define FLAG_CONNECTED 1 << 5 |
34 | #define FLAG_CONNECTED 1 << 5 |
35 | 35 | ||
36 | // error flags go into the upper word |
36 | // error flags go into the upper word |
37 | #define FLAG_INVALID_HEADER 1 << 16 |
37 | #define FLAG_INVALID_HEADER 1 << 16 |
38 | #define FLAG_NO_RAM 1 << 17 |
38 | #define FLAG_NO_RAM 1 << 17 |
39 | #define FLAG_SOCKET_ERROR 1 << 18 |
39 | #define FLAG_SOCKET_ERROR 1 << 18 |
40 | #define FLAG_TIMEOUT_ERROR 1 << 19 |
40 | #define FLAG_TIMEOUT_ERROR 1 << 19 |
- | 41 | #define FLAG_TRANSFER_FAILED 1 << 20 |
|
41 | 42 | ||
42 | struct http_msg{ |
43 | struct http_msg{ |
43 | dword socket; |
44 | dword socket; |
44 | dword flags; |
45 | dword flags; |
45 | dword write_ptr; |
46 | dword write_ptr; |
46 | dword buffer_length; |
47 | dword buffer_length; |
47 | dword chunk_ptr; |
48 | dword chunk_ptr; |
48 | dword timestamp; |
49 | dword timestamp; |
49 | dword status; |
50 | dword status; |
50 | dword header_length; |
51 | dword header_length; |
- | 52 | dword content_ptr; |
|
51 | dword content_length; |
53 | dword content_length; |
52 | dword content_received; |
54 | dword content_received; |
53 | char data; |
55 | char http_header; |
54 | };><>><>><>><>><>><>><>><>><>><> |
56 | };><>><>><>><>><>><>><>><>><>><>><> |
55 | 57 |