10Sigor@sysoev.ru 20Sigor@sysoev.ru /* 30Sigor@sysoev.ru * Copyright (C) Valentin V. Bartenev 40Sigor@sysoev.ru * Copyright (C) NGINX, Inc. 50Sigor@sysoev.ru */ 60Sigor@sysoev.ru 70Sigor@sysoev.ru #ifndef _NXT_APPLICATION_H_INCLUDED_ 80Sigor@sysoev.ru #define _NXT_APPLICATION_H_INCLUDED_ 90Sigor@sysoev.ru 100Sigor@sysoev.ru 110Sigor@sysoev.ru typedef struct { 120Sigor@sysoev.ru nxt_str_t name; 130Sigor@sysoev.ru nxt_str_t value; 140Sigor@sysoev.ru } nxt_app_header_field_t; 150Sigor@sysoev.ru 160Sigor@sysoev.ru 170Sigor@sysoev.ru typedef struct { 180Sigor@sysoev.ru nxt_str_t method; 190Sigor@sysoev.ru nxt_str_t path; 200Sigor@sysoev.ru nxt_str_t version; 210Sigor@sysoev.ru nxt_uint_t fields_num; 220Sigor@sysoev.ru nxt_app_header_field_t *fields; 230Sigor@sysoev.ru 240Sigor@sysoev.ru nxt_str_t *content_length; 250Sigor@sysoev.ru nxt_str_t *content_type; 260Sigor@sysoev.ru } nxt_app_request_header_t; 270Sigor@sysoev.ru 280Sigor@sysoev.ru 290Sigor@sysoev.ru typedef struct { 300Sigor@sysoev.ru nxt_event_engine_t *engine; 310Sigor@sysoev.ru nxt_mem_pool_t *mem_pool; 320Sigor@sysoev.ru nxt_event_conn_t *event_conn; 330Sigor@sysoev.ru nxt_log_t *log; 340Sigor@sysoev.ru 350Sigor@sysoev.ru nxt_buf_t *output_buf; 360Sigor@sysoev.ru 370Sigor@sysoev.ru nxt_app_request_header_t header; 380Sigor@sysoev.ru nxt_str_t body_preread; 390Sigor@sysoev.ru off_t body_rest; 400Sigor@sysoev.ru void *ctx; 410Sigor@sysoev.ru } nxt_app_request_t; 420Sigor@sysoev.ru 430Sigor@sysoev.ru 440Sigor@sysoev.ru typedef struct { 450Sigor@sysoev.ru nxt_int_t (*init)(nxt_thread_t *thr); 460Sigor@sysoev.ru nxt_int_t (*start)(nxt_app_request_t *r); 470Sigor@sysoev.ru nxt_int_t (*header)(nxt_app_request_t *r, 480Sigor@sysoev.ru nxt_app_header_field_t *field); 490Sigor@sysoev.ru nxt_int_t (*run)(nxt_app_request_t *r); 500Sigor@sysoev.ru } nxt_application_module_t; 510Sigor@sysoev.ru 520Sigor@sysoev.ru 53*21Sigor@sysoev.ru extern nxt_application_module_t *nxt_app; 54*21Sigor@sysoev.ru 550Sigor@sysoev.ru 560Sigor@sysoev.ru 5720Sigor@sysoev.ru nxt_int_t nxt_app_http_read_body(nxt_app_request_t *r, u_char *data, 5820Sigor@sysoev.ru size_t len); 590Sigor@sysoev.ru nxt_int_t nxt_app_write(nxt_app_request_t *r, const u_char *data, size_t len); 600Sigor@sysoev.ru 610Sigor@sysoev.ru 620Sigor@sysoev.ru #endif /* _NXT_APPLICATION_H_INCLIDED_ */ 63