Provided by: trafficserver-dev_7.1.2+ds-3_amd64 bug

NAME

       TSRemapInit - traffic Server remap plugin entry points

SYNOPSIS

       #include <ts/ts.h> #include <ts/remap.h>

       TSReturnCode TSRemapInit(TSRemapInterface * api_info, char * errbuf, int errbuf_size)

       void TSRemapDone(void)

       TSRemapStatus TSRemapDoRemap(void * ih, TSHttpTxn rh, TSRemapRequestInfo * rri)

       TSReturnCode  TSRemapNewInstance(int argc,  char  * argv[],  void  ** ih,  char  * errbuf,
       int errbuf_size)

       void TSRemapDeleteInstance(void *)

       void TSRemapOSResponse(void * ih, TSHttpTxn rh, int os_response_type)

DESCRIPTION

       The Traffic Server  remap  interface  provides  a  simplified  mechanism  for  plugins  to
       manipulate  HTTP  transactions.  A  remap  plugin  is  not  global;  it is configured on a
       per-remap rule basis, which enables you to customize how  URLs  are  redirected  based  on
       individual  rules in remap.config.  Writing a remap plugin consists of implementing one or
       more of the remap entry points and  configuring  remap.config  to  route  the  transaction
       through  your  plugin.  Multiple  remap  plugins can be specified for a single remap rule,
       resulting in a remap plugin chain where each plugin is given an opportunity to examine the
       HTTP transaction.

       TSRemapInit()  is  a  required entry point. This function will be called once when Traffic
       Server loads the plugin. If the optional TSRemapDone() entry point is  available,  Traffic
       Server will call then when unloading the remap plugin.

       A  remap  plugin  may  be  invoked for different remap rules. Traffic Server will call the
       entry point each time a plugin is specified in a remap rule. When a remap plugin  instance
       is no longer required, Traffic Server will call TSRemapDeleteInstance().

       TSRemapDoRemap()  is called for each HTTP transaction. This is a mandatory entry point. In
       this function, the remap plugin may examine and modify the HTTP transaction.

TYPES

       TSRemapStatus
              Status return value for remap callback.

              TSREMAP_DID_REMAP
                     The remap callback modified the request.

              TSREMAP_DID_REMAP_STOP
                     The remap callback modified the request and that no more remapping callbacks
                     should be invoked.

              TSREMAP_NO_REMAP
                     The remap callback did not modify the request.

              TSREMAP_NO_REMAP_STOP
                     The  remap callback did not modify the request and that no further remapping
                     callbacks should be invoked.

              TSREMAP_ERROR
                     The remapping attempt in general failed and the transaction should fail with
                     an error return to the user agent.

RETURN VALUES

       TSRemapInit()  and  TSRemapNewInstance() should return TS_SUCCESS on success, and TS_ERROR
       otherwise. A return value of TS_ERROR is unrecoverable.

       TSRemapDoRemap() returns a status code that indicates whether  the  HTTP  transaction  has
       been  modified  and  whether Traffic Server should continue to evaluate the chain of remap
       plugins. If the transaction was modified, the plugin should  return  TSREMAP_DID_REMAP  or
       TSREMAP_DID_REMAP_STOP;     otherwise     it    should    return    TSREMAP_NO_REMAP    or
       TSREMAP_NO_REMAP_STOP. If Traffic Server should not send  the  transaction  to  subsequent
       plugins  in  the  remap  chain,  return  TSREMAP_NO_REMAP_STOP  or TSREMAP_DID_REMAP_STOP.
       Returning TSREMAP_ERROR causes Traffic Server to  stop  evaluating  the  remap  chain  and
       respond with an error.

SEE ALSO

       TSAPI(3ts)

COPYRIGHT

       2018, dev@trafficserver.apache.org