net/server_event.lua
changeset 11745 dcf38ac6a38c
parent 11072 988ddd57e851
child 12391 05c250fa335a
equal deleted inserted replaced
11744:b92f2abe0bda 11745:dcf38ac6a38c
   447 	self.ontimeout = listener.ontimeout;
   447 	self.ontimeout = listener.ontimeout;
   448 	self.onreadtimeout = listener.onreadtimeout;
   448 	self.onreadtimeout = listener.onreadtimeout;
   449 	self.onstatus = listener.onstatus;
   449 	self.onstatus = listener.onstatus;
   450 	self.ondetach = listener.ondetach;
   450 	self.ondetach = listener.ondetach;
   451 	self.onattach = listener.onattach;
   451 	self.onattach = listener.onattach;
       
   452 	self.onpredrain = listener.onpredrain;
   452 	self.ondrain = listener.ondrain;
   453 	self.ondrain = listener.ondrain;
   453 	self:onattach(data);
   454 	self:onattach(data);
   454 end
   455 end
   455 
   456 
   456 -- Stub handlers
   457 -- Stub handlers
   461 function interface_mt:ondisconnect()
   462 function interface_mt:ondisconnect()
   462 end
   463 end
   463 function interface_mt:ontimeout()
   464 function interface_mt:ontimeout()
   464 end
   465 end
   465 function interface_mt:onreadtimeout()
   466 function interface_mt:onreadtimeout()
       
   467 end
       
   468 function interface_mt:onpredrain()
   466 end
   469 end
   467 function interface_mt:ondrain()
   470 function interface_mt:ondrain()
   468 end
   471 end
   469 function interface_mt:ondetach()
   472 function interface_mt:ondetach()
   470 end
   473 end
   488 		onconnect = listener.onconnect;  -- will be called when client disconnects
   491 		onconnect = listener.onconnect;  -- will be called when client disconnects
   489 		ondisconnect = listener.ondisconnect;  -- will be called when client disconnects
   492 		ondisconnect = listener.ondisconnect;  -- will be called when client disconnects
   490 		onincoming = listener.onincoming;  -- will be called when client sends data
   493 		onincoming = listener.onincoming;  -- will be called when client sends data
   491 		ontimeout = listener.ontimeout; -- called when fatal socket timeout occurs
   494 		ontimeout = listener.ontimeout; -- called when fatal socket timeout occurs
   492 		onreadtimeout = listener.onreadtimeout; -- called when socket inactivity timeout occurs
   495 		onreadtimeout = listener.onreadtimeout; -- called when socket inactivity timeout occurs
       
   496 		onpredrain = listener.onpredrain; -- called before writes
   493 		ondrain = listener.ondrain; -- called when writebuffer is empty
   497 		ondrain = listener.ondrain; -- called when writebuffer is empty
   494 		ondetach = listener.ondetach; -- called when disassociating this listener from this connection
   498 		ondetach = listener.ondetach; -- called when disassociating this listener from this connection
   495 		onstatus = listener.onstatus; -- called for status changes (e.g. of SSL/TLS)
   499 		onstatus = listener.onstatus; -- called for status changes (e.g. of SSL/TLS)
   496 		eventread = false, eventwrite = false, eventclose = false,
   500 		eventread = false, eventwrite = false, eventclose = false,
   497 		eventhandshake = false, eventstarthandshake = false;  -- event handler
   501 		eventhandshake = false, eventstarthandshake = false;  -- event handler
   538 				if interface.eventwritetimeout then  -- luasec only
   542 				if interface.eventwritetimeout then  -- luasec only
   539 					interface.eventwritetimeout:close( )  -- first we have to close timeout event which where regged after a wantread error
   543 					interface.eventwritetimeout:close( )  -- first we have to close timeout event which where regged after a wantread error
   540 					interface.eventwritetimeout = false
   544 					interface.eventwritetimeout = false
   541 				end
   545 				end
   542 			end
   546 			end
       
   547 			interface:onpredrain();
   543 			interface.writebuffer = { t_concat(interface.writebuffer) }
   548 			interface.writebuffer = { t_concat(interface.writebuffer) }
   544 			local succ, err, byte = interface.conn:send( interface.writebuffer[1], 1, interface.writebufferlen )
   549 			local succ, err, byte = interface.conn:send( interface.writebuffer[1], 1, interface.writebufferlen )
   545 			--vdebug( "write data:", interface.writebuffer, "error:", err, "part:", byte )
   550 			--vdebug( "write data:", interface.writebuffer, "error:", err, "part:", byte )
   546 			if succ then  -- writing successful
   551 			if succ then  -- writing successful
   547 				interface.writebuffer[1] = nil
   552 				interface.writebuffer[1] = nil