mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'feature/handle_icy_uris_v33' into 'release/v3.3'
Modified http_parser to handle ICY uris (Backport v3.3) See merge request espressif/esp-idf!6325
This commit is contained in:
commit
9f10f684d3
@ -280,8 +280,11 @@ enum state
|
|||||||
{ s_dead = 1 /* important that this is > 0 */
|
{ s_dead = 1 /* important that this is > 0 */
|
||||||
|
|
||||||
, s_start_req_or_res
|
, s_start_req_or_res
|
||||||
|
, s_res_or_resp_I /* for ICY URIs */
|
||||||
, s_res_or_resp_H
|
, s_res_or_resp_H
|
||||||
, s_start_res
|
, s_start_res
|
||||||
|
, s_res_I /* for ICY URIs */
|
||||||
|
, s_res_IC /* for ICY URIs */
|
||||||
, s_res_H
|
, s_res_H
|
||||||
, s_res_HT
|
, s_res_HT
|
||||||
, s_res_HTT
|
, s_res_HTT
|
||||||
@ -728,6 +731,10 @@ reexecute:
|
|||||||
if (ch == 'H') {
|
if (ch == 'H') {
|
||||||
UPDATE_STATE(s_res_or_resp_H);
|
UPDATE_STATE(s_res_or_resp_H);
|
||||||
|
|
||||||
|
CALLBACK_NOTIFY(message_begin);
|
||||||
|
} else if (ch == 'I') {
|
||||||
|
UPDATE_STATE(s_res_or_resp_I);
|
||||||
|
|
||||||
CALLBACK_NOTIFY(message_begin);
|
CALLBACK_NOTIFY(message_begin);
|
||||||
} else {
|
} else {
|
||||||
parser->type = HTTP_REQUEST;
|
parser->type = HTTP_REQUEST;
|
||||||
@ -738,6 +745,13 @@ reexecute:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case s_res_or_resp_I: /* ICY URI case */
|
||||||
|
if (ch == 'C') {
|
||||||
|
parser->type = HTTP_RESPONSE;
|
||||||
|
UPDATE_STATE(s_res_IC);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case s_res_or_resp_H:
|
case s_res_or_resp_H:
|
||||||
if (ch == 'T') {
|
if (ch == 'T') {
|
||||||
parser->type = HTTP_RESPONSE;
|
parser->type = HTTP_RESPONSE;
|
||||||
@ -764,7 +778,9 @@ reexecute:
|
|||||||
case 'H':
|
case 'H':
|
||||||
UPDATE_STATE(s_res_H);
|
UPDATE_STATE(s_res_H);
|
||||||
break;
|
break;
|
||||||
|
case 'I': /* ICY URI */
|
||||||
|
UPDATE_STATE(s_res_I);
|
||||||
|
break;
|
||||||
case CR:
|
case CR:
|
||||||
case LF:
|
case LF:
|
||||||
break;
|
break;
|
||||||
@ -777,6 +793,15 @@ reexecute:
|
|||||||
CALLBACK_NOTIFY(message_begin);
|
CALLBACK_NOTIFY(message_begin);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case s_res_I:
|
||||||
|
STRICT_CHECK(ch != 'C');
|
||||||
|
UPDATE_STATE(s_res_IC);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case s_res_IC:
|
||||||
|
STRICT_CHECK(ch != 'Y');
|
||||||
|
UPDATE_STATE(s_res_http_minor);
|
||||||
|
break;
|
||||||
|
|
||||||
case s_res_H:
|
case s_res_H:
|
||||||
STRICT_CHECK(ch != 'T');
|
STRICT_CHECK(ch != 'T');
|
||||||
|
Loading…
Reference in New Issue
Block a user