Diff for /embedaddon/lighttpd/src/mod_indexfile.c between versions 1.1 and 1.1.1.3

version 1.1, 2013/10/14 10:32:48 version 1.1.1.3, 2016/11/02 10:35:00
Line 1 Line 1
   #include "first.h"
   
 #include "base.h"  #include "base.h"
 #include "log.h"  #include "log.h"
 #include "buffer.h"  #include "buffer.h"
Line 51  FREE_FUNC(mod_indexfile_free) { Line 53  FREE_FUNC(mod_indexfile_free) {
                 for (i = 0; i < srv->config_context->used; i++) {                  for (i = 0; i < srv->config_context->used; i++) {
                         plugin_config *s = p->config_storage[i];                          plugin_config *s = p->config_storage[i];
   
                        if (!s) continue;                        if (NULL == s) continue;
   
                         array_free(s->indexfiles);                          array_free(s->indexfiles);
   
Line 81  SETDEFAULTS_FUNC(mod_indexfile_set_defaults) { Line 83  SETDEFAULTS_FUNC(mod_indexfile_set_defaults) {
   
         if (!p) return HANDLER_ERROR;          if (!p) return HANDLER_ERROR;
   
        p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));        p->config_storage = calloc(1, srv->config_context->used * sizeof(plugin_config *));
   
         for (i = 0; i < srv->config_context->used; i++) {          for (i = 0; i < srv->config_context->used; i++) {
                   data_config const* config = (data_config const*)srv->config_context->data[i];
                 plugin_config *s;                  plugin_config *s;
   
                 s = calloc(1, sizeof(plugin_config));                  s = calloc(1, sizeof(plugin_config));
Line 94  SETDEFAULTS_FUNC(mod_indexfile_set_defaults) { Line 97  SETDEFAULTS_FUNC(mod_indexfile_set_defaults) {
   
                 p->config_storage[i] = s;                  p->config_storage[i] = s;
   
                if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {                if (0 != config_insert_values_global(srv, config->value, cv, i == 0 ? T_CONFIG_SCOPE_SERVER : T_CONFIG_SCOPE_CONNECTION)) {
                         return HANDLER_ERROR;                          return HANDLER_ERROR;
                 }                  }
         }          }
Line 141  URIHANDLER_FUNC(mod_indexfile_subrequest) { Line 144  URIHANDLER_FUNC(mod_indexfile_subrequest) {
   
         if (con->mode != DIRECT) return HANDLER_GO_ON;          if (con->mode != DIRECT) return HANDLER_GO_ON;
   
        if (con->uri.path->used == 0) return HANDLER_GO_ON;        if (buffer_is_empty(con->uri.path)) return HANDLER_GO_ON;
        if (con->uri.path->ptr[con->uri.path->used - 2] != '/') return HANDLER_GO_ON;        if (con->uri.path->ptr[buffer_string_length(con->uri.path) - 1] != '/') return HANDLER_GO_ON;
   
         mod_indexfile_patch_connection(srv, con, p);          mod_indexfile_patch_connection(srv, con, p);
   
Line 158  URIHANDLER_FUNC(mod_indexfile_subrequest) { Line 161  URIHANDLER_FUNC(mod_indexfile_subrequest) {
                 if (ds->value && ds->value->ptr[0] == '/') {                  if (ds->value && ds->value->ptr[0] == '/') {
                         /* if the index-file starts with a prefix as use this file as                          /* if the index-file starts with a prefix as use this file as
                          * index-generator */                           * index-generator */
                        buffer_copy_string_buffer(p->tmp_buf, con->physical.doc_root);                        buffer_copy_buffer(p->tmp_buf, con->physical.doc_root);
                 } else {                  } else {
                        buffer_copy_string_buffer(p->tmp_buf, con->physical.path);                        buffer_copy_buffer(p->tmp_buf, con->physical.path);
                 }                  }
                 buffer_append_string_buffer(p->tmp_buf, ds->value);                  buffer_append_string_buffer(p->tmp_buf, ds->value);
   
Line 190  URIHANDLER_FUNC(mod_indexfile_subrequest) { Line 193  URIHANDLER_FUNC(mod_indexfile_subrequest) {
                         continue;                          continue;
                 }                  }
   
                /* rewrite uri.path to the real path (/ -> /index.php) */                if (ds->value && ds->value->ptr[0] == '/') {
                buffer_append_string_buffer(con->uri.path, ds->value);                        /* replace uri.path */
                buffer_copy_string_buffer(con->physical.path, p->tmp_buf);                        buffer_copy_buffer(con->uri.path, ds->value);
   
                /* fce is already set up a few lines above */                        if (NULL == (ds = (data_string *)array_get_unused_element(con->environment, TYPE_STRING))) {
                                 ds = data_string_init();
                         }
                         buffer_copy_string_len(ds->key, CONST_STR_LEN("PATH_TRANSLATED_DIRINDEX"));
                         buffer_copy_buffer(ds->value, con->physical.path);
                         array_insert_unique(con->environment, (data_unset *)ds);
                 } else {
                         /* append to uri.path the relative path to index file (/ -> /index.php) */
                         buffer_append_string_buffer(con->uri.path, ds->value);
                 }
 
                 buffer_copy_buffer(con->physical.path, p->tmp_buf);
   
                 return HANDLER_GO_ON;                  return HANDLER_GO_ON;
         }          }

Removed from v.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>