diff src/http/ngx_http_request.h @ 91:637625a2acdb

nginx-0.0.1-2003-05-19-20:39:14 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 19 May 2003 16:39:14 +0000
parents
children a23d010f356d
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/http/ngx_http_request.h
@@ -0,0 +1,205 @@
+#ifndef _NGX_HTTP_REQUEST_H_INCLUDED_
+#define _NGX_HTTP_REQUEST_H_INCLUDED_
+
+
+#if 0
+#include <ngx_config.h>
+
+#include <ngx_types.h>
+#include <ngx_string.h>
+#include <ngx_table.h>
+#include <ngx_hunk.h>
+#include <ngx_files.h>
+#include <ngx_connection.h>
+#include <ngx_conf_file.h>
+
+#endif
+
+
+#define NGX_HTTP_VERSION_9           9
+#define NGX_HTTP_VERSION_10       1000
+#define NGX_HTTP_VERSION_11       1001
+
+#define NGX_HTTP_GET   1
+#define NGX_HTTP_HEAD  2
+#define NGX_HTTP_POST  3
+
+#define NGX_HTTP_CONN_CLOSE       0
+#define NGX_HTTP_CONN_KEEP_ALIVE  1
+
+
+#define NGX_HTTP_PARSE_HEADER_DONE        1
+#define NGX_HTTP_PARSE_INVALID_METHOD     10
+#define NGX_HTTP_PARSE_INVALID_REQUEST    11
+#define NGX_HTTP_PARSE_TOO_LONG_URI       12
+#define NGX_HTTP_PARSE_INVALID_09_METHOD  13
+#define NGX_HTTP_PARSE_INVALID_HEADER     14
+#define NGX_HTTP_PARSE_TOO_LONG_HEADER    15
+#define NGX_HTTP_PARSE_NO_HOST_HEADER     16
+#define NGX_HTTP_PARSE_INVALID_CL_HEADER  17
+
+
+#define NGX_HTTP_OK                     200
+
+#define NGX_HTTP_SPECIAL_RESPONSE       300
+#define NGX_HTTP_MOVED_PERMANENTLY      301
+#define NGX_HTTP_MOVED_TEMPORARILY      302
+#define NGX_HTTP_NOT_MODIFIED           304
+
+#define NGX_HTTP_BAD_REQUEST            400
+#define NGX_HTTP_FORBIDDEN              403
+#define NGX_HTTP_NOT_FOUND              404
+#define NGX_HTTP_REQUEST_TIME_OUT       408
+#define NGX_HTTP_REQUEST_URI_TOO_LARGE  414
+
+#define NGX_HTTP_INTERNAL_SERVER_ERROR  500
+#define NGX_HTTP_NOT_IMPLEMENTED        501
+#define NGX_HTTP_BAD_GATEWAY            502
+#define NGX_HTTP_SERVICE_UNAVAILABLE    503
+#define NGX_HTTP_GATEWAY_TIME_OUT       504
+
+
+
+#define NGX_HTTP_STATIC_HANDLER     0
+#define NGX_HTTP_DIRECTORY_HANDLER  1
+
+
+typedef struct {
+    ngx_str_t  name;
+    int        offset;
+} ngx_http_header_t;
+
+
+typedef struct {
+    size_t            host_name_len;
+    ssize_t           content_length_n;
+
+    ngx_table_elt_t  *host;
+    ngx_table_elt_t  *connection;
+    ngx_table_elt_t  *if_modified_since;
+    ngx_table_elt_t  *content_length;
+    ngx_table_elt_t  *accept_encoding;
+
+    ngx_table_elt_t  *user_agent;
+
+    ngx_table_t      *headers;
+} ngx_http_headers_in_t;
+
+
+typedef struct {
+    ngx_chain_t       chain[4];
+    ngx_hunk_t       *header_out;
+    ngx_hunk_t       *hunk;
+    ngx_hunk_t       *file_hunk;
+    ngx_file_t        temp_file;
+    ngx_path_t       *temp_path;
+    off_t             offset;
+    char             *header_in_pos;
+} ngx_http_request_body_t;
+
+
+typedef struct {
+    int               status;
+    ngx_str_t         status_line;
+
+    ngx_table_elt_t  *server;
+    ngx_table_elt_t  *date;
+    ngx_table_elt_t  *content_type;
+    ngx_table_elt_t  *location;
+    ngx_table_elt_t  *last_modified;
+
+    ngx_table_t      *headers;
+
+    off_t             content_length;
+    char             *charset;
+    char             *etag;
+    time_t            date_time;
+    time_t            last_modified_time;
+} ngx_http_headers_out_t;
+
+
+typedef struct ngx_http_request_s ngx_http_request_t;
+
+struct ngx_http_request_s {
+    ngx_connection_t    *connection;
+
+    void               **ctx;
+    void               **main_conf;
+    void               **srv_conf;
+    void               **loc_conf;
+
+    ngx_file_t           file;
+
+    ngx_pool_t               *pool;
+    ngx_hunk_t               *header_in;
+    ngx_http_request_body_t  *request_body;
+
+    ngx_http_headers_in_t     headers_in;
+    ngx_http_headers_out_t    headers_out;
+
+    int  (*handler)(ngx_http_request_t *r);
+
+    time_t  lingering_time;
+
+    int                  method;
+    int                  http_version;
+    int                  http_major;
+    int                  http_minor;
+
+    ngx_str_t            request_line;
+    ngx_str_t            uri;
+    ngx_str_t            args;
+    ngx_str_t            exten;
+    ngx_str_t            unparsed_uri;
+
+    ngx_http_request_t  *main;
+
+    u_int       in_addr;
+
+    int         port;
+    ngx_str_t   port_name;
+
+    int         filter;
+
+    char       *discarded_buffer;
+
+    ngx_str_t   path;
+    int         path_err;
+
+    unsigned  proxy:1;
+    unsigned  cachable:1;
+    unsigned  pipeline:1;
+    unsigned  keepalive:1;
+    unsigned  lingering_close:1;
+
+    unsigned  header_read:1;
+    unsigned  header_timeout_set:1;
+
+    unsigned  logging:1;
+
+    unsigned  header_only:1;
+    unsigned  unusual_uri:1;  /* URI is not started with '/' - "GET http://" */
+    unsigned  complex_uri:1;  /* URI with "/." or with "//" (WIN32) */
+    unsigned  path_not_found:1;
+#ifdef NGX_EVENT
+    unsigned  write_level_event:1;
+#endif
+
+    int    state;
+    char  *uri_start;
+    char  *uri_end;
+    char  *uri_ext;
+    char  *args_start;
+    char  *request_start;
+    char  *request_end;
+    char  *header_name_start;
+    char  *header_name_end;
+    char  *header_start;
+    char  *header_end;
+#ifdef NGX_EVENT
+    int  (*state_handler)(ngx_http_request_t *r);
+#endif
+};
+
+
+#endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */