Annotate

component.lua @ 498:50d0bd035bb7

util.sasl.oauthbearer: Don't send authzid It's not needed and not recommended in XMPP unless we want to act as someone other than who we authenticate as. We find out the JID during resource binding.
author Kim Alvefur <zash@zash.se>
date Fri, 23 Jun 2023 12:09:49 +0200
parent 490:6b2f31da9610
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local verse = require "verse";
485
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
2 local stream_mt = verse.stream_mt;
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
490
6b2f31da9610 Update for new Prosody module namespace
Kim Alvefur <zash@zash.se>
parents: 485
diff changeset
4 local jid_split = require "prosody.util.jid".split;
6b2f31da9610 Update for new Prosody module namespace
Kim Alvefur <zash@zash.se>
parents: 485
diff changeset
5 local st = require "prosody.util.stanza";
6b2f31da9610 Update for new Prosody module namespace
Kim Alvefur <zash@zash.se>
parents: 485
diff changeset
6 local sha1 = require "prosody.util.hashes".sha1;
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 -- Shortcuts to save having to load util.stanza
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 verse.message, verse.presence, verse.iq, verse.stanza, verse.reply, verse.error_reply =
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 st.message, st.presence, st.iq, st.stanza, st.reply, st.error_reply;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11
490
6b2f31da9610 Update for new Prosody module namespace
Kim Alvefur <zash@zash.se>
parents: 485
diff changeset
12 local new_xmpp_stream = require "prosody.util.xmppstream".new;
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 local xmlns_stream = "http://etherx.jabber.org/streams";
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local xmlns_component = "jabber:component:accept";
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 local stream_callbacks = {
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 stream_ns = xmlns_stream,
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 stream_tag = "stream",
150
728cc7f2f0c2 verse.component: Namespacing fixes
Matthew Wild <mwild1@gmail.com>
parents: 84
diff changeset
20 default_ns = xmlns_component };
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
21
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 function stream_callbacks.streamopened(stream, attr)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 stream.stream_id = attr.id;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 if not stream:event("opened", attr) then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 stream.notopen = nil;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 return true;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 function stream_callbacks.streamclosed(stream)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 return stream:event("closed");
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 function stream_callbacks.handlestanza(stream, stanza)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 if stanza.attr.xmlns == xmlns_stream then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 return stream:event("stream-"..stanza.name, stanza);
150
728cc7f2f0c2 verse.component: Namespacing fixes
Matthew Wild <mwild1@gmail.com>
parents: 84
diff changeset
37 elseif stanza.attr.xmlns or stanza.name == "handshake" then
728cc7f2f0c2 verse.component: Namespacing fixes
Matthew Wild <mwild1@gmail.com>
parents: 84
diff changeset
38 return stream:event("stream/"..(stanza.attr.xmlns or xmlns_component), stanza);
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 return stream:event("stanza", stanza);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43
485
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
44 function stream_mt:connect_component(jid, pass)
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 self.jid, self.password = jid, pass;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 self.username, self.host, self.resource = jid_split(jid);
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
47
485
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
48 -- Component stream methods
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
49 function self:reset()
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
50 if self.stream then
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
51 self.stream:reset();
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
52 else
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
53 self.stream = new_xmpp_stream(self, stream_callbacks);
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
54 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
55 self.notopen = true;
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
56 return true;
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
57 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
58
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
59 function self:reopen()
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
60 self:reset();
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
61 self:send(st.stanza("stream:stream", { to = self.jid, ["xmlns:stream"]='http://etherx.jabber.org/streams',
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
62 xmlns = xmlns_component, version = "1.0" }):top_tag());
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
63 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
64
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
65 function self:close(reason)
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
66 if not self.notopen then
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
67 self:send("</stream:stream>");
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
68 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
69 local on_disconnect = self.conn.disconnect();
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
70 self.conn:close();
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
71 on_disconnect(conn, reason);
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
72 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
73
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
74 function self:send_iq(iq, callback)
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
75 local id = self:new_id();
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
76 self.tracked_iqs[id] = callback;
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
77 iq.attr.id = id;
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
78 self:send(iq);
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
79 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
80
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
81 function self:new_id()
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
82 self.curr_id = self.curr_id + 1;
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
83 return tostring(self.curr_id);
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
84 end
c9a144591649 component: Avoid adding to the global stream metatable
Matthew Wild <mwild1@gmail.com>
parents: 411
diff changeset
85
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 function self.data(conn, data)
161
b177bcea2006 squishy, verse.client, verse.component, verse.bosh: Port to util.xmppstream instead of xmlhandlers which has been removed from Prosody. Also remove util.ztact from squishy for the same reason.
Matthew Wild <mwild1@gmail.com>
parents: 150
diff changeset
87 local ok, err = self.stream:feed(data);
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 if ok then return; end
400
0db9cb909cf1 client, component: Fix logging of invalid XML
Matthew Wild <mwild1@gmail.com>
parents: 314
diff changeset
89 stream:debug("Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " "));
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 stream:close("xml-not-well-formed");
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 end
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
92
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 self:hook("incoming-raw", function (data) return self.data(self.conn, data); end);
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
94
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 self.curr_id = 0;
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
96
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 self.tracked_iqs = {};
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 self:hook("stanza", function (stanza)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 local id, type = stanza.attr.id, stanza.attr.type;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 if id and stanza.name == "iq" and (type == "result" or type == "error") and self.tracked_iqs[id] then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 self.tracked_iqs[id](stanza);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 self.tracked_iqs[id] = nil;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 return true;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 end);
411
db462d4feb44 verse: trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents: 410
diff changeset
106
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 self:hook("stanza", function (stanza)
282
52b971d9ebc3 client, component: `ret` was probably meant to be a local
Kim Alvefur <zash@zash.se>
parents: 161
diff changeset
108 local ret;
84
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 if stanza.attr.xmlns == nil or stanza.attr.xmlns == "jabber:client" then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 if stanza.name == "iq" and (stanza.attr.type == "get" or stanza.attr.type == "set") then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 if xmlns then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
113 ret = self:event("iq/"..xmlns, stanza);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
114 if not ret then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
115 ret = self:event("iq", stanza);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118 if ret == nil then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 self:send(verse.error_reply(stanza, "cancel", "service-unavailable"));
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 return true;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122 else
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 ret = self:event(stanza.name, stanza);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 return ret;
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 end, -1);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129 self:hook("opened", function (attr)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 print(self.jid, self.stream_id, attr.id);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 local token = sha1(self.stream_id..pass, true);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133 self:send(st.stanza("handshake", { xmlns = xmlns_component }):text(token));
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
134 self:hook("stream/"..xmlns_component, function (stanza)
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135 if stanza.name == "handshake" then
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 self:event("authentication-success");
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
138 end);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
139 end);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
140
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
141 local function stream_ready()
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
142 self:event("ready");
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
143 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
144 self:hook("authentication-success", stream_ready, -1);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
145
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
146 -- Initialise connection
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 self:connect(self.connect_host or self.host, self.connect_port or 5347);
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148 self:reopen();
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
149 end
d85d2443478e verse.component: XEP-0114 support \o/
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
150