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)
- 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.
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¶
2015, dev@trafficserver.apache.org