Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_parse.c')
-rw-r--r--src/core/ngx_parse.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/ngx_parse.c b/src/core/ngx_parse.c
index 28e5d96c1..786824562 100644
--- a/src/core/ngx_parse.c
+++ b/src/core/ngx_parse.c
@@ -47,6 +47,51 @@ ngx_parse_size(ngx_str_t *line)
}
+off_t
+ngx_parse_offset(ngx_str_t *line)
+{
+ u_char last;
+ off_t offset;
+ size_t len;
+ ngx_int_t scale;
+
+ len = line->len;
+ last = line->data[len - 1];
+
+ switch (last) {
+ case 'K':
+ case 'k':
+ len--;
+ scale = 1024;
+ break;
+
+ case 'M':
+ case 'm':
+ len--;
+ scale = 1024 * 1024;
+ break;
+
+ case 'G':
+ case 'g':
+ len--;
+ scale = 1024 * 1024 * 1024;
+ break;
+
+ default:
+ scale = 1;
+ }
+
+ offset = ngx_atoof(line->data, len);
+ if (offset == NGX_ERROR) {
+ return NGX_ERROR;
+ }
+
+ offset *= scale;
+
+ return offset;
+}
+
+
ngx_int_t
ngx_parse_time(ngx_str_t *line, ngx_int_t sec)
{