[PATCH] Add directive to always gunzip content
Roy Reznik
roy at adallom.com
Sun May 5 05:50:06 UTC 2013
Use this by adding "gunzip_always on;" to configuration.
This was in the modules to-do list.
Cheers.
@@ -16,6 +16,7 @@
typedef struct {
ngx_flag_t enable;
ngx_bufs_t bufs;
+ ngx_flag_t always;
} ngx_http_gunzip_conf_t;
@@ -77,6 +78,13 @@
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_gunzip_conf_t, bufs),
NULL },
+
+ { ngx_string("gunzip_always"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ offsetof(ngx_http_gunzip_conf_t, always),
+ NULL },
ngx_null_command
};
@@ -126,7 +134,7 @@
conf = ngx_http_get_module_loc_conf(r, ngx_http_gunzip_filter_module);
/* TODO support multiple content-codings */
- /* TODO always gunzip - due to configuration or module request */
+ /* TODO always gunzip - due to module request */
/* TODO ignore content encoding? */
if (!conf->enable
@@ -140,13 +148,16 @@
r->gzip_vary = 1;
- if (!r->gzip_tested) {
- if (ngx_http_gzip_ok(r) == NGX_OK) {
+ /* if configured to gunzip always, don't check request headers */
+ if (!conf->always) {
+ if (!r->gzip_tested) {
+ if (ngx_http_gzip_ok(r) == NGX_OK) {
+ return ngx_http_next_header_filter(r);
+ }
+
+ } else if (r->gzip_ok) {
return ngx_http_next_header_filter(r);
}
-
- } else if (r->gzip_ok) {
- return ngx_http_next_header_filter(r);
}
ctx = ngx_pcalloc(r->pool, sizeof(ngx_http_gunzip_ctx_t));
@@ -644,6 +655,7 @@
*/
conf->enable = NGX_CONF_UNSET;
+ conf->always = NGX_CONF_UNSET;
return conf;
}
@@ -656,6 +668,7 @@
ngx_http_gunzip_conf_t *conf = child;
ngx_conf_merge_value(conf->enable, prev->enable, 0);
+ ngx_conf_merge_value(conf->always, prev->always, 0);
ngx_conf_merge_bufs_value(conf->bufs, prev->bufs,
(128 * 1024) / ngx_pagesize, ngx_pagesize);
--
*Roy Reznik, VP R&D*
Adallom, 1 Ha'barzel st., Tel-Aviv, Israel
Mobile: +972 (54) 4524066
*roy at adallom.com, www.adallom.com*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20130505/d8c32833/attachment.html>
More information about the nginx-devel
mailing list