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