Mercurial > hg > nginx
view src/mail/ngx_mail_smtp_module.h @ 7702:7015f26aef90
Cache: ignore stale-if-error for 4xx and 5xx codes.
Previously the stale-if-error extension of the Cache-Control upstream header
triggered the return of a stale response for all error conditions that can be
specified in the proxy_cache_use_stale directive. The list of these errors
includes both network/timeout/format errors, as well as some HTTP codes like
503, 504, 403, 429 etc. The latter prevented a cache entry from being updated
by a response with any of these HTTP codes during the stale-if-error period.
Now stale-if-error only works for network/timeout/format errors and ignores
the upstream HTTP code. The return of a stale response for certain HTTP codes
is still possible using the proxy_cache_use_stale directive.
This change also applies to the stale-while-revalidate extension of the
Cache-Control header, which triggers stale-if-error if it is missing.
Reported at
http://mailman.nginx.org/pipermail/nginx/2020-July/059723.html.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 29 Jul 2020 13:28:04 +0300 |
parents | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ #define _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_mail.h> #include <ngx_mail_smtp_module.h> typedef struct { ngx_msec_t greeting_delay; size_t client_buffer_size; ngx_str_t capability; ngx_str_t starttls_capability; ngx_str_t starttls_only_capability; ngx_str_t server_name; ngx_str_t greeting; ngx_uint_t auth_methods; ngx_array_t capabilities; } ngx_mail_smtp_srv_conf_t; void ngx_mail_smtp_init_session(ngx_mail_session_t *s, ngx_connection_t *c); void ngx_mail_smtp_init_protocol(ngx_event_t *rev); void ngx_mail_smtp_auth_state(ngx_event_t *rev); ngx_int_t ngx_mail_smtp_parse_command(ngx_mail_session_t *s); extern ngx_module_t ngx_mail_smtp_module; #endif /* _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ */