mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2025-02-02 15:07:36 -05:00
Thanks to Akos Maroy <darkeye@tyrell.hu> for this. These variables need to
be uppercase always in order to comply with the HTTP specification. While not a problem internal to icecast, they were slipping into the log files and breaking some less-than-robust parsers. svn path=/trunk/httpp/; revision=2197
This commit is contained in:
parent
632c1e57fb
commit
3553fce604
@ -326,7 +326,7 @@ static void *_handle_connection(void *arg)
|
||||
if (httpp_parse(parser, header, strlen(header))) {
|
||||
/* handle the connection or something */
|
||||
|
||||
if (strcmp("ice", httpp_getvar(parser, HTTPP_VAR_PROTOCOL)) != 0 && strcmp("http", httpp_getvar(parser, HTTPP_VAR_PROTOCOL)) != 0) {
|
||||
if (strcmp("ICE", httpp_getvar(parser, HTTPP_VAR_PROTOCOL)) != 0 && strcmp("HTTP", httpp_getvar(parser, HTTPP_VAR_PROTOCOL)) != 0) {
|
||||
printf("DEBUG: bad protocol\n");
|
||||
connection_close(con);
|
||||
httpp_destroy(parser);
|
||||
|
@ -147,7 +147,7 @@ int httpp_parse(http_parser_t *parser, char *http_data, unsigned long len)
|
||||
if ((version != NULL) && ((tmp = strchr(version, '/')) != NULL)) {
|
||||
tmp[0] = '\0';
|
||||
if ((strlen(version) > 0) && (strlen(&tmp[1]) > 0)) {
|
||||
httpp_setvar(parser, HTTPP_VAR_PROTOCOL, _lowercase(version));
|
||||
httpp_setvar(parser, HTTPP_VAR_PROTOCOL, version);
|
||||
httpp_setvar(parser, HTTPP_VAR_VERSION, &tmp[1]);
|
||||
} else {
|
||||
free(data);
|
||||
@ -161,22 +161,22 @@ int httpp_parse(http_parser_t *parser, char *http_data, unsigned long len)
|
||||
if (parser->req_type != httpp_req_none && parser->req_type != httpp_req_unknown) {
|
||||
switch (parser->req_type) {
|
||||
case httpp_req_get:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "get");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "GET");
|
||||
break;
|
||||
case httpp_req_post:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "post");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "POST");
|
||||
break;
|
||||
case httpp_req_head:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "head");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "HEAD");
|
||||
break;
|
||||
case httpp_req_source:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "source");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "SOURCE");
|
||||
break;
|
||||
case httpp_req_play:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "play");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "PLAY");
|
||||
break;
|
||||
case httpp_req_stats:
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "stats");
|
||||
httpp_setvar(parser, HTTPP_VAR_REQ_TYPE, "STATS");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user