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; 211131Smax.romanov@nginx.com 221131Smax.romanov@nginx.com uint8_t nbuffers; 23*1270Sigor@sysoev.ru uint8_t header_buffer_slot; 24*1270Sigor@sysoev.ru uint8_t large_buffer_slot; 251131Smax.romanov@nginx.com uint8_t keepalive; /* 1 bit */ 261131Smax.romanov@nginx.com uint8_t chunked; /* 1 bit */ 271131Smax.romanov@nginx.com uint8_t websocket; /* 1 bit */ 281131Smax.romanov@nginx.com uint8_t connection_upgrade; /* 1 bit */ 291131Smax.romanov@nginx.com uint8_t upgrade_websocket; /* 1 bit */ 301131Smax.romanov@nginx.com uint8_t websocket_version_ok; /* 1 bit */ 311131Smax.romanov@nginx.com nxt_http_te_t transfer_encoding:8; /* 2 bits */ 321131Smax.romanov@nginx.com 331131Smax.romanov@nginx.com uint8_t websocket_cont_expected; /* 1 bit */ 341131Smax.romanov@nginx.com uint8_t websocket_closed; /* 1 bit */ 351131Smax.romanov@nginx.com 361131Smax.romanov@nginx.com uint32_t header_size; 371131Smax.romanov@nginx.com 381131Smax.romanov@nginx.com nxt_http_field_t *websocket_key; 391131Smax.romanov@nginx.com nxt_h1p_websocket_timer_t *websocket_timer; 401131Smax.romanov@nginx.com 411131Smax.romanov@nginx.com nxt_http_request_t *request; 421131Smax.romanov@nginx.com nxt_buf_t *buffers; 431131Smax.romanov@nginx.com /* 441131Smax.romanov@nginx.com * All fields before the conn field will 451131Smax.romanov@nginx.com * be zeroed in a keep-alive connection. 461131Smax.romanov@nginx.com */ 471131Smax.romanov@nginx.com nxt_conn_t *conn; 481131Smax.romanov@nginx.com }; 491131Smax.romanov@nginx.com 501131Smax.romanov@nginx.com #endif /* _NXT_H1PROTO_H_INCLUDED_ */ 51