xmpp.js

changeset 7
394b0c8cad04
parent 6
ec839631a35f
child 8
ca881dab2577
equal deleted inserted replaced
6:ec839631a35f 7:394b0c8cad04
215 { 215 {
216 this._setStatus(xmpp.Status.CONNECTED); 216 this._setStatus(xmpp.Status.CONNECTED);
217 } 217 }
218 } 218 }
219 this.debug("STANZA: "+stanza.toString()); 219 this.debug("STANZA: "+stanza.toString());
220
221 // Match and call handlers
222 var removeHandlers = [];
223 for(var i=0;i<this.handlers.length;i++)
224 {
225 var handler = this.handlers[i];
226 if(
227 (!handler.name || handler.name == stanza.name) &&
228 (!handler.xmlns || (handler.xmlns == stanza.attr.xmlns
229 || (stanza.tags[0] && handler.xmlns == stanza.tags[0].attr.xmlns))) &&
230 (!handler.type || handler.type == stanza.attr.type) &&
231 (!handler.id || handler.id == stanza.attr.id) &&
232 (!handler.from || (handler.from == (handler.matchBare?xmpp.getBareJID(stanza.attr.from):stanza.attr.from))) &&
233 (!handler.to || (handler.to == (handler.matchBare?xmpp.getBareJID(stanza.attr.to):stanza.attr.to)))
234 )
235 {
236 var ret = handler.callback(stanza);
237 if(ret == false)
238 removeHandlers.push(i);
239 }
240 }
241
242 var adjust = 0;
243 for(var i=0;i<removeHandlers.length;i++)
244 this.handlers.splice(removeHandlers[i]-(adjust++), 1);
220 }, 245 },
221 246
222 _stream_closed: function () 247 _stream_closed: function ()
223 { 248 {
224 this.debug("STREAM: closed."); 249 this.debug("STREAM: closed.");

mercurial