Software / code / verse
Comparison
client.lua @ 97:ad6006779416
verse.client: Update stream:close() to use base stream:close(), and not add an XMPP-specific :close() to the base stream
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 21 Aug 2010 14:37:10 +0100 |
| parent | 83:8221f3c25fd4 |
| child | 137:e4b9d3c5332c |
comparison
equal
deleted
inserted
replaced
| 96:f0aec10023aa | 97:ad6006779416 |
|---|---|
| 106 self:event("ready"); | 106 self:event("ready"); |
| 107 end | 107 end |
| 108 self:hook("session-success", stream_ready, -1) | 108 self:hook("session-success", stream_ready, -1) |
| 109 self:hook("bind-success", stream_ready, -1); | 109 self:hook("bind-success", stream_ready, -1); |
| 110 | 110 |
| 111 local _base_close = self.close; | |
| 112 function self:close(reason) | |
| 113 if not self.notopen then | |
| 114 self:send("</stream:stream>"); | |
| 115 end | |
| 116 return _base_close(self); | |
| 117 end | |
| 118 | |
| 111 -- Initialise connection | 119 -- Initialise connection |
| 112 self:connect(self.connect_host or self.host, self.connect_port or 5222); | 120 self:connect(self.connect_host or self.host, self.connect_port or 5222); |
| 113 self:reopen(); | 121 self:reopen(); |
| 114 end | 122 end |
| 115 | 123 |
| 116 function stream:reopen() | 124 function stream:reopen() |
| 117 self:reset(); | 125 self:reset(); |
| 118 self:send(st.stanza("stream:stream", { to = self.host, ["xmlns:stream"]='http://etherx.jabber.org/streams', | 126 self:send(st.stanza("stream:stream", { to = self.host, ["xmlns:stream"]='http://etherx.jabber.org/streams', |
| 119 xmlns = "jabber:client", version = "1.0" }):top_tag()); | 127 xmlns = "jabber:client", version = "1.0" }):top_tag()); |
| 120 end | |
| 121 | |
| 122 function stream:close(reason) | |
| 123 if not self.notopen then | |
| 124 self:send("</stream:stream>"); | |
| 125 end | |
| 126 local on_disconnect = self.conn.disconnect(); | |
| 127 self.conn:close(); | |
| 128 on_disconnect(conn, reason); | |
| 129 end | 128 end |
| 130 | 129 |
| 131 function stream:send_iq(iq, callback) | 130 function stream:send_iq(iq, callback) |
| 132 local id = self:new_id(); | 131 local id = self:new_id(); |
| 133 self.tracked_iqs[id] = callback; | 132 self.tracked_iqs[id] = callback; |