nginx-0.0.3-2004-03-17-00:26:01 import
diff --git a/src/http/modules/ngx_http_chunked_filter.c b/src/http/modules/ngx_http_chunked_filter.c
index 21e2f5b..61eae5d 100644
--- a/src/http/modules/ngx_http_chunked_filter.c
+++ b/src/http/modules/ngx_http_chunked_filter.c
@@ -101,12 +101,12 @@
     if (cl->hunk->type & NGX_HUNK_LAST) {
         cl->hunk->type &= ~NGX_HUNK_LAST;
         h->type = NGX_HUNK_IN_MEMORY|NGX_HUNK_MEMORY|NGX_HUNK_LAST;
-        h->pos = CRLF "0" CRLF CRLF;
+        h->pos = (u_char *) CRLF "0" CRLF CRLF;
         h->last = h->pos + 7;
 
     } else {
         h->type = NGX_HUNK_IN_MEMORY|NGX_HUNK_MEMORY;
-        h->pos = CRLF;
+        h->pos = (u_char *) CRLF;
         h->last = h->pos + 2;
     }
 
diff --git a/src/http/modules/ngx_http_gzip_filter.c b/src/http/modules/ngx_http_gzip_filter.c
index 57177b5..a1cbfb0 100644
--- a/src/http/modules/ngx_http_gzip_filter.c
+++ b/src/http/modules/ngx_http_gzip_filter.c
@@ -217,9 +217,9 @@
     }
 
     r->headers_out.content_encoding->key.len = sizeof("Content-Encoding") - 1;
-    r->headers_out.content_encoding->key.data = "Content-Encoding";
+    r->headers_out.content_encoding->key.data = (u_char *) "Content-Encoding";
     r->headers_out.content_encoding->value.len = sizeof("gzip") - 1;
-    r->headers_out.content_encoding->value.data = "gzip";
+    r->headers_out.content_encoding->value.data = (u_char *) "gzip";
 
     ctx->length = r->headers_out.content_length_n;
     r->headers_out.content_length_n = -1;
diff --git a/src/http/modules/ngx_http_index_handler.c b/src/http/modules/ngx_http_index_handler.c
index dd965d0..12e96f1 100644
--- a/src/http/modules/ngx_http_index_handler.c
+++ b/src/http/modules/ngx_http_index_handler.c
@@ -21,7 +21,7 @@
 } ngx_http_index_ctx_t;
 
 
-#define NGX_HTTP_DEFAULT_INDEX   "index.html"
+#define NGX_HTTP_DEFAULT_INDEX   (u_char *) "index.html"
 
 
 static ngx_int_t ngx_http_index_test_dir(ngx_http_request_t *r,
diff --git a/src/http/modules/ngx_http_range_filter.c b/src/http/modules/ngx_http_range_filter.c
index 3f3a6a3..5bf4be0 100644
--- a/src/http/modules/ngx_http_range_filter.c
+++ b/src/http/modules/ngx_http_range_filter.c
@@ -108,9 +108,9 @@
         }
 
         r->headers_out.accept_ranges->key.len = sizeof("Accept-Ranges") - 1;
-        r->headers_out.accept_ranges->key.data = "Accept-Ranges";
+        r->headers_out.accept_ranges->key.data = (u_char *) "Accept-Ranges";
         r->headers_out.accept_ranges->value.len = sizeof("bytes") - 1;
-        r->headers_out.accept_ranges->value.data = "bytes";
+        r->headers_out.accept_ranges->value.data = (u_char *) "bytes";
 
         return ngx_http_next_header_filter(r);
     }
@@ -230,7 +230,7 @@
         }
 
         r->headers_out.content_range->key.len = sizeof("Content-Range") - 1;
-        r->headers_out.content_range->key.data = "Content-Range";
+        r->headers_out.content_range->key.data = (u_char *) "Content-Range";
 
         ngx_test_null(r->headers_out.content_range->value.data,
                       ngx_palloc(r->pool, 8 + 20 + 1),
@@ -261,7 +261,7 @@
             }
 
             r->headers_out.content_range->key.len = sizeof("Content-Range") - 1;
-            r->headers_out.content_range->key.data = "Content-Range";
+            r->headers_out.content_range->key.data = (u_char *) "Content-Range";
 
             ngx_test_null(r->headers_out.content_range->value.data,
                           ngx_palloc(r->pool, 6 + 20 + 1 + 20 + 1 + 20 + 1),
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.c b/src/http/modules/proxy/ngx_http_proxy_handler.c
index 61fea1c..3fc8d0e 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -1073,7 +1073,7 @@
                 u->default_port = 1;
                 u->port = htons(80);
                 u->port_text.len = 2;
-                u->port_text.data = "80";
+                u->port_text.data = (u_char *) "80";
                 return NULL;
             }
 
@@ -1097,14 +1097,14 @@
 
     u->host_header.len = i;
 
-    u->uri.data = "/";
+    u->uri.data = (u_char *) "/";
     u->uri.len = 1;
 
     if (u->port_text.data == NULL) {
         u->default_port = 1;
         u->port = htons(80);
         u->port_text.len = 2;
-        u->port_text.data = "80";
+        u->port_text.data = (u_char *) "80";
         return NULL;
     }
 
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.h b/src/http/modules/proxy/ngx_http_proxy_handler.h
index 2e6cb84..ee95f1b 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.h
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.h
@@ -184,7 +184,13 @@
     ngx_http_proxy_state_t       *state;
     ngx_array_t                   states;    /* of ngx_http_proxy_state_t */
 
-    u_char                       *action;
+    /*
+     * 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;
 };
diff --git a/src/http/modules/proxy/ngx_http_proxy_upstream.c b/src/http/modules/proxy/ngx_http_proxy_upstream.c
index a4b6fda..f4bc1c4 100644
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -305,7 +305,7 @@
     ngx_http_request_t        *r;
     ngx_output_chain_ctx_t    *output;
     ngx_chain_writer_ctx_t    *writer;
-    ngx_http_proxy_log_ctx_t  *lctx;
+    ngx_http_proxy_log_ctx_t  *ctx;
 
     r = p->request;
 
@@ -345,17 +345,17 @@
 
     r->request_hunks = cl;
 
-    if (!(lctx = ngx_pcalloc(r->pool, sizeof(ngx_http_proxy_log_ctx_t)))) {
+    if (!(ctx = ngx_pcalloc(r->pool, sizeof(ngx_http_proxy_log_ctx_t)))) {
         ngx_http_proxy_finalize_request(p, NGX_HTTP_INTERNAL_SERVER_ERROR);
         return;
     }
-    lctx->connection = r->connection->number;
-    lctx->proxy = p;
+    ctx->connection = r->connection->number;
+    ctx->proxy = p;
 
     p->upstream->peer.log = r->connection->log;
     p->saved_ctx = r->connection->log->data;
     p->saved_handler = r->connection->log->handler;
-    r->connection->log->data = lctx;
+    r->connection->log->data = ctx;
     r->connection->log->handler = ngx_http_proxy_log_error;
     p->action = "connecting to upstream";
 
@@ -378,7 +378,6 @@
     }
 
     output->output_ctx = writer;
-
     writer->pool = r->pool;
 
     if (p->lcf->busy_lock && !p->busy_locked) {
@@ -393,6 +392,7 @@
 {
     ngx_chain_t             *cl;
     ngx_output_chain_ctx_t  *output;
+    ngx_chain_writer_ctx_t  *writer;
 
     output = p->upstream->output_chain_ctx;
 
@@ -402,7 +402,7 @@
         cl->hunk->pos = cl->hunk->start;
     }
 
-    /* reinit ngx_output_chain() context */
+    /* reinit the ngx_output_chain() context */
 
     output->hunk = NULL;
     output->in = NULL;
@@ -488,6 +488,7 @@
     ngx_connection_t        *c;
     ngx_http_request_t      *r;
     ngx_output_chain_ctx_t  *output;
+    ngx_chain_writer_ctx_t  *writer;
 
     p->action = "connecting to upstream";
 
@@ -517,14 +518,18 @@
     c->pool = r->pool;
     c->read->log = c->write->log = c->log = r->connection->log;
 
+    /* init or reinit the ngx_output_chain() and ngx_chain_writer() contexts */
+
     output = p->upstream->output_chain_ctx;
+    writer = output->output_ctx;
+    writer->out = NULL;
+    writer->last = &writer->out;
+    writer->connection = c;
 
     if (p->upstream->peer.tries > 1 && p->request_sent) {
         ngx_http_proxy_reinit_upstream(p);
     }
 
-    /* init or reinit ngx_output_chain() context */
-
     if (r->request_body_hunk) {
         if (!(output->free = ngx_alloc_chain_link(r->pool))) {
             ngx_http_proxy_finalize_request(p, NGX_HTTP_INTERNAL_SERVER_ERROR);
@@ -563,9 +568,8 @@
 
 static void ngx_http_proxy_send_request(ngx_http_proxy_ctx_t *p)
 {
-    int                      rc;
-    ngx_connection_t        *c;
-    ngx_chain_writer_ctx_t  *writer;
+    int                rc;
+    ngx_connection_t  *c;
 
     c = p->upstream->peer.connection;
 
@@ -586,11 +590,6 @@
 
     p->action = "sending request to upstream";
 
-    writer = p->upstream->output_chain_ctx->output_ctx;
-    writer->out = NULL;
-    writer->last = &writer->out;
-    writer->connection = c;
-
     rc = ngx_output_chain(p->upstream->output_chain_ctx,
                           p->request_sent ? NULL : p->request->request_hunks);