31 if stanza.attr.xmlns == xmlns_stream then |
31 if stanza.attr.xmlns == xmlns_stream then |
32 return stream:event("stream-"..stanza.name, stanza); |
32 return stream:event("stream-"..stanza.name, stanza); |
33 elseif stanza.attr.xmlns then |
33 elseif stanza.attr.xmlns then |
34 return stream:event("stream/"..stanza.attr.xmlns, stanza); |
34 return stream:event("stream/"..stanza.attr.xmlns, stanza); |
35 end |
35 end |
36 |
|
37 stream:hook("stanza", function (stanza) |
|
38 if stanza.attr.xmlns == nil or stanza.attr.xmlns == "jabber:client" then |
|
39 if stanza.name == "iq" and (stanza.attr.type == "get" or stanza.attr.type == "set") then |
|
40 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; |
|
41 if xmlns then |
|
42 ret = stream:event("iq/"..xmlns, stanza); |
|
43 if not ret then |
|
44 ret = stream:event("iq", stanza); |
|
45 end |
|
46 end |
|
47 else |
|
48 ret = stream:event(stanza.name, stanza); |
|
49 end |
|
50 end |
|
51 return ret; |
|
52 end, -1); |
|
53 |
36 |
54 return stream:event("stanza", stanza); |
37 return stream:event("stanza", stanza); |
55 end |
38 end |
56 |
39 |
57 local function reset_stream(stream) |
40 local function reset_stream(stream) |
87 self.tracked_iqs[id] = nil; |
70 self.tracked_iqs[id] = nil; |
88 return true; |
71 return true; |
89 end |
72 end |
90 end); |
73 end); |
91 |
74 |
|
75 self:hook("stanza", function (stanza) |
|
76 if stanza.attr.xmlns == nil or stanza.attr.xmlns == "jabber:client" then |
|
77 if stanza.name == "iq" and (stanza.attr.type == "get" or stanza.attr.type == "set") then |
|
78 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; |
|
79 if xmlns then |
|
80 ret = self:event("iq/"..xmlns, stanza); |
|
81 if not ret then |
|
82 ret = self:event("iq", stanza); |
|
83 end |
|
84 end |
|
85 else |
|
86 ret = self:event(stanza.name, stanza); |
|
87 end |
|
88 end |
|
89 return ret; |
|
90 end, -1); |
|
91 |
92 -- Initialise connection |
92 -- Initialise connection |
93 self:connect(self.connect_host or self.host, self.connect_port or 5222); |
93 self:connect(self.connect_host or self.host, self.connect_port or 5222); |
94 --reset_stream(self); |
94 --reset_stream(self); |
95 self:reopen(); |
95 self:reopen(); |
96 end |
96 end |