annotate src/core/ngx_parse_time.c @ 6719:cebf5fed00bf

Modules compatibility: removed unneeded IPV6_V6ONLY checks. The IPV6_V6ONLY macro is now checked only while parsing appropriate flag and when using the macro. The ipv6only field in listen structures is always initialized to 1, even if not supported on a given platform. This is expected to prevent a module compiled without IPV6_V6ONLY from accidentally creating dual sockets if loaded into main binary with proper IPV6_V6ONLY support.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 03 Oct 2016 15:58:25 +0300
parents 2cd019520210
children e3723f2a11b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 3208
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
5 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
6
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 25
diff changeset
8 #include <ngx_config.h>
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 25
diff changeset
9 #include <ngx_core.h>
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
11
3207
154b5f8565a9 use ngx_uint_t instead of int,
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
12 static ngx_uint_t mday[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13
1628
8d3d224cae20 style and grammar fix
Igor Sysoev <igor@sysoev.ru>
parents: 1062
diff changeset
14 time_t
6180
8b6fa4842133 Moved ngx_http_parse_time() to core, renamed accordingly.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4759
diff changeset
15 ngx_parse_http_time(u_char *value, size_t len)
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
16 {
3207
154b5f8565a9 use ngx_uint_t instead of int,
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
17 u_char *p, *end;
154b5f8565a9 use ngx_uint_t instead of int,
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
18 ngx_int_t month;
154b5f8565a9 use ngx_uint_t instead of int,
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
19 ngx_uint_t day, year, hour, min, sec;
3208
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
20 uint64_t time;
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
21 enum {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
22 no = 0,
684
e3e0b20d8eb2 fix typo
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
23 rfc822, /* Tue, 10 Nov 2002 23:50:13 */
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
24 rfc850, /* Tuesday, 10-Dec-02 23:50:13 */
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
25 isoc /* Tue Dec 10 23:50:13 2002 */
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
26 } fmt;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
27
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 25
diff changeset
28 fmt = 0;
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
29 end = value + len;
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
31 #if (NGX_SUPPRESS_WARN)
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
32 day = 32;
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
33 year = 2038;
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
34 #endif
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
35
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
36 for (p = value; p < end; p++) {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
37 if (*p == ',') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
38 break;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
39 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
41 if (*p == ' ') {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
42 fmt = isoc;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
43 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
44 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
45 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
47 for (p++; p < end; p++)
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
48 if (*p != ' ') {
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 break;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
50 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
52 if (end - p < 18) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
53 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
54 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
55
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
56 if (fmt != isoc) {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
57 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
58 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
59 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
60
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
61 day = (*p - '0') * 10 + *(p + 1) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
62 p += 2;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
63
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
64 if (*p == ' ') {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
65 if (end - p < 18) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
66 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
67 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
68 fmt = rfc822;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
69
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
70 } else if (*p == '-') {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
71 fmt = rfc850;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
72
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
73 } else {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
74 return NGX_ERROR;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
75 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
76
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
77 p++;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
78 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
79
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
80 switch (*p) {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
81
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
82 case 'J':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
83 month = *(p + 1) == 'a' ? 0 : *(p + 2) == 'n' ? 5 : 6;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
84 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
85
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
86 case 'F':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
87 month = 1;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
88 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
89
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
90 case 'M':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
91 month = *(p + 2) == 'r' ? 2 : 4;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
92 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
93
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
94 case 'A':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
95 month = *(p + 1) == 'p' ? 3 : 7;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
96 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
97
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
98 case 'S':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
99 month = 8;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
100 break;
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
102 case 'O':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
103 month = 9;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
104 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
105
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
106 case 'N':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
107 month = 10;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
108 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
109
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
110 case 'D':
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
111 month = 11;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
112 break;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
113
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
114 default:
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
115 return NGX_ERROR;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
116 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
117
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
118 p += 3;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
119
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
120 if ((fmt == rfc822 && *p != ' ') || (fmt == rfc850 && *p != '-')) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
121 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
122 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
123
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
124 p++;
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
125
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
126 if (fmt == rfc822) {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
127 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9'
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
128 || *(p + 2) < '0' || *(p + 2) > '9'
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
129 || *(p + 3) < '0' || *(p + 3) > '9')
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
130 {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
131 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
132 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
133
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
134 year = (*p - '0') * 1000 + (*(p + 1) - '0') * 100
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
135 + (*(p + 2) - '0') * 10 + *(p + 3) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
136 p += 4;
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
138 } else if (fmt == rfc850) {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
139 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
140 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
141 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
142
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
143 year = (*p - '0') * 10 + *(p + 1) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
144 year += (year < 70) ? 2000 : 1900;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
145 p += 2;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
146 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
147
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
148 if (fmt == isoc) {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
149 if (*p == ' ') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
150 p++;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
151 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
152
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
153 if (*p < '0' || *p > '9') {
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
154 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
155 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
156
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
157 day = *p++ - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
158
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
159 if (*p != ' ') {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
160 if (*p < '0' || *p > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
161 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
162 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
163
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
164 day = day * 10 + *p++ - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
165 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
166
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
167 if (end - p < 14) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
168 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
169 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
170 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
171
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
172 if (*p++ != ' ') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
173 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
174 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
175
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
176 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
177 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
178 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
179
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
180 hour = (*p - '0') * 10 + *(p + 1) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
181 p += 2;
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
182
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
183 if (*p++ != ':') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
184 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
185 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
186
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
187 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
188 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
189 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
190
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
191 min = (*p - '0') * 10 + *(p + 1) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
192 p += 2;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
193
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
194 if (*p++ != ':') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
195 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
196 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
197
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
198 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
199 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
200 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
201
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
202 sec = (*p - '0') * 10 + *(p + 1) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
203
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
204 if (fmt == isoc) {
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
205 p += 2;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
206
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
207 if (*p++ != ' ') {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
208 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
209 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
210
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
211 if (*p < '0' || *p > '9' || *(p + 1) < '0' || *(p + 1) > '9'
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
212 || *(p + 2) < '0' || *(p + 2) > '9'
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
213 || *(p + 3) < '0' || *(p + 3) > '9')
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
214 {
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
215 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
216 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
217
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
218 year = (*p - '0') * 1000 + (*(p + 1) - '0') * 100
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
219 + (*(p + 2) - '0') * 10 + *(p + 3) - '0';
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
220 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
221
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
222 if (hour > 23 || min > 59 || sec > 59) {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6180
diff changeset
223 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
224 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
225
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
226 if (day == 29 && month == 1) {
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
227 if ((year & 3) || ((year % 100 == 0) && (year % 400) != 0)) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
228 return NGX_ERROR;
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 29
diff changeset
229 }
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
230
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 25
diff changeset
231 } else if (day > mday[month]) {
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
232 return NGX_ERROR;
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
233 }
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
234
181
811bdd2af794 nginx-0.0.1-2003-11-12-20:25:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
235 /*
811bdd2af794 nginx-0.0.1-2003-11-12-20:25:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
236 * shift new year to March 1 and start months from 1 (not 0),
1964
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
237 * it is needed for Gauss' formula
181
811bdd2af794 nginx-0.0.1-2003-11-12-20:25:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
238 */
179
9f3a78b06c48 nginx-0.0.1-2003-11-11-21:13:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
239
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
240 if (--month <= 0) {
1062
bc9751affada style and comment fix
Igor Sysoev <igor@sysoev.ru>
parents: 684
diff changeset
241 month += 12;
bc9751affada style and comment fix
Igor Sysoev <igor@sysoev.ru>
parents: 684
diff changeset
242 year -= 1;
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
243 }
179
9f3a78b06c48 nginx-0.0.1-2003-11-11-21:13:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
244
4499
778ef9c3fd2d Fixed spelling in single-line comments.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
245 /* Gauss' formula for Gregorian days since March 1, 1 BC */
1964
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
246
3208
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
247 time = (uint64_t) (
1964
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
248 /* days in years including leap years since March 1, 1 BC */
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
249
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
250 365 * year + year / 4 - year / 100 + year / 400
179
9f3a78b06c48 nginx-0.0.1-2003-11-11-21:13:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
251
1964
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
252 /* days before the month */
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
253
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
254 + 367 * month / 12 - 30
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
255
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
256 /* days before the day */
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
257
a3e84e78e785 comment Gauss' formula
Igor Sysoev <igor@sysoev.ru>
parents: 1628
diff changeset
258 + day - 1
181
811bdd2af794 nginx-0.0.1-2003-11-12-20:25:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
259
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
260 /*
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
261 * 719527 days were between March 1, 1 BC and March 1, 1970,
1062
bc9751affada style and comment fix
Igor Sysoev <igor@sysoev.ru>
parents: 684
diff changeset
262 * 31 and 28 days were in January and February 1970
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
263 */
179
9f3a78b06c48 nginx-0.0.1-2003-11-11-21:13:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
264
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 25
diff changeset
265 - 719527 + 31 + 28) * 86400 + hour * 3600 + min * 60 + sec;
3208
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
266
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
267 #if (NGX_TIME_T_SIZE <= 4)
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
268
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
269 if (time > 0x7fffffff) {
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
270 return NGX_ERROR;
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
271 }
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
272
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
273 #endif
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
274
8cec9724fe71 ngx_http_parse_time() should support full 32-bit time
Igor Sysoev <igor@sysoev.ru>
parents: 3207
diff changeset
275 return (time_t) time;
25
a8b156554dfe nginx-0.0.1-2002-12-11-19:57:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
276 }