Mercurial > hg > nginx-vendor-0-8
comparison src/core/ngx_string.c @ 138:8e6d4d96ec4c NGINX_0_3_16
nginx 0.3.16
*) Feature: the ngx_http_map_module.
*) Feature: the "types_hash_max_size" and "types_hash_bucket_size"
directives.
*) Feature: the "ssi_value_length" directive.
*) Feature: the "worker_rlimit_core" directive.
*) Workaround: the connection number in logs was always 1 if nginx was
built by the icc 8.1 or 9.0 compilers with optimization for
Pentium 4.
*) Bugfix: the "config timefmt" SSI command set incorrect time format.
*) Bugfix: nginx did not close connection to IMAP/POP3 backend for the
SSL connections; bug appeared in 0.3.13.
Thanks to Rob Mueller.
*) Bugfix: segmentation fault may occurred in at SSL shutdown; bug
appeared in 0.3.13.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 16 Dec 2005 00:00:00 +0300 |
parents | 91372f004adf |
children | 50bd986c5d63 |
comparison
equal
deleted
inserted
replaced
137:768f51dd150b | 138:8e6d4d96ec4c |
---|---|
978 decoded = (u_char) (c - 'a' + 10); | 978 decoded = (u_char) (c - 'a' + 10); |
979 state = sw_quoted_second; | 979 state = sw_quoted_second; |
980 break; | 980 break; |
981 } | 981 } |
982 | 982 |
983 /* skip the invalid quoted character */ | 983 /* the invalid quoted character */ |
984 | 984 |
985 s++; | 985 state = sw_usual; |
986 size--; | 986 |
987 *d++ = ch; | |
987 | 988 |
988 break; | 989 break; |
989 | 990 |
990 case sw_quoted_second: | 991 case sw_quoted_second: |
992 | |
993 state = sw_usual; | |
991 | 994 |
992 if (ch >= '0' && ch <= '9') { | 995 if (ch >= '0' && ch <= '9') { |
993 ch = (u_char) ((decoded << 4) + ch - '0'); | 996 ch = (u_char) ((decoded << 4) + ch - '0'); |
994 | |
995 state = sw_usual; | |
996 | 997 |
997 if (ch > '%' && ch < 0x7f) { | 998 if (ch > '%' && ch < 0x7f) { |
998 *d++ = ch; | 999 *d++ = ch; |
999 break; | 1000 break; |
1000 } | 1001 } |
1011 if (ch == '?') { | 1012 if (ch == '?') { |
1012 *d++ = ch; | 1013 *d++ = ch; |
1013 goto done; | 1014 goto done; |
1014 } | 1015 } |
1015 | 1016 |
1016 state = sw_usual; | |
1017 | |
1018 if (ch > '%' && ch < 0x7f) { | 1017 if (ch > '%' && ch < 0x7f) { |
1019 *d++ = ch; | 1018 *d++ = ch; |
1020 break; | 1019 break; |
1021 } | 1020 } |
1022 | 1021 |
1023 *d++ = '%'; *d++ = *(s - 2); *d++ = *(s - 1); | 1022 *d++ = '%'; *d++ = *(s - 2); *d++ = *(s - 1); |
1024 | 1023 |
1025 break; | 1024 break; |
1026 } | 1025 } |
1027 | 1026 |
1028 /* skip the invalid quoted character */ | 1027 /* the invalid quoted character */ |
1029 | 1028 |
1030 break; | 1029 break; |
1031 } | 1030 } |
1032 } | 1031 } |
1033 | 1032 |