Skip to content

Commit 0b8810f

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents ead73a5 + 8c02220 commit 0b8810f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/ngx_http_push_stream_module_utils.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2194,8 +2194,12 @@ ngx_http_push_stream_set_expires(ngx_http_request_t *r, ngx_http_push_stream_exp
21942194
{
21952195
size_t len;
21962196
time_t now, expires_header_time, max_age;
2197+
#if (nginx_version >= 1023000)
2198+
ngx_table_elt_t *expires_header, *cc;
2199+
#else
21972200
ngx_uint_t i;
21982201
ngx_table_elt_t *expires_header, *cc, **ccp;
2202+
#endif
21992203

22002204
expires_header = r->headers_out.expires;
22012205

@@ -2215,6 +2219,32 @@ ngx_http_push_stream_set_expires(ngx_http_request_t *r, ngx_http_push_stream_exp
22152219
len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT");
22162220
expires_header->value.len = len - 1;
22172221

2222+
#if (nginx_version >= 1023000)
2223+
cc = r->headers_out.cache_control;
2224+
2225+
if (cc == NULL) {
2226+
2227+
cc = ngx_list_push(&r->headers_out.headers);
2228+
if (cc == NULL) {
2229+
expires_header->hash = 0;
2230+
return NGX_ERROR;
2231+
}
2232+
2233+
r->headers_out.cache_control = cc;
2234+
cc->next = NULL;
2235+
2236+
cc->hash = 1;
2237+
ngx_str_set(&cc->key, "Cache-Control");
2238+
2239+
} else {
2240+
for (cc = cc->next; cc; cc = cc->next) {
2241+
cc->hash = 0;
2242+
}
2243+
2244+
cc = r->headers_out.cache_control;
2245+
cc->next = NULL;
2246+
}
2247+
#else
22182248
ccp = r->headers_out.cache_control.elts;
22192249

22202250
if (ccp == NULL) {
@@ -2244,6 +2274,8 @@ ngx_http_push_stream_set_expires(ngx_http_request_t *r, ngx_http_push_stream_exp
22442274

22452275
cc = ccp[0];
22462276
}
2277+
#endif
2278+
22472279

22482280
if (expires == NGX_HTTP_PUSH_STREAM_EXPIRES_EPOCH) {
22492281
expires_header->value.data = (u_char *) "Thu, 01 Jan 1970 00:00:01 GMT";

0 commit comments

Comments
 (0)