1 2 /* 3 * Copyright (C) NGINX, Inc. 4 */ 5 6 #ifndef _NXT_H1PROTO_H_INCLUDED_ 7 #define _NXT_H1PROTO_H_INCLUDED_ 8 9 10 #include <nxt_main.h> 11 #include <nxt_http_parse.h> 12 #include <nxt_http.h> 13 #include <nxt_router.h> 14 15 16 typedef struct nxt_h1p_websocket_timer_s nxt_h1p_websocket_timer_t; 17 18 19 struct nxt_h1proto_s { 20 nxt_http_request_parse_t parser; 21 22 uint8_t nbuffers; 23 uint8_t keepalive; /* 1 bit */ 24 uint8_t chunked; /* 1 bit */ 25 uint8_t websocket; /* 1 bit */ 26 uint8_t connection_upgrade; /* 1 bit */ 27 uint8_t upgrade_websocket; /* 1 bit */ 28 uint8_t websocket_version_ok; /* 1 bit */ 29 nxt_http_te_t transfer_encoding:8; /* 2 bits */ 30 31 uint8_t websocket_cont_expected; /* 1 bit */ 32 uint8_t websocket_closed; /* 1 bit */ 33 34 uint32_t header_size; 35 36 nxt_http_field_t *websocket_key; 37 nxt_h1p_websocket_timer_t *websocket_timer; 38 39 nxt_http_request_t *request; 40 nxt_buf_t *buffers; 41 /* 42 * All fields before the conn field will 43 * be zeroed in a keep-alive connection. 44 */ 45 nxt_conn_t *conn; 46 }; 47 48 #endif /* _NXT_H1PROTO_H_INCLUDED_ */ 49