Mon, 05 Dec 2011 15:44:17 +0000
doc/example*.lua: Update to use new .init() method
250 | 1 | local verse = require "verse"; |
2 | ||
235
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 | local xmlns_register = "jabber:iq:register"; |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 | |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 | function verse.plugins.register(stream) |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 | local function handle_features(features_stanza) |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 | if features_stanza:get_child("register", "http://jabber.org/features/iq-register") then |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 | stream:send_iq(verse.iq({ to = stream.host_, type = "set" }) |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 | :tag("query", { xmlns = xmlns_register }) |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 | :tag("username"):text(stream.username):up() |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 | :tag("password"):text(stream.password):up() |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 | , function (result) |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 | if result.attr.type == "result" then |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 | stream:event("registration-success"); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 | else |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 | local type, condition, text = result:get_error(); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 | stream:debug("Registration failed: %s", condition); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 | stream:event("registration-failure", { type = type, condition = condition, text = text }); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 | end |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 | end); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 | else |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 | stream:debug("In-band registration not offered by server"); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 | stream:event("registration-failed", { condition = "service-unavailable" }); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 | end |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 | stream:unhook("stream-features", handle_features); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 | return true; |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 | end |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 | stream:hook("stream-features", handle_features, 310); |
3c93d6119477
plugins.register: Add in-band registration plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 | end |