11131Smax.romanov@nginx.com 21131Smax.romanov@nginx.com /* 31131Smax.romanov@nginx.com * Copyright (C) NGINX, Inc. 41131Smax.romanov@nginx.com */ 51131Smax.romanov@nginx.com 61131Smax.romanov@nginx.com #ifndef _NXT_H1PROTO_H_INCLUDED_ 71131Smax.romanov@nginx.com #define _NXT_H1PROTO_H_INCLUDED_ 81131Smax.romanov@nginx.com 91131Smax.romanov@nginx.com 101131Smax.romanov@nginx.com #include <nxt_main.h> 111131Smax.romanov@nginx.com #include <nxt_http_parse.h> 121131Smax.romanov@nginx.com #include <nxt_http.h> 131131Smax.romanov@nginx.com #include <nxt_router.h> 141131Smax.romanov@nginx.com 151131Smax.romanov@nginx.com 161131Smax.romanov@nginx.com typedef struct nxt_h1p_websocket_timer_s nxt_h1p_websocket_timer_t; 171131Smax.romanov@nginx.com 181131Smax.romanov@nginx.com 191131Smax.romanov@nginx.com struct nxt_h1proto_s { 201131Smax.romanov@nginx.com nxt_http_request_parse_t parser; 21*1505Sigor@sysoev.ru nxt_http_chunk_parse_t chunked_parse; 22*1505Sigor@sysoev.ru nxt_off_t remainder; 231131Smax.romanov@nginx.com 241131Smax.romanov@nginx.com uint8_t nbuffers; 251270Sigor@sysoev.ru uint8_t header_buffer_slot; 261270Sigor@sysoev.ru uint8_t large_buffer_slot; 271131Smax.romanov@nginx.com uint8_t keepalive; /* 1 bit */ 281131Smax.romanov@nginx.com uint8_t chunked; /* 1 bit */ 291131Smax.romanov@nginx.com uint8_t websocket; /* 1 bit */ 301131Smax.romanov@nginx.com uint8_t connection_upgrade; /* 1 bit */ 311131Smax.romanov@nginx.com uint8_t upgrade_websocket; /* 1 bit */ 321131Smax.romanov@nginx.com uint8_t websocket_version_ok; /* 1 bit */ 331131Smax.romanov@nginx.com nxt_http_te_t transfer_encoding:8; /* 2 bits */ 341131Smax.romanov@nginx.com 351131Smax.romanov@nginx.com uint8_t websocket_cont_expected; /* 1 bit */ 361131Smax.romanov@nginx.com uint8_t websocket_closed; /* 1 bit */ 371131Smax.romanov@nginx.com 381131Smax.romanov@nginx.com uint32_t header_size; 391131Smax.romanov@nginx.com 401131Smax.romanov@nginx.com nxt_http_field_t *websocket_key; 411131Smax.romanov@nginx.com nxt_h1p_websocket_timer_t *websocket_timer; 421131Smax.romanov@nginx.com 431131Smax.romanov@nginx.com nxt_http_request_t *request; 441131Smax.romanov@nginx.com nxt_buf_t *buffers; 451318Smax.romanov@nginx.com 461318Smax.romanov@nginx.com nxt_buf_t **conn_write_tail; 471131Smax.romanov@nginx.com /* 481131Smax.romanov@nginx.com * All fields before the conn field will 491131Smax.romanov@nginx.com * be zeroed in a keep-alive connection. 501131Smax.romanov@nginx.com */ 511131Smax.romanov@nginx.com nxt_conn_t *conn; 521131Smax.romanov@nginx.com }; 531131Smax.romanov@nginx.com 541131Smax.romanov@nginx.com #endif /* _NXT_H1PROTO_H_INCLUDED_ */ 55