Subversion Repositories Kolibri OS

Rev

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