Mercurial > prosody-hg
comparison plugins/mod_iq.lua @ 3656:71fd1582f01b
mod_iq: Extra IQ get and set sub-events are now fired: "iq-{get,set}/{host,self,bare}/xmlns:tag" (when "iq/{host,self,bare}/xmlns:tag" is unhandled).
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sun, 28 Nov 2010 02:24:26 +0500 |
| parents | 140ce81778ca |
| children | 07f0c2ef16cb |
comparison
equal
deleted
inserted
replaced
| 3655:9a590b03a8d6 | 3656:71fd1582f01b |
|---|---|
| 33 -- IQ to bare JID recieved | 33 -- IQ to bare JID recieved |
| 34 local origin, stanza = data.origin, data.stanza; | 34 local origin, stanza = data.origin, data.stanza; |
| 35 | 35 |
| 36 -- TODO fire post processing events | 36 -- TODO fire post processing events |
| 37 if stanza.attr.type == "get" or stanza.attr.type == "set" then | 37 if stanza.attr.type == "get" or stanza.attr.type == "set" then |
| 38 return module:fire_event("iq/bare/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | 38 local ret = module:fire_event("iq/bare/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); |
| 39 if ret ~= nil then return ret; end | |
| 40 return module:fire_event("iq-"..stanza.attr.type.."/bare/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | |
| 39 else | 41 else |
| 40 module:fire_event("iq-"..stanza.attr.type.."/bare/"..stanza.attr.id, data); | 42 module:fire_event("iq-"..stanza.attr.type.."/bare/"..stanza.attr.id, data); |
| 41 return true; | 43 return true; |
| 42 end | 44 end |
| 43 end); | 45 end); |
| 44 | 46 |
| 45 module:hook("iq/self", function(data) | 47 module:hook("iq/self", function(data) |
| 46 -- IQ to bare JID recieved | 48 -- IQ to self JID recieved |
| 47 local origin, stanza = data.origin, data.stanza; | 49 local origin, stanza = data.origin, data.stanza; |
| 48 | 50 |
| 49 if stanza.attr.type == "get" or stanza.attr.type == "set" then | 51 if stanza.attr.type == "get" or stanza.attr.type == "set" then |
| 50 return module:fire_event("iq/self/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | 52 local ret = module:fire_event("iq/self/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); |
| 53 if ret ~= nil then return ret; end | |
| 54 return module:fire_event("iq-"..stanza.attr.type.."/self/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | |
| 51 else | 55 else |
| 52 module:fire_event("iq-"..stanza.attr.type.."/self/"..stanza.attr.id, data); | 56 module:fire_event("iq-"..stanza.attr.type.."/self/"..stanza.attr.id, data); |
| 53 return true; | 57 return true; |
| 54 end | 58 end |
| 55 end); | 59 end); |
| 57 module:hook("iq/host", function(data) | 61 module:hook("iq/host", function(data) |
| 58 -- IQ to a local host recieved | 62 -- IQ to a local host recieved |
| 59 local origin, stanza = data.origin, data.stanza; | 63 local origin, stanza = data.origin, data.stanza; |
| 60 | 64 |
| 61 if stanza.attr.type == "get" or stanza.attr.type == "set" then | 65 if stanza.attr.type == "get" or stanza.attr.type == "set" then |
| 62 return module:fire_event("iq/host/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | 66 local ret = module:fire_event("iq/host/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); |
| 67 if ret ~= nil then return ret; end | |
| 68 return module:fire_event("iq-"..stanza.attr.type.."/host/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name, data); | |
| 63 else | 69 else |
| 64 module:fire_event("iq-"..stanza.attr.type.."/host/"..stanza.attr.id, data); | 70 module:fire_event("iq-"..stanza.attr.type.."/host/"..stanza.attr.id, data); |
| 65 return true; | 71 return true; |
| 66 end | 72 end |
| 67 end); | 73 end); |
