Mercurial > prosody-hg
comparison plugins/mod_saslauth.lua @ 3523:32a0c3816d73
mod_saslauth: Updated to use the new events API.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sat, 16 Oct 2010 05:03:00 +0500 |
| parents | d50e2c937717 |
| children | d206b4e0a9f3 |
comparison
equal
deleted
inserted
replaced
| 3522:4646b5b039ca | 3523:32a0c3816d73 |
|---|---|
| 139 features:tag("bind", bind_attr):tag("required"):up():up(); | 139 features:tag("bind", bind_attr):tag("required"):up():up(); |
| 140 features:tag("session", xmpp_session_attr):tag("optional"):up():up(); | 140 features:tag("session", xmpp_session_attr):tag("optional"):up():up(); |
| 141 end | 141 end |
| 142 end); | 142 end); |
| 143 | 143 |
| 144 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-bind", function(session, stanza) | 144 module:hook("iq/self/urn:ietf:params:xml:ns:xmpp-bind:bind", function(event) |
| 145 log("debug", "Client requesting a resource bind"); | 145 log("debug", "Client requesting a resource bind"); |
| 146 local origin, stanza = event.origin, event.stanza; | |
| 146 local resource; | 147 local resource; |
| 147 if stanza.attr.type == "set" then | 148 if stanza.attr.type == "set" then |
| 148 local bind = stanza.tags[1]; | 149 local bind = stanza.tags[1]; |
| 149 if bind and bind.attr.xmlns == xmlns_bind then | 150 resource = bind:child_with_name("resource"); |
| 150 resource = bind:child_with_name("resource"); | 151 resource = resource and #resource.tags == 0 and resource[1] or nil; |
| 151 if resource then | |
| 152 resource = resource[1]; | |
| 153 end | |
| 154 end | |
| 155 end | 152 end |
| 156 local success, err_type, err, err_msg = sm_bind_resource(session, resource); | 153 local success, err_type, err, err_msg = sm_bind_resource(origin, resource); |
| 157 if not success then | 154 if success then |
| 158 session.send(st.error_reply(stanza, err_type, err, err_msg)); | 155 origin.send(st.reply(stanza) |
| 156 :tag("bind", { xmlns = xmlns_bind }) | |
| 157 :tag("jid"):text(origin.full_jid)); | |
| 159 else | 158 else |
| 160 session.send(st.reply(stanza) | 159 origin.send(st.error_reply(stanza, err_type, err, err_msg)); |
| 161 :tag("bind", { xmlns = xmlns_bind}) | |
| 162 :tag("jid"):text(session.full_jid)); | |
| 163 end | 160 end |
| 161 return true; | |
| 164 end); | 162 end); |
| 165 | 163 |
| 166 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-session", function(session, stanza) | 164 module:hook("iq/self/urn:ietf:params:xml:ns:xmpp-session:session", function(event) |
| 167 log("debug", "Client requesting a session"); | 165 log("debug", "Client requesting a session"); |
| 168 session.send(st.reply(stanza)); | 166 event.origin.send(st.reply(event.stanza)); |
| 167 return true; | |
| 169 end); | 168 end); |
