Provided by: dnsjit_1.3.0-1build2_amd64 bug

NAME

       dnsjit.output.tcpcli - Simple, length aware, TCP client

SYNOPSIS

         local output = require("dnsjit.output.tcpcli").new("127.0.0.1", "53")

DESCRIPTION

       Simple  TCP  client that takes any payload you give it, sends the length of the payload as
       an unsigned 16 bit integer and then sends the  payload.   When  receiving  it  will  first
       retrieve  the  length of the payload as an unsigned 16 bit integer and it will stall until
       it gets, even if nonblocking mode is used.  Then it will retrieve at least that amount  of
       bytes,  if  nonblocking mode is used here then it will return a payload object with length
       zero if there was nothing to receive or if the full payload have not  been  received  yet.
       Additional calls will continue retrieving the payload.

   Attributes
       timeout
              A core.timespec that is used when producing objects.

   Functions
       Tcpcli.new()
              Create a new Tcpcli output.

       Tcpcli:timeout(seconds, nanoseconds)
              Set the timeout when producing objects.

       Tcpcli:connect(host, port)
              Connect to the host and port and return 0 if successful.

       Tcpcli:nonblocking(bool)
              Enable  (true)  or  disable (false) nonblocking mode and return 0 if successful, if
              bool is not specified then return if nonblocking mode is on (true) or off (false).

       Tcpcli:receive()
              Return the C functions and context for receiving objects,  these  objects  will  be
              sent.

       Tcpcli:produce()
              Return  the  C  functions  and  context  for  producing  objects, these objects are
              received.  If nonblocking mode is enabled the producer will return a payload object
              with  length  zero  if there was nothing to receive or if the full payload have not
              been received yet.  If nonblocking mode is disabled the producer will wait for data
              and  if  timed  out (see timeout) it will return a payload object with length zero.
              If a timeout happens during during the first stage, getting  the  length,  it  will
              fail  and  return nil.  Additional calls will continue retrieving the payload.  The
              producer returns nil on error.

       Tcpcli:packets()
              Return the number of  "packets"  sent,  actually  the  number  of  completely  sent
              payloads.

       Tcpcli:received()
              Return the number of "packets" received, actually the number of completely received
              DNS messages.

       Tcpcli:errors()
              Return the number of errors when sending.

AUTHORS and CONTRIBUTORS

       Jerry Lundström (DNS-OARC), Tomáš Křížek (CZ.NIC), Petr Špaček (ISC)

       Maintained by DNS-OARC

              https://www.dns-oarc.net/

BUGS

       For issues and feature requests please use:

              https://github.com/DNS-OARC/dnsjit/issues

       For question and help please use:

              admin@dns-oarc.net