Mercurial > hg > nginx-quic
comparison src/http/modules/ngx_http_not_modified_filter.c @ 155:46eb23d9471d
nginx-0.0.1-2003-10-22-20:38:26 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 22 Oct 2003 16:38:26 +0000 |
parents | c71aeb75c071 |
children | 4db54fdbcbe7 |
comparison
equal
deleted
inserted
replaced
154:eac26585476e | 155:46eb23d9471d |
---|---|
28 ngx_http_not_modified_filter_init, /* init module */ | 28 ngx_http_not_modified_filter_init, /* init module */ |
29 NULL /* init child */ | 29 NULL /* init child */ |
30 }; | 30 }; |
31 | 31 |
32 | 32 |
33 static int (*next_header_filter) (ngx_http_request_t *r); | 33 static ngx_http_output_header_filter_pt ngx_http_next_header_filter; |
34 | 34 |
35 | 35 |
36 static int ngx_http_not_modified_header_filter(ngx_http_request_t *r) | 36 static int ngx_http_not_modified_header_filter(ngx_http_request_t *r) |
37 { | 37 { |
38 time_t ims; | 38 time_t ims; |
39 | 39 |
40 if (r->headers_out.status != NGX_HTTP_OK | 40 if (r->headers_out.status != NGX_HTTP_OK |
41 || r->headers_in.if_modified_since == NULL | 41 || r->headers_in.if_modified_since == NULL |
42 || r->headers_out.last_modified_time == -1) | 42 || r->headers_out.last_modified_time == -1) |
43 { | 43 { |
44 return next_header_filter(r); | 44 return ngx_http_next_header_filter(r); |
45 } | 45 } |
46 | 46 |
47 ims = ngx_http_parse_time(r->headers_in.if_modified_since->value.data, | 47 ims = ngx_http_parse_time(r->headers_in.if_modified_since->value.data, |
48 r->headers_in.if_modified_since->value.len); | 48 r->headers_in.if_modified_since->value.len); |
49 | 49 |
50 ngx_log_debug(r->connection->log, "%d %d" _ | 50 ngx_log_debug(r->connection->log, "%d %d" _ |
51 ims _ r->headers_out.last_modified_time); | 51 ims _ r->headers_out.last_modified_time); |
52 | 52 |
53 /* I think that the equality of the dates is correcter */ | 53 /* |
54 * I think that the equality of the dates is correcter | |
55 */ | |
54 | 56 |
55 if (ims != NGX_ERROR && ims == r->headers_out.last_modified_time) { | 57 if (ims != NGX_ERROR && ims == r->headers_out.last_modified_time) { |
56 r->headers_out.status = NGX_HTTP_NOT_MODIFIED; | 58 r->headers_out.status = NGX_HTTP_NOT_MODIFIED; |
57 r->headers_out.content_length_n = -1; | 59 r->headers_out.content_length_n = -1; |
58 r->headers_out.content_length = NULL; | 60 r->headers_out.content_length = NULL; |
59 r->headers_out.content_type->key.len = 0; | 61 r->headers_out.content_type->key.len = 0; |
60 r->headers_out.content_type = NULL; | 62 r->headers_out.content_type = NULL; |
61 r->headers_out.accept_ranges->key.len = 0; | 63 r->headers_out.accept_ranges->key.len = 0; |
62 } | 64 } |
63 | 65 |
64 return next_header_filter(r); | 66 return ngx_http_next_header_filter(r); |
65 } | 67 } |
66 | 68 |
67 | 69 |
68 static int ngx_http_not_modified_filter_init(ngx_cycle_t *cycle) | 70 static int ngx_http_not_modified_filter_init(ngx_cycle_t *cycle) |
69 { | 71 { |
70 next_header_filter = ngx_http_top_header_filter; | 72 ngx_http_next_header_filter = ngx_http_top_header_filter; |
71 ngx_http_top_header_filter = ngx_http_not_modified_header_filter; | 73 ngx_http_top_header_filter = ngx_http_not_modified_header_filter; |
72 | 74 |
73 return NGX_OK; | 75 return NGX_OK; |
74 } | 76 } |