xref: /unit/src/nxt_http_source.h (revision 1)
10Sigor@sysoev.ru 
20Sigor@sysoev.ru /*
30Sigor@sysoev.ru  * Copyright (C) Igor Sysoev
40Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
50Sigor@sysoev.ru  */
60Sigor@sysoev.ru 
70Sigor@sysoev.ru #ifndef _NXT_HTTP_SOURCE_H_INCLUDED_
80Sigor@sysoev.ru #define _NXT_HTTP_SOURCE_H_INCLUDED_
90Sigor@sysoev.ru 
100Sigor@sysoev.ru 
110Sigor@sysoev.ru typedef struct {
120Sigor@sysoev.ru     nxt_str_t                          copy;
130Sigor@sysoev.ru     uintptr_t                          data[3];
140Sigor@sysoev.ru } nxt_http_source_request_t;
150Sigor@sysoev.ru 
160Sigor@sysoev.ru 
170Sigor@sysoev.ru typedef struct nxt_http_source_s  nxt_http_source_t;
180Sigor@sysoev.ru typedef nxt_int_t (*nxt_http_source_request_create_t)(nxt_http_source_t *hs);
190Sigor@sysoev.ru 
200Sigor@sysoev.ru 
210Sigor@sysoev.ru struct nxt_http_source_s {
220Sigor@sysoev.ru     nxt_source_hook_t                  query;
230Sigor@sysoev.ru     nxt_source_hook_t                  *next;
240Sigor@sysoev.ru 
250Sigor@sysoev.ru     nxt_upstream_source_t              *upstream;
260Sigor@sysoev.ru 
270Sigor@sysoev.ru     nxt_http_source_request_create_t   request_create;
280Sigor@sysoev.ru 
290Sigor@sysoev.ru     nxt_upstream_header_in_t           header_in;
300Sigor@sysoev.ru 
310Sigor@sysoev.ru     nxt_buf_t                          *rest;
320Sigor@sysoev.ru 
330Sigor@sysoev.ru     uint32_t                           chunked;  /* 1 bit */
340Sigor@sysoev.ru 
350Sigor@sysoev.ru     union {
360Sigor@sysoev.ru         nxt_http_source_request_t      request;
370Sigor@sysoev.ru         nxt_http_status_parse_t        status_parse;
380Sigor@sysoev.ru         nxt_http_split_header_parse_t  header;
390Sigor@sysoev.ru     } u;
400Sigor@sysoev.ru };
410Sigor@sysoev.ru 
420Sigor@sysoev.ru 
43*1Sigor@sysoev.ru NXT_EXPORT void nxt_http_source_handler(nxt_task_t *task,
44*1Sigor@sysoev.ru     nxt_upstream_source_t *us, nxt_http_source_request_create_t request_create);
450Sigor@sysoev.ru NXT_EXPORT nxt_int_t nxt_http_source_hash_create(nxt_mem_pool_t *mp,
460Sigor@sysoev.ru     nxt_lvlhsh_t *lh);
470Sigor@sysoev.ru 
480Sigor@sysoev.ru 
490Sigor@sysoev.ru #endif /* _NXT_HTTP_SOURCE_H_INCLUDED_ */
50