Skip to content
  • deuce's avatar
    e38cf4ae
    Various fixups with an eye to reducing latency and fixing ping timeouts · e38cf4ae
    deuce authored
    1) Don't use socket.recvline() on non-blocking sockets.  Instead, have
       the recvq object parse lines and receive 64k at a time.
    2) Pass all received data through the recvq object rather than attempt
       to process one command per recv().
    3) Pass all data sent on established connections through the sendq
       object rather than only use it if send() fails.
    4) Move client throttling completely into ircd_user.js and out of
       the queue processing function so we don't accidentally throttle
       server connections.
    5) send() the entire sendq contents as a single send() rather than one
       line per main loop.
    6) Parse the entire recvq each time through the main loop.  This
       requires tracking when an unregistered connection is replaced by
       either a client or a server connection.
    e38cf4ae
    Various fixups with an eye to reducing latency and fixing ping timeouts
    deuce authored
    1) Don't use socket.recvline() on non-blocking sockets.  Instead, have
       the recvq object parse lines and receive 64k at a time.
    2) Pass all received data through the recvq object rather than attempt
       to process one command per recv().
    3) Pass all data sent on established connections through the sendq
       object rather than only use it if send() fails.
    4) Move client throttling completely into ircd_user.js and out of
       the queue processing function so we don't accidentally throttle
       server connections.
    5) send() the entire sendq contents as a single send() rather than one
       line per main loop.
    6) Parse the entire recvq each time through the main loop.  This
       requires tracking when an unregistered connection is replaced by
       either a client or a server connection.
Loading