aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_string.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-05-20 17:33:52 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-05-20 17:33:52 +0000
commit18684bd5ad9098c67b791ca2943e2f65917b2c2b (patch)
tree07cd7c403dffb5e724eb40db51d89fdd4763a6ab /src/core/ngx_string.c
parent090849dc6f995c6ccdbd947093789165a347e460 (diff)
downloadnginx-18684bd5ad9098c67b791ca2943e2f65917b2c2b.tar.gz
nginx-18684bd5ad9098c67b791ca2943e2f65917b2c2b.zip
nginx-0.0.3-2004-05-20-21:33:52 import
Diffstat (limited to 'src/core/ngx_string.c')
-rw-r--r--src/core/ngx_string.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
index 92b4b5306..fd115cc7e 100644
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -63,6 +63,46 @@ ngx_int_t ngx_atoi(u_char *line, size_t n)
if (value < 0) {
return NGX_ERROR;
+
+ } else {
+ return value;
+ }
+}
+
+
+ngx_int_t ngx_hextoi(u_char *line, size_t n)
+{
+ u_char ch;
+ ngx_int_t value;
+
+ if (n == 0) {
+ return NGX_ERROR;
+ }
+
+ for (value = 0; n--; line++) {
+ ch = *line;
+
+ if (ch >= '0' && ch <= '9') {
+ value = value * 16 + (ch - '0');
+ continue;
+ }
+
+ if (ch >= 'A' && ch <= 'F') {
+ value = value * 16 + (*line - 'A');
+ continue;
+ }
+
+ if (ch >= 'a' && ch <= 'f') {
+ value = value * 16 + (*line - 'a');
+ continue;
+ }
+
+ return NGX_ERROR;
+ }
+
+ if (value < 0) {
+ return NGX_ERROR;
+
} else {
return value;
}