Browse Source

mod_staticfile is the next plugin, so don't call HANDLER_FINISHED

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@549 152afb58-edef-0310-8abb-c4023f1b3aa9
svn/tags/lighttpd-1.4.2
Jan Kneschke 17 years ago
parent
commit
ae02f2c48b
  1. 20
      src/mod_compress.c

20
src/mod_compress.c

@ -112,12 +112,12 @@ SETDEFAULTS_FUNC(mod_compress_setdefaults) {
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
};
p->config_storage = malloc(srv->config_context->used * sizeof(specific_config *));
p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
for (i = 0; i < srv->config_context->used; i++) {
plugin_config *s;
s = malloc(sizeof(plugin_config));
s = calloc(1, sizeof(plugin_config));
s->compress_cache_dir = buffer_init();
s->compress = array_init();
s->compress_max_filesize = 0;
@ -562,10 +562,10 @@ static int mod_compress_patch_connection(server *srv, connection *con, plugin_da
PHYSICALPATH_FUNC(mod_compress_physical) {
plugin_data *p = p_d;
data_string *content_ds;
size_t m, i;
off_t max_fsize;
stat_cache_entry *sce = NULL;
buffer *content_type;
/* only GET and POST can get compressed */
if (con->request.http_method != HTTP_METHOD_GET &&
@ -578,15 +578,9 @@ PHYSICALPATH_FUNC(mod_compress_physical) {
max_fsize = p->conf.compress_max_filesize;
stat_cache_get_entry(srv, con, con->physical.path, &sce);
/* don't compress files that are too large as we need to much time to handle them */
if (max_fsize && (sce->st.st_size >> 10) > max_fsize) return HANDLER_GO_ON;
if (NULL == (content_ds = (data_string *)array_get_element(con->response.headers, "Content-Type"))) {
log_error_write(srv, __FILE__, __LINE__, "sbb", "Content-Type is not set for", con->physical.path, con->uri.path);
return HANDLER_GO_ON;
}
/* check if mimetype is in compress-config */
for (m = 0; m < p->conf.compress->used; m++) {
@ -598,7 +592,7 @@ PHYSICALPATH_FUNC(mod_compress_physical) {
return HANDLER_GO_ON;
}
if (buffer_is_equal(compress_ds->value, content_ds->value)) {
if (buffer_is_equal(compress_ds->value, sce->content_type)) {
/* mimetype found */
data_string *ds;
@ -694,14 +688,14 @@ PHYSICALPATH_FUNC(mod_compress_physical) {
response_header_insert(srv, con, CONST_STR_LEN("Last-Modified"), CONST_BUF_LEN(srv->mtime_cache[i].str));
return HANDLER_FINISHED;
return HANDLER_GO_ON;
}
} else if (0 == deflate_file_to_buffer(srv, con, p,
con->physical.path, sce, compression_type)) {
response_header_insert(srv, con, CONST_STR_LEN("Content-Encoding"), compression_name, strlen(compression_name));
return HANDLER_FINISHED;
return HANDLER_GO_ON;
}
break;
}

Loading…
Cancel
Save