Hi all,

While poking around, looking for a way to turn off logging for a single 
transaction (to effectively sample logging activity), I stumbled upon this API 
in experimental.h:

tsapi TSReturnCode TSHttpTxnCntl(TSHttpTxn txnp, TSHttpCntlType cntl, void 
*data);


The intent here was obviously to create a single, generic API to control 
various behavior of a transaction. It currently only supports two such controls:

    * Enabling / disabling logging (sm->t_state.api_info.logging_enabled)
    * Retry intercept failures (sm->t_state.api_info.retry_intercept_failures)


There is currently no use of either of these in the core, except that the Lua 
plugin supports both. I need the first one of these, and I see two options:

    1. Promote TSHttpTxnCntl() from experimental to stable (i.e. move from 
experimental -> ts.h). This API is very old, it’s likely been here forever.

    2. Deprecate TSHttpTxnCntl(), and create two new APIs for Set() and Get() 
of these respective “controls”.


I’m ok either way, but I think that if we promote TSHttpTxnCntl() to stable, we 
should also consider deprecating the following APIs, and add the as controls 
for TSHttpTxnCntl() instead:


    tsapi void TSHttpTxnRespCacheableSet(TSHttpTxn txnp, int flag);
    tsapi void TSHttpTxnReqCacheableSet(TSHttpTxn txnp, int flag);
    tsapi TSReturnCode TSHttpTxnServerRespNoStoreSet(TSHttpTxn txnp, int flag); 
// Maybe ??
    tsapi void TSHttpTxnDebugSet(TSHttpTxn txnp, int on);
    tsapi void TSHttpSsnDebugSet(TSHttpSsn ssnp, int on); // Maybe ??
    tsapi void TSSkipRemappingSet(TSHttpTxn txnp, int flag);


If we do that, adding more of these controls (on/off) toggles to the API would 
be done through TSHttpTxnCntl().


Thoughts?

— Leif

Reply via email to