#! /bin/sh /usr/share/dpatch/dpatch-run ## ngx_timestamp_variable.dpatch by Kirill A. Korinskiy ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Implement $timestamp @DPATCH@ diff -r 87374663dc53 -r 004d410cc372 src/http/ngx_http_variables.c --- a/src/http/ngx_http_variables.c Wed Oct 01 15:24:16 2008 +0400 +++ b/src/http/ngx_http_variables.c Wed Oct 01 15:45:31 2008 +0400 @@ -79,6 +79,8 @@ static ngx_int_t ngx_http_variable_hostname(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); static ngx_int_t ngx_http_variable_pid(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data); +static ngx_int_t ngx_http_variable_timestamp(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); /* @@ -232,6 +234,9 @@ { ngx_string("pid"), NULL, ngx_http_variable_pid, 0, 0, 0 }, + { ngx_string("timestamp"), NULL, ngx_http_variable_timestamp, + 0, 0, 0 }, + { ngx_null_string, NULL, NULL, 0, 0, 0 } }; @@ -1378,6 +1383,26 @@ return NGX_OK; } +static ngx_int_t +ngx_http_variable_timestamp(ngx_http_request_t *r, + ngx_http_variable_value_t *v, uintptr_t data) +{ + u_char *p; + + p = ngx_pnalloc(r->pool, NGX_INT64_LEN); + if (p == NULL) { + return NGX_ERROR; + } + + v->len = ngx_sprintf(p, "%P", ngx_time()) - p; + v->valid = 1; + v->no_cacheable = 0; + v->not_found = 0; + v->data = p; + + return NGX_OK; +} + ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf)