xref: /unit/src/nxt_h1proto.h (revision 1131)
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