673 _socketlist[ socket ] = nil |
673 _socketlist[ socket ] = nil |
674 socket:close( ) |
674 socket:close( ) |
675 --mem_free( ) |
675 --mem_free( ) |
676 end |
676 end |
677 |
677 |
|
678 local function link(sender, receiver, buffersize) |
|
679 sender:set_mode(buffersize); |
|
680 local sender_locked; |
|
681 local _sendbuffer = receiver.sendbuffer; |
|
682 function receiver.sendbuffer() |
|
683 _sendbuffer(); |
|
684 if sender_locked and receiver.bufferlen() < buffersize then |
|
685 sender:lock_read(false); -- Unlock now |
|
686 sender_locked = nil; |
|
687 end |
|
688 end |
|
689 |
|
690 local _readbuffer = sender.readbuffer; |
|
691 function sender.readbuffer() |
|
692 _readbuffer(); |
|
693 if not sender_locked and receiver.bufferlen() >= buffersize then |
|
694 sender_locked = true; |
|
695 sender:lock_read(true); |
|
696 end |
|
697 end |
|
698 end |
|
699 |
678 ----------------------------------// PUBLIC //-- |
700 ----------------------------------// PUBLIC //-- |
679 |
701 |
680 addserver = function( addr, port, listeners, pattern, sslctx ) -- this function provides a way for other scripts to reg a server |
702 addserver = function( addr, port, listeners, pattern, sslctx ) -- this function provides a way for other scripts to reg a server |
681 local err |
703 local err |
682 if type( listeners ) ~= "table" then |
704 if type( listeners ) ~= "table" then |
896 |
918 |
897 addclient = addclient, |
919 addclient = addclient, |
898 wrapclient = wrapclient, |
920 wrapclient = wrapclient, |
899 |
921 |
900 loop = loop, |
922 loop = loop, |
|
923 link = link, |
901 stats = stats, |
924 stats = stats, |
902 closeall = closeall, |
925 closeall = closeall, |
903 addtimer = addtimer, |
926 addtimer = addtimer, |
904 addserver = addserver, |
927 addserver = addserver, |
905 getserver = getserver, |
928 getserver = getserver, |