client.lua

changeset 323
5bf3b13edb80
parent 282
52b971d9ebc3
child 329
2787e038bea2
--- 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:stream>");
+		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("</stream:stream>");
+			self.notopen = true;
+		else
+			return self:close(reason);
 		end
-		return _base_close(self);
 	end
 	
 	local function start_connect()

mercurial