diff -r 819b35b8fcf6 -r 5bf3b13edb80 client.lua --- a/client.lua Sun Feb 10 02:50:02 2013 +0100 +++ b/client.lua Sun Feb 10 02:53:03 2013 +0100 @@ -32,7 +32,12 @@ end function stream_callbacks.streamclosed(stream) - return stream:event("closed"); + if not stream.notopen then + stream:send(""); + stream.notopen = true; + end + stream:event("closed"); + return stream:close("stream closed") end function stream_callbacks.handlestanza(stream, stanza) @@ -129,10 +134,13 @@ local _base_close = self.close; function self:close(reason) + self.close = _base_close; if not self.notopen then self:send(""); + self.notopen = true; + else + return self:close(reason); end - return _base_close(self); end local function start_connect()