Comparison

core/modulemanager.lua @ 385:c064117c9357

Check to prevent error for IQs from completely unhandled origins
author Waqas Hussain <waqas20@gmail.com>
date Sat, 22 Nov 2008 23:14:31 +0500
parent 300:0ebf2ef5124e
child 391:79bd7a3e906c
comparison
equal deleted inserted replaced
384:4542bcdb7f55 385:c064117c9357
90 log("debug", "Stanza is an <iq/>"); 90 log("debug", "Stanza is an <iq/>");
91 local child = stanza.tags[1]; 91 local child = stanza.tags[1];
92 if child then 92 if child then
93 local xmlns = child.attr.xmlns or xmlns; 93 local xmlns = child.attr.xmlns or xmlns;
94 log("debug", "Stanza of type %s from %s has xmlns: %s", name, origin_type, xmlns); 94 log("debug", "Stanza of type %s from %s has xmlns: %s", name, origin_type, xmlns);
95 local handler = handlers[origin_type][name][xmlns]; 95 local handler = handlers[origin_type][name] and handlers[origin_type][name][xmlns];
96 if handler then 96 if handler then
97 log("debug", "Passing stanza to mod_%s", handler_info[handler].name); 97 log("debug", "Passing stanza to mod_%s", handler_info[handler].name);
98 return handler(origin, stanza) or true; 98 return handler(origin, stanza) or true;
99 end 99 end
100 end 100 end
101 elseif handlers[origin_type] then 101 elseif handlers[origin_type] then
102 local handler = handlers[origin_type][name]; 102 local handler = handlers[origin_type][name];
103 if handler then 103 if handler then
104 handler = handler[xmlns]; 104 handler = handler[xmlns];
105 if handler then 105 if handler then
106 log("debug", "Passing stanza to mod_%s", handler_info[handler].name); 106 log("debug", "Passing stanza to mod_%s", handler_info[handler].name);
107 return handler(origin, stanza) or true; 107 return handler(origin, stanza) or true;
108 end 108 end