Merge with 0.7
[prosody.git] / net / server_event.lua
index 610c2e7a2254f72a4b96e6039f6c1b3e9c1cea2b..d041ae4381527d909ae2b3d2cce63ec420031e4a 100644 (file)
@@ -262,7 +262,7 @@ do
                                _ = self.eventsession and self.eventsession:close( )
                                _ = self.eventwritetimeout and self.eventwritetimeout:close( )
                                _ = self.eventreadtimeout and self.eventreadtimeout:close( )
-                               _ = self.ondisconnect and self:ondisconnect( self.fatalerror )  -- call ondisconnect listener (wont be the case if handshake failed on connect)
+                               _ = self.ondisconnect and self:ondisconnect( self.fatalerror ~= "client to close" and self.fatalerror)  -- call ondisconnect listener (wont be the case if handshake failed on connect)
                                _ = self.conn and self.conn:close( ) -- close connection, must also be called outside of any socket registered events!
                                _ = self._server and self._server:counter(-1);
                                self.eventread, self.eventwrite = nil, nil
@@ -281,6 +281,10 @@ do
                        self.nointerface, self.noreading, self.nowriting = nointerface, noreading, nowriting
                        return nointerface, noreading, nowriting
        end
+       
+       function interface_mt:lock_read(switch)
+               return self:_lock(self.nointerface, switch, self.nowriting);
+       end
 
        function interface_mt:counter(c)
                if c then