annotate src/os/unix/ngx_time.c @ 391:1d9bef53cd8e

Range filter: late_ranges functionality. Add one more filtering point after postpone filter. This allows to serve range capable replies with subrequests. It's not as efficient as range filtering for static data (i.e. doesn't save us from reading data from disk if some filter needs them in memory), but it may save some network bandwidth for us and for our users.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 21 Jul 2008 05:33:01 +0400
parents 408f195b3482
children a094317ba307
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2 /*
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 #include <ngx_config.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8 #include <ngx_core.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
11 void
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
12 ngx_localtime(time_t s, ngx_tm_t *tm)
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
13 {
18
6f8b0dc0f8dd nginx 0.1.9
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
14 #if (NGX_HAVE_LOCALTIME_R)
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
15 (void) localtime_r(&s, tm);
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
16
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
17 #else
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
18 ngx_tm_t *t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
19
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
20 t = localtime(&s);
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
21 *tm = *t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
22
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
23 #endif
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
24
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
25 tm->ngx_tm_mon++;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
26 tm->ngx_tm_year += 1900;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
27 }
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
28
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
29
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
30 void
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
31 ngx_libc_localtime(time_t s, struct tm *tm)
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
32 {
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
33 #if (NGX_HAVE_LOCALTIME_R)
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
34 (void) localtime_r(&s, tm);
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
35
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
36 #else
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
37 struct tm *t;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
38
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
39 t = localtime(&s);
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
40 *tm = *t;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
41
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
42 #endif
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
43 }
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
44
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
45
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
46 void
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
47 ngx_libc_gmtime(time_t s, struct tm *tm)
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
48 {
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
49 #if (NGX_HAVE_LOCALTIME_R)
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
50 (void) gmtime_r(&s, tm);
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
51
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
52 #else
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
53 struct tm *t;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
54
112
408f195b3482 nginx 0.3.3
Igor Sysoev <http://sysoev.ru>
parents: 66
diff changeset
55 t = gmtime(&s);
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
56 *tm = *t;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
57
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
58 #endif
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
59 }