diff src/http/ngx_http_request.h @ 99:a059e1aa65d4

nginx-0.0.1-2003-06-02-19:24:30 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 02 Jun 2003 15:24:30 +0000
parents a23d010f356d
children e29909bd9b8a
line wrap: on
line diff
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -40,6 +40,7 @@
 
 
 #define NGX_HTTP_OK                     200
+#define NGX_HTTP_PARTIAL_CONTENT        206
 
 #define NGX_HTTP_SPECIAL_RESPONSE       300
 #define NGX_HTTP_MOVED_PERMANENTLY      301
@@ -52,6 +53,7 @@
 #define NGX_HTTP_NOT_ALLOWED            405
 #define NGX_HTTP_REQUEST_TIME_OUT       408
 #define NGX_HTTP_REQUEST_URI_TOO_LARGE  414
+#define NGX_HTTP_RANGE_NOT_SATISFIABLE  416
 
 #define NGX_HTTP_INTERNAL_SERVER_ERROR  500
 #define NGX_HTTP_NOT_IMPLEMENTED        501
@@ -79,6 +81,8 @@ typedef struct {
     ngx_table_elt_t  *connection;
     ngx_table_elt_t  *if_modified_since;
     ngx_table_elt_t  *content_length;
+    ngx_table_elt_t  *range;
+
     ngx_table_elt_t  *accept_encoding;
 
     ngx_table_elt_t  *user_agent;
@@ -100,6 +104,13 @@ typedef struct {
 
 
 typedef struct {
+    off_t      start;
+    off_t      end;
+    ngx_str_t  content_range;
+} ngx_http_range_t;
+
+
+typedef struct {
     int               status;
     ngx_str_t         status_line;
 
@@ -108,11 +119,14 @@ typedef struct {
     ngx_table_elt_t  *content_type;
     ngx_table_elt_t  *location;
     ngx_table_elt_t  *last_modified;
+    ngx_table_elt_t  *content_range;
+
+    ngx_str_t         charset;
+    ngx_array_t       ranges;
 
     ngx_table_t      *headers;
 
     off_t             content_length;
-    char             *charset;
     char             *etag;
     time_t            date_time;
     time_t            last_modified_time;
@@ -140,7 +154,7 @@ struct ngx_http_request_s {
 
     int  (*handler)(ngx_http_request_t *r);
 
-    time_t  lingering_time;
+    time_t               lingering_time;
 
     int                  method;
     int                  http_version;
@@ -161,46 +175,44 @@ struct ngx_http_request_s {
     ngx_str_t           *server_name;
     ngx_array_t         *virtual_names;
 
-    int         filter;
+
+    char                *discarded_buffer;
 
-    char       *discarded_buffer;
-
-    ngx_str_t   path;
-    int         path_err;
+    ngx_str_t            path;
+    int                  path_err;
 
-    unsigned  proxy:1;
-    unsigned  cachable:1;
-    unsigned  pipeline:1;
-    unsigned  keepalive:1;
-    unsigned  lingering_close:1;
+    /* URI is not started with '/' - "GET http://" */
+    unsigned             unusual_uri:1;
+    /* URI with "/.", "%" and on Win32 with "//" */
+    unsigned             complex_uri:1;
+    unsigned             header_timeout_set:1;
 
-    unsigned  header_read:1;
-    unsigned  header_timeout_set:1;
-
-    unsigned  logging:1;
+    unsigned             proxy:1;
+#if 0
+    unsigned             cachable:1;
+#endif
+    unsigned             pipeline: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
+    unsigned             chunked:1;
+    unsigned             header_only:1;
+    unsigned             keepalive:1;
+    unsigned             lingering_close:1;
+
+    /* TODO: use filter or bits ???? */
+    int                  filter;
 
-    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
+    /* used to parse HTTP headers */
+    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;
 };