Diff for /embedaddon/lighttpd/src/mod_magnet.c between versions 1.1 and 1.1.1.2

version 1.1, 2013/10/14 10:32:48 version 1.1.1.2, 2014/06/15 20:20:06
Line 103  SETDEFAULTS_FUNC(mod_magnet_set_defaults) { Line 103  SETDEFAULTS_FUNC(mod_magnet_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++) {
                 plugin_config *s;                  plugin_config *s;
Line 446  typedef struct { Line 446  typedef struct {
                 MAGNET_ENV_PHYICAL_PATH,                  MAGNET_ENV_PHYICAL_PATH,
                 MAGNET_ENV_PHYICAL_REL_PATH,                  MAGNET_ENV_PHYICAL_REL_PATH,
                 MAGNET_ENV_PHYICAL_DOC_ROOT,                  MAGNET_ENV_PHYICAL_DOC_ROOT,
                   MAGNET_ENV_PHYICAL_BASEDIR,
   
                 MAGNET_ENV_URI_PATH,                  MAGNET_ENV_URI_PATH,
                 MAGNET_ENV_URI_PATH_RAW,                  MAGNET_ENV_URI_PATH_RAW,
Line 466  static const magnet_env_t magnet_env[] = { Line 467  static const magnet_env_t magnet_env[] = {
         { "physical.path", MAGNET_ENV_PHYICAL_PATH },          { "physical.path", MAGNET_ENV_PHYICAL_PATH },
         { "physical.rel-path", MAGNET_ENV_PHYICAL_REL_PATH },          { "physical.rel-path", MAGNET_ENV_PHYICAL_REL_PATH },
         { "physical.doc-root", MAGNET_ENV_PHYICAL_DOC_ROOT },          { "physical.doc-root", MAGNET_ENV_PHYICAL_DOC_ROOT },
           { "physical.basedir", MAGNET_ENV_PHYICAL_BASEDIR },
   
         { "uri.path", MAGNET_ENV_URI_PATH },          { "uri.path", MAGNET_ENV_URI_PATH },
         { "uri.path-raw", MAGNET_ENV_URI_PATH_RAW },          { "uri.path-raw", MAGNET_ENV_URI_PATH_RAW },
Line 497  static buffer *magnet_env_get_buffer_by_id(server *srv Line 499  static buffer *magnet_env_get_buffer_by_id(server *srv
         case MAGNET_ENV_PHYICAL_PATH: dest = con->physical.path; break;          case MAGNET_ENV_PHYICAL_PATH: dest = con->physical.path; break;
         case MAGNET_ENV_PHYICAL_REL_PATH: dest = con->physical.rel_path; break;          case MAGNET_ENV_PHYICAL_REL_PATH: dest = con->physical.rel_path; break;
         case MAGNET_ENV_PHYICAL_DOC_ROOT: dest = con->physical.doc_root; break;          case MAGNET_ENV_PHYICAL_DOC_ROOT: dest = con->physical.doc_root; break;
           case MAGNET_ENV_PHYICAL_BASEDIR: dest = con->physical.basedir; break;
   
         case MAGNET_ENV_URI_PATH: dest = con->uri.path; break;          case MAGNET_ENV_URI_PATH: dest = con->uri.path; break;
         case MAGNET_ENV_URI_PATH_RAW: dest = con->uri.path_raw; break;          case MAGNET_ENV_URI_PATH_RAW: dest = con->uri.path_raw; break;
Line 693  static int magnet_copy_response_header(server *srv, co Line 696  static int magnet_copy_response_header(server *srv, co
         /* lighty.header */          /* lighty.header */
   
         lua_getfield(L, -1, "lighty"); /* lighty.* from the env  */          lua_getfield(L, -1, "lighty"); /* lighty.* from the env  */
        assert(lua_istable(L, -1));        force_assert(lua_istable(L, -1));
   
         lua_getfield(L, -1, "header"); /* lighty.header */          lua_getfield(L, -1, "header"); /* lighty.header */
         if (lua_istable(L, -1)) {          if (lua_istable(L, -1)) {
Line 737  static int magnet_attach_content(server *srv, connecti Line 740  static int magnet_attach_content(server *srv, connecti
          * get the environment of the function           * get the environment of the function
          */           */
   
        assert(lua_isfunction(L, -1));        force_assert(lua_isfunction(L, -1));
         lua_getfenv(L, -1); /* -1 is the function */          lua_getfenv(L, -1); /* -1 is the function */
   
         lua_getfield(L, -1, "lighty"); /* lighty.* from the env  */          lua_getfield(L, -1, "lighty"); /* lighty.* from the env  */
        assert(lua_istable(L, -1));        force_assert(lua_istable(L, -1));
   
         lua_getfield(L, -1, "content"); /* lighty.content */          lua_getfield(L, -1, "content"); /* lighty.content */
         if (lua_istable(L, -1)) {          if (lua_istable(L, -1)) {
Line 763  static int magnet_attach_content(server *srv, connecti Line 766  static int magnet_attach_content(server *srv, connecti
                                 lua_getfield(L, -3, "offset");                                  lua_getfield(L, -3, "offset");
   
                                 if (lua_isstring(L, -3)) { /* filename has to be a string */                                  if (lua_isstring(L, -3)) { /* filename has to be a string */
                                        buffer *fn = buffer_init();                                        buffer *fn;
                                         stat_cache_entry *sce;                                          stat_cache_entry *sce;
                                           const char *fn_str;
                                           handler_t res;
   
                                        buffer_copy_string(fn, lua_tostring(L, -3));                                        fn_str = lua_tostring(L, -3);
                                         fn = buffer_init_string(fn_str);
   
                                        if (HANDLER_GO_ON == stat_cache_get_entry(srv, con, fn, &sce)) {                                        res = stat_cache_get_entry(srv, con, fn, &sce);
 
                                         if (HANDLER_GO_ON == res) {
                                                 off_t off = 0;                                                  off_t off = 0;
                                                 off_t len = 0;                                                  off_t len = 0;
   
Line 783  static int magnet_attach_content(server *srv, connecti Line 791  static int magnet_attach_content(server *srv, connecti
                                                 }                                                  }
   
                                                 if (off < 0) {                                                  if (off < 0) {
                                                        return luaL_error(L, "offset for '%s' is negative", fn->ptr);                                                        buffer_free(fn);
                                                         return luaL_error(L, "offset for '%s' is negative", fn_str);
                                                 }                                                  }
   
                                                 if (len < off) {                                                  if (len < off) {
                                                        return luaL_error(L, "offset > length for '%s'", fn->ptr);                                                        buffer_free(fn);
                                                         return luaL_error(L, "offset > length for '%s'", fn_str);
                                                 }                                                  }
   
                                                 chunkqueue_append_file(con->write_queue, fn, off, len - off);                                                  chunkqueue_append_file(con->write_queue, fn, off, len - off);
Line 870  static handler_t magnet_attract(server *srv, connectio Line 880  static handler_t magnet_attract(server *srv, connectio
   
                 lua_pop(L, 1);                  lua_pop(L, 1);
   
                assert(lua_gettop(L) == 0); /* only the function should be on the stack */                force_assert(lua_gettop(L) == 0); /* only the function should be on the stack */
   
                 con->http_status = 500;                  con->http_status = 500;
                 con->mode = DIRECT;                  con->mode = DIRECT;
Line 992  static handler_t magnet_attract(server *srv, connectio Line 1002  static handler_t magnet_attract(server *srv, connectio
                         lua_tostring(L, -1));                          lua_tostring(L, -1));
                 lua_pop(L, 1); /* remove the error-msg and the function copy from the stack */                  lua_pop(L, 1); /* remove the error-msg and the function copy from the stack */
   
                assert(lua_gettop(L) == 1); /* only the function should be on the stack */                force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */
   
                 con->http_status = 500;                  con->http_status = 500;
                 con->mode = DIRECT;                  con->mode = DIRECT;
Line 1002  static handler_t magnet_attract(server *srv, connectio Line 1012  static handler_t magnet_attract(server *srv, connectio
         lua_remove(L, errfunc);          lua_remove(L, errfunc);
   
         /* we should have the function-copy and the return value on the stack */          /* we should have the function-copy and the return value on the stack */
        assert(lua_gettop(L) == 2);        force_assert(lua_gettop(L) == 2);
   
         if (lua_isnumber(L, -1)) {          if (lua_isnumber(L, -1)) {
                 /* if the ret-value is a number, take it */                  /* if the ret-value is a number, take it */
Line 1028  static handler_t magnet_attract(server *srv, connectio Line 1038  static handler_t magnet_attract(server *srv, connectio
                         con->mode = DIRECT;                          con->mode = DIRECT;
                 }                  }
   
                assert(lua_gettop(L) == 1); /* only the function should be on the stack */                force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */
   
                 /* we are finished */                  /* we are finished */
                 return HANDLER_FINISHED;                  return HANDLER_FINISHED;
         } else if (MAGNET_RESTART_REQUEST == lua_return_value) {          } else if (MAGNET_RESTART_REQUEST == lua_return_value) {
                assert(lua_gettop(L) == 1); /* only the function should be on the stack */                force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */
   
                 return HANDLER_COMEBACK;                  return HANDLER_COMEBACK;
         } else {          } else {
                assert(lua_gettop(L) == 1); /* only the function should be on the stack */                force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */
   
                 return HANDLER_GO_ON;                  return HANDLER_GO_ON;
         }          }

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


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