diff src/core/ngx_string.c @ 254:f3ec44f4a53b NGINX_0_4_12

nginx 0.4.12 *) Feature: the ngx_http_perl_module supports the $r->variable method. *) Bugfix: if a big static file was included using SSI in a response, then the response may be transferred incomplete. *) Bugfix: nginx did not omit the "#fragment" part in URI.
author Igor Sysoev <http://sysoev.ru>
date Tue, 31 Oct 2006 00:00:00 +0300
parents fbf2b2f66c9f
children 052a7b1d40e5
line wrap: on
line diff
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -688,24 +688,25 @@ ngx_decode_base64(ngx_str_t *dst, ngx_st
 {
     size_t          len;
     u_char         *d, *s;
-    static u_char   basis64[] =
-        { 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 62, 77, 77, 77, 63,
-          52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 77, 77, 77, 77, 77, 77,
-          77,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
-          15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 77, 77, 77, 77, 77,
-          77, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-          41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 77, 77, 77, 77, 77,
+    static u_char   basis64[] = {
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 62, 77, 77, 77, 63,
+        52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 77, 77, 77, 77, 77, 77,
+        77,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
+        15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 77, 77, 77, 77, 77,
+        77, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 77, 77, 77, 77, 77,
 
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77 };
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77
+    };
 
     for (len = 0; len < src->len; len++) {
         if (src->data[len] == '=') {
@@ -887,66 +888,69 @@ ngx_utf_cpystrn(u_char *dst, u_char *src
 uintptr_t
 ngx_escape_uri(u_char *dst, u_char *src, size_t size, ngx_uint_t type)
 {
-    ngx_uint_t        i, n;
-    uint32_t         *escape;
-    static u_char     hex[] = "0123456789abcdef";
+    ngx_uint_t      i, n;
+    uint32_t       *escape;
+    static u_char   hex[] = "0123456789abcdef";
 
-                      /* " ", "#", "%", "?", %00-%1F, %7F-%FF */
+                    /* " ", "#", "%", "?", %00-%1F, %7F-%FF */
 
-    static uint32_t   uri[] =
-        { 0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   uri[] = {
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-          0x80000029, /* 1000 0000 0000 0000  0000 0000 0010 1001 */
+                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+        0x80000029, /* 1000 0000 0000 0000  0000 0000 0010 1001 */
+
+                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
-
-                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
+                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    };
 
-                      /* " ", "#", "%", "+", "?", %00-%1F, %7F-%FF */
+                    /* " ", "#", "%", "+", "?", %00-%1F, %7F-%FF */
 
-    static uint32_t   args[] =
-        { 0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   args[] = {
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+
+                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+        0x80000829, /* 1000 0000 0000 0000  0000 1000 0010 1001 */
 
-                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-          0x80000829, /* 1000 0000 0000 0000  0000 1000 0010 1001 */
+                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
+                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    };
 
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
-
-                      /* " ", """, "%", "'", %00-%1F, %7F-%FF */
+                    /* " ", """, "%", "'", %00-%1F, %7F-%FF */
 
-    static uint32_t   html[] =
-        { 0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   html[] = {
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-          0x800000ad, /* 0000 0000 0000 0000  0000 0000 1010 1101 */
+                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+        0x800000ad, /* 0000 0000 0000 0000  0000 0000 1010 1101 */
+
+                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
+                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
-
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    };
 
 
     switch (type) {