Line data Source code
1 0 : /* SPDX-License-Identifier: MIT */
2 :
3 : /* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
4 : *
5 : * Permission is hereby granted, free of charge, to any person obtaining a copy
6 : * of this software and associated documentation files (the "Software"), to
7 : * deal in the Software without restriction, including without limitation the
8 : * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9 : * sell copies of the Software, and to permit persons to whom the Software is
10 : * furnished to do so, subject to the following conditions:
11 : *
12 : * The above copyright notice and this permission notice shall be included in
13 : * all copies or substantial portions of the Software.
14 : *
15 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 : * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 : * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 : * IN THE SOFTWARE.
22 : */
23 : #ifndef ZEPHYR_INCLUDE_NET_HTTP_PARSER_STATE_H_
24 : #define ZEPHYR_INCLUDE_NET_HTTP_PARSER_STATE_H_
25 : #ifdef __cplusplus
26 : extern "C" {
27 : #endif
28 :
29 0 : enum state {
30 : s_dead = 1, /* important that this is > 0 */
31 : s_start_req_or_res,
32 : s_res_or_resp_H,
33 : s_start_res,
34 : s_res_H,
35 : s_res_HT,
36 : s_res_HTT,
37 : s_res_HTTP,
38 : s_res_first_http_major,
39 : s_res_http_major,
40 : s_res_first_http_minor,
41 : s_res_http_minor,
42 : s_res_first_status_code,
43 : s_res_status_code,
44 : s_res_status_start,
45 : s_res_status,
46 : s_res_line_almost_done,
47 : s_start_req,
48 : s_req_method,
49 : s_req_spaces_before_url,
50 : s_req_schema,
51 : s_req_schema_slash,
52 : s_req_schema_slash_slash,
53 : s_req_server_start,
54 : s_req_server,
55 : s_req_server_with_at,
56 : s_req_path,
57 : s_req_query_string_start,
58 : s_req_query_string,
59 : s_req_fragment_start,
60 : s_req_fragment,
61 : s_req_http_start,
62 : s_req_http_H,
63 : s_req_http_HT,
64 : s_req_http_HTT,
65 : s_req_http_HTTP,
66 : s_req_first_http_major,
67 : s_req_http_major,
68 : s_req_first_http_minor,
69 : s_req_http_minor,
70 : s_req_line_almost_done,
71 : s_header_field_start,
72 : s_header_field,
73 : s_header_value_discard_ws,
74 : s_header_value_discard_ws_almost_done,
75 : s_header_value_discard_lws,
76 : s_header_value_start,
77 : s_header_value,
78 : s_header_value_lws,
79 : s_header_almost_done,
80 : s_chunk_size_start,
81 : s_chunk_size,
82 : s_chunk_parameters,
83 : s_chunk_size_almost_done,
84 : s_headers_almost_done,
85 : s_headers_done,
86 : /* Important: 's_headers_done' must be the last 'header' state. All
87 : * states beyond this must be 'body' states. It is used for overflow
88 : * checking. See the PARSING_HEADER() macro.
89 : */
90 : s_chunk_data,
91 : s_chunk_data_almost_done,
92 : s_chunk_data_done,
93 : s_body_identity,
94 : s_body_identity_eof,
95 : s_message_done
96 : };
97 :
98 : #ifdef __cplusplus
99 : }
100 : #endif
101 : #endif
|