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 |