#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>
ngx_http_scgi_main_conf_t;
ngx_http_scgi_params_t;
ngx_http_scgi_loc_conf_t;
static ngx_int_t ngx_http_scgi_eval(ngx_http_request_t *r,
ngx_http_scgi_loc_conf_t *scf);
static ngx_int_t ngx_http_scgi_create_request(ngx_http_request_t *r);
static ngx_int_t ngx_http_scgi_reinit_request(ngx_http_request_t *r);
static ngx_int_t ngx_http_scgi_process_status_line(ngx_http_request_t *r);
static ngx_int_t ngx_http_scgi_process_header(ngx_http_request_t *r);
static ngx_int_t ngx_http_scgi_input_filter_init(void *data);
static void ngx_http_scgi_abort_request(ngx_http_request_t *r);
static void ngx_http_scgi_finalize_request(ngx_http_request_t *r, ngx_int_t rc);
static void *ngx_http_scgi_create_main_conf(ngx_conf_t *cf);
static void *ngx_http_scgi_create_loc_conf(ngx_conf_t *cf);
static char *ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent,
void *child);
static ngx_int_t ngx_http_scgi_init_params(ngx_conf_t *cf,
ngx_http_scgi_loc_conf_t *conf, ngx_http_scgi_params_t *params,
ngx_keyval_t *default_params);
static char *ngx_http_scgi_pass(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
static char *ngx_http_scgi_store(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#if (NGX_HTTP_CACHE)
static ngx_int_t ngx_http_scgi_create_key(ngx_http_request_t *r);
static char *ngx_http_scgi_cache(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_scgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#endif
static ngx_conf_bitmask_t ngx_http_scgi_next_upstream_masks[] = …;
ngx_module_t ngx_http_scgi_module;
static ngx_command_t ngx_http_scgi_commands[] = …;
static ngx_http_module_t ngx_http_scgi_module_ctx = …;
ngx_module_t ngx_http_scgi_module = …;
static ngx_str_t ngx_http_scgi_hide_headers[] = …;
#if (NGX_HTTP_CACHE)
static ngx_keyval_t ngx_http_scgi_cache_headers[] = …;
#endif
static ngx_path_init_t ngx_http_scgi_temp_path = …;
static ngx_int_t
ngx_http_scgi_handler(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_scgi_eval(ngx_http_request_t *r, ngx_http_scgi_loc_conf_t * scf)
{ … }
#if (NGX_HTTP_CACHE)
static ngx_int_t
ngx_http_scgi_create_key(ngx_http_request_t *r)
{ … }
#endif
static ngx_int_t
ngx_http_scgi_create_request(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_scgi_reinit_request(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_scgi_process_status_line(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_scgi_process_header(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_scgi_input_filter_init(void *data)
{ … }
static void
ngx_http_scgi_abort_request(ngx_http_request_t *r)
{ … }
static void
ngx_http_scgi_finalize_request(ngx_http_request_t *r, ngx_int_t rc)
{ … }
static void *
ngx_http_scgi_create_main_conf(ngx_conf_t *cf)
{ … }
static void *
ngx_http_scgi_create_loc_conf(ngx_conf_t *cf)
{ … }
static char *
ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
{ … }
static ngx_int_t
ngx_http_scgi_init_params(ngx_conf_t *cf, ngx_http_scgi_loc_conf_t *conf,
ngx_http_scgi_params_t *params, ngx_keyval_t *default_params)
{ … }
static char *
ngx_http_scgi_pass(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_scgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
#if (NGX_HTTP_CACHE)
static char *
ngx_http_scgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_scgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
#endif