annotate stream/http.h @ 23927:91ccac9cc015

Add test for GNUisms It currently tests for case ... ranges only, but other tests (like GNU extensions to libc) can be added later
author ivo
date Mon, 30 Jul 2007 18:08:26 +0000
parents 3f0d00abc073
children 4129c8cfa742
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
1 /*
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
2 * HTTP Helper
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
3 * by Bertrand Baudet <bertrand_baudet@yahoo.com>
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
4 * (C) 2001, MPlayer team.
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
5 */
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
6
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19271
diff changeset
7 #ifndef HTTP_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19271
diff changeset
8 #define HTTP_H
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
9
3039
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
10 typedef struct HTTP_field_type {
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
11 char *field_name;
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
12 struct HTTP_field_type *next;
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
13 } HTTP_field_t;
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
14
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
15 typedef struct {
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
16 char *protocol;
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
17 char *method;
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
18 char *uri;
7953
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
19 unsigned int status_code;
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
20 char *reason_phrase;
7953
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
21 unsigned int http_minor_version;
3039
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
22 // Field variables
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
23 HTTP_field_t *first_field;
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
24 HTTP_field_t *last_field;
7953
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
25 unsigned int field_nb;
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
26 char *field_search;
3039
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
27 HTTP_field_t *field_search_pos;
6514
37b0b3302395 Added base64 encoder
bertrand
parents: 3039
diff changeset
28 // Body variables
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
29 char *body;
7953
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
30 size_t body_size;
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
31 char *buffer;
7953
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
32 size_t buffer_size;
60624e692b95 GCC warning fixes
bertrand
parents: 6514
diff changeset
33 unsigned int is_parsed;
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
34 } HTTP_header_t;
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
35
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 7953
diff changeset
36 HTTP_header_t* http_new_header(void);
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
37 void http_free( HTTP_header_t *http_hdr );
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
38 int http_response_append( HTTP_header_t *http_hdr, char *data, int length );
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
39 int http_response_parse( HTTP_header_t *http_hdr );
2489
0ecc1b4f7cf8 Added ASF http server streaming (Not mms streaming).
bertrand
parents: 2310
diff changeset
40 int http_is_header_entire( HTTP_header_t *http_hdr );
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 870
diff changeset
41 char* http_build_request( HTTP_header_t *http_hdr );
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
42 char* http_get_field( HTTP_header_t *http_hdr, const char *field_name );
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
43 char* http_get_next_field( HTTP_header_t *http_hdr );
3039
80189681c02b Removed the field number limitation.
bertrand
parents: 2489
diff changeset
44 void http_set_field( HTTP_header_t *http_hdr, const char *field_name );
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
45 void http_set_method( HTTP_header_t *http_hdr, const char *method );
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
46 void http_set_uri( HTTP_header_t *http_hdr, const char *uri );
6514
37b0b3302395 Added base64 encoder
bertrand
parents: 3039
diff changeset
47 int http_add_basic_authentication( HTTP_header_t *http_hdr, const char *username, const char *password );
870
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
48
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
49 void http_debug_hdr( HTTP_header_t *http_hdr );
f641c96e431b Some simple code to handle HTTP requests/responses.
bertrand
parents:
diff changeset
50
6514
37b0b3302395 Added base64 encoder
bertrand
parents: 3039
diff changeset
51 int base64_encode(const void *enc, int encLen, char *out, int outMax);
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19271
diff changeset
52 #endif /* HTTP_H */