Provided by: trafficserver-dev_5.3.0-2ubuntu2_amd64 bug

NAME

       TSHttpConnectWithPluginID  -  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.
       The connection is treated as an HTTP transaction as if it came from a client

SYNOPSIS

       #include <ts/ts.h>

       TSVConn TSHttpConnectWithPluginId(sockaddr const *addr, char const* tag, int64_t id)

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.

       addr   This  is  the  network  address of the target of the connection.  This includes the
              port which should be stored in the sockaddr structure pointed at by addr.

       tag    This is a tag that is passed through to the HTTP  state  machine.   It  must  be  a
              persistent  string that has a lifetime longer than the connection. It is accessible
              via the log field pitag. This is intended as a class or  type  identifier  that  is
              consistent  across  all  connections  for  this  plugin. In effect, the name of the
              plugin. This can be NULL.

       id     This is a numeric identifier that is passed through to the HTTP state  machine.  It
              is  accessible  via the log field piid. This is intended as a connection identifier
              and should be distinct for every call to TSHttpConnectWithPluginId().  The  easiest
              mechanism  is to define a plugin global value and increment it for each connection.
              The value 0 is reserved to mean "not set" and can be used  as  a  default  if  this
              functionality is not needed.

       The  virtual  connection  returned  as  the TSCVonn 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
       conjuction with plugin generated logs to correlate the log records.

NOTES

       The SPDY implementation uses this to correlate client sessions  with  SPDY  streams.  Each
       client  connection  is assigned a distinct numeric identifier. This is passed as the id to
       TSHttpConnectWithPluginId(). The tag is selected to be  the  NPN  string  for  the  client
       session  protocol,  e.g.   "spdy/3"  or "spdy/3.1". Log post processing can then count the
       number of connections for the various supported protocols and the number of  SPDY  virtual
       streams for each real client connection to Traffic Server.

SEE ALSO

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

COPYRIGHT

       2014, dev@trafficserver.apache.org