plucky (3) TSHttpConnectPlugin.3ts.gz

Provided by: trafficserver-dev_9.2.5+ds-1_amd64 bug

NAME

       TSHttpConnectPlugin  -  allows  the  plugin  to initiate an http connection. This will tag the HTTP state
       machine with extra data that can be accessed by  the  logging  interface.  Additional  arguments  provide
       buffer  settings  that  are  used  when  constructing  IOBuffers.  The  connection  is treated as an HTTP
       transaction as if it came from a client

SYNOPSIS

          #include <ts/ts.h>

       TSVConn TSHttpConnectPlugin(TSHttpConnectOptions *options);

DESCRIPTION

       This call attempts to create an HTTP state machine and a virtual connection to that state  machine.  This
       is  more  efficient  than using TSNetConnect() because it avoids using the operating system stack via the
       loopback interface.

       options
              A TSHttpConnectOptions structure that contains fields that provide  the  network  address  of  the
              target,  a  tag  that can be passed through to the HTTP state machine, a plugin ID, a buffer index
              and buffer water mark.

       The virtual connection returned as the TSVConn is API equivalent to a network virtual connection both  to
       the  plugin  and  to  internal  mechanisms. Data is read and written to the connection (and thence to the
       target system) by reading and writing on this virtual connection.

       NOTE:
          This function only opens the connection. To drive the transaction an actual HTTP request must be  sent
          and  the  HTTP  response handled. The transaction is handled as a standard HTTP transaction and all of
          the standard configuration options and plugins will operate on it.

       The combination of tag and id is  intended  to  enable  correlation  in  log  post  processing.  The  tag
       identifies  the  connection  as  related  to the plugin and the id can be used in conjunction with plugin
       generated logs to correlate the log records.

NOTES

       The H2 implementation uses this to correlate client sessions with H2 streams. Each client  connection  is
       assigned  a  distinct numeric identifier. This is passed in the options structure via the member variable
       id to the TSHttpConnectPlugin() function.  The tag is selected to  be  the  NPN  string  for  the  client
       session protocol, e.g. "h2". Log post processing can then count the number of connections for the various
       supported protocols and the number of H2 virtual streams for  each  real  client  connection  to  Traffic
       Server.

SEE ALSO

       TSHttpConnectWithPluginId(3ts), TSHttpConnect(3ts), TSNetConnect(3ts), TSAPI(3ts)

       2024, dev@trafficserver.apache.org