1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/*
* Copyright (C) Xiaozhe Wang (chaoslawful)
* Copyright (C) Yichun Zhang (agentzh)
*/
#ifndef DDEBUG
#define DDEBUG 0
#endif
#include "ddebug.h"
#include "ngx_http_lua_common.h"
double
ngx_http_lua_ffi_now(void)
{
ngx_time_t *tp;
tp = ngx_timeofday();
return tp->sec + tp->msec / 1000.0;
}
double
ngx_http_lua_ffi_req_start_time(ngx_http_request_t *r)
{
return r->start_sec + r->start_msec / 1000.0;
}
long
ngx_http_lua_ffi_time(void)
{
return (long) ngx_time();
}
long
ngx_http_lua_ffi_monotonic_msec(void)
{
return (long) ngx_current_msec;
}
void
ngx_http_lua_ffi_update_time(void)
{
ngx_time_update();
}
void
ngx_http_lua_ffi_today(u_char *buf)
{
ngx_tm_t tm;
ngx_gmtime(ngx_time() + ngx_cached_time->gmtoff * 60, &tm);
ngx_sprintf(buf, "%04d-%02d-%02d", tm.ngx_tm_year, tm.ngx_tm_mon,
tm.ngx_tm_mday);
}
void
ngx_http_lua_ffi_localtime(u_char *buf)
{
ngx_tm_t tm;
ngx_gmtime(ngx_time() + ngx_cached_time->gmtoff * 60, &tm);
ngx_sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", tm.ngx_tm_year,
tm.ngx_tm_mon, tm.ngx_tm_mday, tm.ngx_tm_hour, tm.ngx_tm_min,
tm.ngx_tm_sec);
}
void
ngx_http_lua_ffi_utctime(u_char *buf)
{
ngx_tm_t tm;
ngx_gmtime(ngx_time(), &tm);
ngx_sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", tm.ngx_tm_year,
tm.ngx_tm_mon, tm.ngx_tm_mday, tm.ngx_tm_hour, tm.ngx_tm_min,
tm.ngx_tm_sec);
}
int
ngx_http_lua_ffi_cookie_time(u_char *buf, long t)
{
u_char *p;
p = ngx_http_cookie_time(buf, t);
return p - buf;
}
void
ngx_http_lua_ffi_http_time(u_char *buf, long t)
{
ngx_http_time(buf, t);
}
void
ngx_http_lua_ffi_parse_http_time(const u_char *str, size_t len,
long *time)
{
/* ngx_http_parse_time doesn't modify 'str' actually */
*time = ngx_http_parse_time((u_char *) str, len);
}
/* vi:set ft=c ts=4 sw=4 et fdm=marker: */
|