8 libogg2-zerocopy:1.4.0.2
16 date 2003.07.07.01.49.27; author brendan; state Exp;
21 date 2003.03.15.02.10.18; author msmith; state Exp;
26 date 2003.03.09.22.56.46; author karl; state Exp;
31 date 2003.03.08.04.57.02; author msmith; state Exp;
36 date 2003.01.16.05.48.31; author brendan; state Exp;
41 date 2002.12.31.06.28.39; author msmith; state Exp;
46 date 2002.08.16.14.22.44; author msmith; state Exp;
51 date 2002.08.05.14.48.03; author msmith; state Exp;
56 date 2002.05.03.15.04.56; author msmith; state Exp;
61 date 2001.09.10.02.28.47; author jack; state Exp;
67 date 2001.09.10.02.28.47; author jack; state Exp;
78 @httpp goes through the rinse cycle
83 ** http parsing library
91 #define HTTPP_VAR_PROTOCOL "__protocol"
92 #define HTTPP_VAR_VERSION "__version"
93 #define HTTPP_VAR_URI "__uri"
94 #define HTTPP_VAR_REQ_TYPE "__req_type"
95 #define HTTPP_VAR_ERROR_MESSAGE "__errormessage"
96 #define HTTPP_VAR_ERROR_CODE "__errorcode"
97 #define HTTPP_VAR_ICYPASSWORD "__icy_password"
99 typedef enum httpp_request_type_tag {
100 httpp_req_none, httpp_req_get, httpp_req_post, httpp_req_head,
101 httpp_req_source, httpp_req_play, httpp_req_stats, httpp_req_unknown
102 } httpp_request_type_e;
104 typedef struct http_var_tag {
109 typedef struct http_varlist_tag {
111 struct http_varlist_tag *next;
114 typedef struct http_parser_tag {
115 httpp_request_type_e req_type;
122 # define httpp_create_parser _mangle(httpp_create_parser)
123 # define httpp_initialize _mangle(httpp_initialize)
124 # define httpp_parse _mangle(httpp_parse)
125 # define httpp_parse_icy _mangle(httpp_parse_icy)
126 # define httpp_parse_response _mangle(httpp_parse_response)
127 # define httpp_setvar _mangle(httpp_setvar)
128 # define httpp_getvar _mangle(httpp_getvar)
129 # define httpp_set_query_param _mangle(httpp_set_query_param)
130 # define httpp_get_query_param _mangle(httpp_get_query_param)
131 # define httpp_destroy _mangle(httpp_destroy)
132 # define httpp_clear _mangle(httpp_clear)
135 http_parser_t *httpp_create_parser(void);
136 void httpp_initialize(http_parser_t *parser, http_varlist_t *defaults);
137 int httpp_parse(http_parser_t *parser, char *http_data, unsigned long len);
138 int httpp_parse_icy(http_parser_t *parser, char *http_data, unsigned long len);
139 int httpp_parse_response(http_parser_t *parser, char *http_data, unsigned long len, char *uri);
140 void httpp_setvar(http_parser_t *parser, char *name, char *value);
141 char *httpp_getvar(http_parser_t *parser, char *name);
142 void httpp_set_query_param(http_parser_t *parser, char *name, char *value);
143 char *httpp_get_query_param(http_parser_t *parser, char *name);
144 void httpp_destroy(http_parser_t *parser);
145 void httpp_clear(http_parser_t *parser);
153 @Brendan was getting pissed off about inconsistent indentation styles.
154 Convert all tabs to 4 spaces. All code must now use 4 space indents.
163 @reduce include file namespace clutter for libshout and the associated
169 httpp_req_none, httpp_req_get, httpp_req_post, httpp_req_head,
170 httpp_req_source, httpp_req_play, httpp_req_stats, httpp_req_unknown
178 struct http_varlist_tag *next;
181 httpp_request_type_e req_type;
190 @Added support for shoutcast login protocol (ewww...)
201 @Indentation again, don't mind me
211 @mp3 metadata complete. Still untested.
216 httpp_req_none, httpp_req_get, httpp_req_post, httpp_req_head, httpp_req_source, httpp_req_play, httpp_req_stats, httpp_req_unknown
229 @bugfixes for httpp_parse_response
239 @Cleaned up version of Ciaran Anscomb's relaying patch.
248 @Memory leaks. Lots of little ones.