prosody
changeset 2976 15c056c1d9eb
parent 2925 692b3c6c5bd2
child 2985 fde53d82fde0
child 3023 454e1cf18daf
equal deleted inserted replaced
2972:f9901175d535 2976:15c056c1d9eb
   119 			_realG_mt.__newindex = old_newindex;
   119 			_realG_mt.__newindex = old_newindex;
   120 			return ret;
   120 			return ret;
   121 		end
   121 		end
   122 		return _real_require(...);
   122 		return _real_require(...);
   123 	end
   123 	end
       
   124 end
       
   125 
       
   126 function set_function_metatable()
       
   127 	local mt = {};
       
   128 	function mt.__index(f, upvalue)
       
   129 		local i, name, value = 0;
       
   130 		repeat
       
   131 			i = i + 1;
       
   132 			name, value = debug.getupvalue(f, i);
       
   133 		until name == upvalue or name == nil;
       
   134 		return value;
       
   135 	end
       
   136 	function mt.__newindex(f, upvalue, value)
       
   137 		local i, name = 0;
       
   138 		repeat
       
   139 			i = i + 1;
       
   140 			name = debug.getupvalue(f, i);
       
   141 		until name == upvalue or name == nil;
       
   142 		if name then
       
   143 			debug.setupvalue(f, i, value);
       
   144 		end
       
   145 	end
       
   146 	debug.setmetatable(function() end, mt);
   124 end
   147 end
   125 
   148 
   126 function init_global_state()
   149 function init_global_state()
   127 	bare_sessions = {};
   150 	bare_sessions = {};
   128 	full_sessions = {};
   151 	full_sessions = {};
   416 -- previous steps to have already been performed
   439 -- previous steps to have already been performed
   417 read_config();
   440 read_config();
   418 init_logging();
   441 init_logging();
   419 check_dependencies();
   442 check_dependencies();
   420 sandbox_require();
   443 sandbox_require();
       
   444 set_function_metatable();
   421 load_libraries();
   445 load_libraries();
   422 init_global_state();
   446 init_global_state();
   423 read_version();
   447 read_version();
   424 log("info", "Hello and welcome to Prosody version %s", prosody.version);
   448 log("info", "Hello and welcome to Prosody version %s", prosody.version);
   425 load_secondary_libraries();
   449 load_secondary_libraries();