diff options
Diffstat (limited to 'src/http/modules/proxy/ngx_http_proxy_handler.h')
-rw-r--r-- | src/http/modules/proxy/ngx_http_proxy_handler.h | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.h b/src/http/modules/proxy/ngx_http_proxy_handler.h deleted file mode 100644 index 11c24b1ea..000000000 --- a/src/http/modules/proxy/ngx_http_proxy_handler.h +++ /dev/null @@ -1,275 +0,0 @@ - -/* - * Copyright (C) Igor Sysoev - */ - - -#ifndef _NGX_HTTP_PROXY_HANDLER_H_INCLUDED_ -#define _NGX_HTTP_PROXY_HANDLER_H_INCLUDED_ - - -#include <ngx_config.h> -#include <ngx_core.h> -#include <ngx_event.h> -#include <ngx_event_connect.h> -#include <ngx_event_pipe.h> -#include <ngx_http.h> - - -typedef enum { - NGX_HTTP_PROXY_CACHE_PASS = 1, - NGX_HTTP_PROXY_CACHE_BYPASS, - NGX_HTTP_PROXY_CACHE_AUTH, - NGX_HTTP_PROXY_CACHE_PGNC, - NGX_HTTP_PROXY_CACHE_MISS, - NGX_HTTP_PROXY_CACHE_EXPR, - NGX_HTTP_PROXY_CACHE_AGED, - NGX_HTTP_PROXY_CACHE_HIT -} ngx_http_proxy_state_e; - - -typedef enum { - NGX_HTTP_PROXY_CACHE_BPS = 1, - NGX_HTTP_PROXY_CACHE_XAE, - NGX_HTTP_PROXY_CACHE_CTL, - NGX_HTTP_PROXY_CACHE_EXP, - NGX_HTTP_PROXY_CACHE_MVD, - NGX_HTTP_PROXY_CACHE_LMF, - NGX_HTTP_PROXY_CACHE_PDE -} ngx_http_proxy_reason_e; - - -typedef struct { - ngx_str_t url; - ngx_str_t host; - ngx_str_t uri; - ngx_str_t host_header; - ngx_str_t port_text; - ngx_str_t *location; - - char *uri_separator; - - in_port_t port; - - unsigned default_port:1; -} ngx_http_proxy_upstream_conf_t; - - -typedef struct { - size_t send_lowat; - size_t header_buffer_size; - size_t busy_buffers_size; - size_t max_temp_file_size; - size_t temp_file_write_size; - - ngx_msec_t connect_timeout; - ngx_msec_t send_timeout; - ngx_msec_t read_timeout; - time_t default_expires; - - ngx_int_t lm_factor; - - ngx_uint_t next_upstream; - ngx_uint_t use_stale; - - ngx_bufs_t bufs; - - ngx_flag_t cyclic_temp_file; - ngx_flag_t cache; - ngx_flag_t preserve_host; - ngx_flag_t set_x_url; - ngx_flag_t set_x_real_ip; - ngx_flag_t add_x_forwarded_for; - ngx_flag_t pass_unparsed_uri; - ngx_flag_t pass_server; - ngx_flag_t pass_x_accel_expires; - ngx_flag_t ignore_expires; - - ngx_path_t *cache_path; - ngx_path_t *temp_path; - - ngx_array_t *x_vars; - - ngx_http_busy_lock_t *busy_lock; - - ngx_http_proxy_upstream_conf_t *upstream; - ngx_peers_t *peers; -} ngx_http_proxy_loc_conf_t; - - -/* - * "EXPR/10/5/- 200/EXP/60 4" - * "MISS/-/-/B 503/-/- -" - * "EXPR/10/20/SB HIT/-/- -" - * "EXPR/10/15/NB HIT/-/- -" - */ - -typedef struct { - ngx_http_proxy_state_e cache_state; - time_t expired; - time_t bl_time; - ngx_uint_t bl_state; - - ngx_uint_t status; - ngx_http_proxy_reason_e reason; - time_t time; - time_t expires; - - ngx_str_t *peer; -} ngx_http_proxy_state_t; - - -typedef struct { - ngx_list_t headers; -#if 0 - ngx_table_t headers; /* it must be first field */ -#endif - - ngx_table_elt_t *date; - ngx_table_elt_t *server; - - ngx_table_elt_t *expires; - ngx_table_elt_t *cache_control; - ngx_table_elt_t *etag; - ngx_table_elt_t *x_accel_expires; - - ngx_table_elt_t *connection; - ngx_table_elt_t *content_type; - ngx_table_elt_t *content_length; - -#if (NGX_HTTP_GZIP) - ngx_table_elt_t *content_encoding; -#endif - - ngx_table_elt_t *last_modified; - ngx_table_elt_t *location; - ngx_table_elt_t *accept_ranges; - ngx_table_elt_t *x_pad; - - off_t content_length_n; -} ngx_http_proxy_headers_in_t; - - -typedef struct { - ngx_http_cache_t ctx; - ngx_uint_t status; - ngx_str_t status_line; - - ngx_http_proxy_headers_in_t headers_in; -} ngx_http_proxy_cache_t; - - -typedef struct { - ngx_peer_connection_t peer; - ngx_uint_t status; - ngx_str_t status_line; - ngx_uint_t method; - - ngx_output_chain_ctx_t *output_chain_ctx; - ngx_event_pipe_t *event_pipe; - - ngx_http_proxy_headers_in_t headers_in; -} ngx_http_proxy_upstream_t; - - -typedef struct ngx_http_proxy_ctx_s ngx_http_proxy_ctx_t; - -struct ngx_http_proxy_ctx_s { - ngx_http_request_t *request; - ngx_http_proxy_loc_conf_t *lcf; - ngx_http_proxy_upstream_t *upstream; - ngx_http_proxy_cache_t *cache; - - ngx_buf_t *header_in; - - ngx_http_busy_lock_ctx_t busy_lock; - - unsigned accel:1; - - unsigned cachable:1; - unsigned stale:1; - unsigned try_busy_lock:1; - unsigned busy_locked:1; - unsigned valid_header_in:1; - - unsigned request_sent:1; - unsigned header_sent:1; - - - /* used to parse an upstream HTTP header */ - ngx_uint_t status; - u_char *status_start; - u_char *status_end; - ngx_uint_t status_count; - ngx_uint_t parse_state; - - ngx_http_proxy_state_t *state; - ngx_array_t states; /* of ngx_http_proxy_state_t */ - - /* - * we declare "action" as "char *" because the actions are usually - * the static strings and in the "u_char *" case we have to override - * all the time their types - */ - - char *action; - ngx_http_log_ctx_t *saved_ctx; - ngx_log_handler_pt saved_handler; -}; - - -typedef struct { - ngx_uint_t connection; - ngx_http_proxy_ctx_t *proxy; -} ngx_http_proxy_log_ctx_t; - - -#define NGX_HTTP_PROXY_PARSE_NO_HEADER 30 - - -#define NGX_HTTP_PROXY_FT_ERROR 0x02 -#define NGX_HTTP_PROXY_FT_TIMEOUT 0x04 -#define NGX_HTTP_PROXY_FT_INVALID_HEADER 0x08 -#define NGX_HTTP_PROXY_FT_HTTP_500 0x10 -#define NGX_HTTP_PROXY_FT_HTTP_404 0x20 -#define NGX_HTTP_PROXY_FT_BUSY_LOCK 0x40 -#define NGX_HTTP_PROXY_FT_MAX_WAITING 0x80 - - -int ngx_http_proxy_request_upstream(ngx_http_proxy_ctx_t *p); - -#if (NGX_HTTP_FILE_CACHE) - -int ngx_http_proxy_get_cached_response(ngx_http_proxy_ctx_t *p); -int ngx_http_proxy_send_cached_response(ngx_http_proxy_ctx_t *p); -int ngx_http_proxy_is_cachable(ngx_http_proxy_ctx_t *p); -int ngx_http_proxy_update_cache(ngx_http_proxy_ctx_t *p); - -void ngx_http_proxy_cache_busy_lock(ngx_http_proxy_ctx_t *p); - -#endif - -void ngx_http_proxy_rd_check_broken_connection(ngx_http_request_t *r); -void ngx_http_proxy_wr_check_broken_connection(ngx_http_request_t *r); -void ngx_http_proxy_check_broken_connection(ngx_http_request_t *r, - ngx_event_t *ev); - -void ngx_http_proxy_busy_lock_handler(ngx_event_t *rev); -void ngx_http_proxy_upstream_busy_lock(ngx_http_proxy_ctx_t *p); - -u_char *ngx_http_proxy_log_error(ngx_log_t *log, u_char *buf, size_t len); -void ngx_http_proxy_finalize_request(ngx_http_proxy_ctx_t *p, int rc); -void ngx_http_proxy_close_connection(ngx_http_proxy_ctx_t *p); - -int ngx_http_proxy_parse_status_line(ngx_http_proxy_ctx_t *p); -int ngx_http_proxy_copy_header(ngx_http_proxy_ctx_t *p, - ngx_http_proxy_headers_in_t *headers_in); - - - -extern ngx_module_t ngx_http_proxy_module; -extern ngx_http_header0_t ngx_http_proxy_headers_in[]; - - - -#endif /* _NGX_HTTP_PROXY_HANDLER_H_INCLUDED_ */ |