]> git.kaiwu.me - nginx.git/commitdiff
Improved ngx_parse_time() code readability.
authorRuslan Ermilov <ru@nginx.com>
Fri, 7 Oct 2011 08:03:16 +0000 (08:03 +0000)
committerRuslan Ermilov <ru@nginx.com>
Fri, 7 Oct 2011 08:03:16 +0000 (08:03 +0000)
src/core/ngx_parse.c
src/core/ngx_parse.h

index 6c4640cf7c4c723dfe1a345088016806cd9a9067..dff59ff60f97964727e14de5b45301b048d47500 100644 (file)
@@ -93,7 +93,7 @@ ngx_parse_offset(ngx_str_t *line)
 
 
 ngx_int_t
-ngx_parse_time(ngx_str_t *line, ngx_uint_t sec)
+ngx_parse_time(ngx_str_t *line, ngx_uint_t is_sec)
 {
     u_char      *p, *last;
     ngx_int_t    value, total, scale;
@@ -114,8 +114,8 @@ ngx_parse_time(ngx_str_t *line, ngx_uint_t sec)
     valid = 0;
     value = 0;
     total = 0;
-    step = sec ? st_start : st_month;
-    scale = sec ? 1 : 1000;
+    step = is_sec ? st_start : st_month;
+    scale = is_sec ? 1 : 1000;
 
     p = line->data;
     last = p + line->len;
@@ -135,81 +135,81 @@ ngx_parse_time(ngx_str_t *line, ngx_uint_t sec)
                 return NGX_ERROR;
             }
             step = st_year;
-            max = 68;
+            max = NGX_MAX_INT32_VALUE / (60 * 60 * 24 * 365);
             scale = 60 * 60 * 24 * 365;
             break;
 
         case 'M':
-            if (step > st_year) {
+            if (step >= st_month) {
                 return NGX_ERROR;
             }
             step = st_month;
-            max = 828;
+            max = NGX_MAX_INT32_VALUE / (60 * 60 * 24 * 30);
             scale = 60 * 60 * 24 * 30;
             break;
 
         case 'w':
-            if (step > st_month) {
+            if (step >= st_week) {
                 return NGX_ERROR;
             }
             step = st_week;
-            max = 3550;
+            max = NGX_MAX_INT32_VALUE / (60 * 60 * 24 * 7);
             scale = 60 * 60 * 24 * 7;
             break;
 
         case 'd':
-            if (step > st_week) {
+            if (step >= st_day) {
                 return NGX_ERROR;
             }
             step = st_day;
-            max = 24855;
+            max = NGX_MAX_INT32_VALUE / (60 * 60 * 24);
             scale = 60 * 60 * 24;
             break;
 
         case 'h':
-            if (step > st_day) {
+            if (step >= st_hour) {
                 return NGX_ERROR;
             }
             step = st_hour;
-            max = 596523;
+            max = NGX_MAX_INT32_VALUE / (60 * 60);
             scale = 60 * 60;
             break;
 
         case 'm':
             if (*p == 's') {
-                if (sec || step > st_sec) {
+                if (is_sec || step >= st_msec) {
                     return NGX_ERROR;
                 }
                 p++;
                 step = st_msec;
-                max = 2147483647;
+                max = NGX_MAX_INT32_VALUE;
                 scale = 1;
                 break;
             }
 
-            if (step > st_hour) {
+            if (step >= st_min) {
                 return NGX_ERROR;
             }
             step = st_min;
-            max = 35791394;
+            max = NGX_MAX_INT32_VALUE / 60;
             scale = 60;
             break;
 
         case 's':
-            if (step > st_min) {
+            if (step >= st_sec) {
                 return NGX_ERROR;
             }
             step = st_sec;
-            max = 2147483647;
+            max = NGX_MAX_INT32_VALUE;
             scale = 1;
             break;
 
         case ' ':
-            if (step > st_min) {
+            if (step >= st_sec) {
                 return NGX_ERROR;
             }
             step = st_last;
-            max = 2147483647;
+            max = NGX_MAX_INT32_VALUE;
             scale = 1;
             break;
 
@@ -217,7 +217,7 @@ ngx_parse_time(ngx_str_t *line, ngx_uint_t sec)
             return NGX_ERROR;
         }
 
-        if (step != st_msec && !sec) {
+        if (step != st_msec && !is_sec) {
             scale *= 1000;
             max /= 1000;
         }
@@ -228,12 +228,12 @@ ngx_parse_time(ngx_str_t *line, ngx_uint_t sec)
 
         total += value * scale;
 
-        if ((ngx_uint_t) total > 2147483647) {
+        if ((ngx_uint_t) total > NGX_MAX_INT32_VALUE) {
             return NGX_ERROR;
         }
 
         value = 0;
-        scale = sec ? 1 : 1000;
+        scale = is_sec ? 1 : 1000;
 
         while (p < last && *p == ' ') {
             p++;
index c25a3a023486559e7eed477bfcb1e4f0e43d2b3d..e770623fde6e2de1a100221e92dd977a93daf4ad 100644 (file)
@@ -17,7 +17,7 @@
 
 ssize_t ngx_parse_size(ngx_str_t *line);
 off_t ngx_parse_offset(ngx_str_t *line);
-ngx_int_t ngx_parse_time(ngx_str_t *line, ngx_uint_t sec);
+ngx_int_t ngx_parse_time(ngx_str_t *line, ngx_uint_t is_sec);
 
 
 #endif /* _NGX_PARSE_H_INCLUDED_ */