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 } u; 380Sigor@sysoev.ru }; 390Sigor@sysoev.ru 400Sigor@sysoev.ru 411Sigor@sysoev.ru NXT_EXPORT void nxt_http_source_handler(nxt_task_t *task, 421Sigor@sysoev.ru nxt_upstream_source_t *us, nxt_http_source_request_create_t request_create); 43*65Sigor@sysoev.ru NXT_EXPORT nxt_int_t nxt_http_source_hash_create(nxt_mp_t *mp, 440Sigor@sysoev.ru nxt_lvlhsh_t *lh); 450Sigor@sysoev.ru 460Sigor@sysoev.ru 470Sigor@sysoev.ru #endif /* _NXT_HTTP_SOURCE_H_INCLUDED_ */ 48