> On Jul 28, 2016, at 7:38 PM, James Peach <jpe...@apache.org> wrote:
> 
>> 
>> On Jul 24, 2016, at 11:08 PM, Oliver Goodman <o...@optusnet.com.au> wrote:
>> 
>> JIRA issue TS-4698 and pull request 
>> https://github.com/apache/trafficserver/pull/822 propose to add a TS API 
>> function to determine whether the current client request represents a 
>> websocket connection attempt.
>> 
>> The motivation: I’ve been working on a C++ API intercept plugin which, among 
>> other things, is able to terminate websocket connections. I thought it might 
>> be of interest to contribute a websocket termination example (see TS-4699 
>> and the associated pull request 
>> https://github.com/apache/trafficserver/pull/824).
>> 
>> In order for such a plugin to determine whether the incoming connection is a 
>> websocket connection it seems appropriate that
>> * it use the same test that TS already uses internally to make this 
>> decision, and that
>> * the ‘official correct way’ to make this decision be exposed through an API 
>> function.
>> 
>> For this purpose I’m proposing to add a function called 
>> TSHttpTxnIsWebsocket. It takes a TSHttpTxn and returns a C int, to be 
>> interpreted as a bool in the standard C way, namely non-zero means true.
> 
> Thanks Oliver. This API looks OK to me, I haven’t reviewed the documentation 
> yet, but we should make sure to be clear when in the state machine this API 
> will return valid results.
> 
> Can we get consensus on whether this should return “int” or “TSReturnCode”?
> 
> jpeach$ grep 'TS.*Is.*' proxy/api/ts/ts.h
> tsapi int TSVConnIsSsl(TSVConn sslp);
> /** @deprecated to be renamed as TSHttpTxnIsInternal **/
> tsapi TS_DEPRECATED TSReturnCode TSHttpIsInternalRequest(TSHttpTxn txnp);
> /** @deprecated to be renamed as TSHttpSsnIsInternal **/
> tsapi TS_DEPRECATED TSReturnCode TSHttpIsInternalSession(TSHttpSsn ssnp);
> tsapi TSReturnCode TSHttpTxnIsInternal(TSHttpTxn txnp);
> tsapi TSReturnCode TSHttpSsnIsInternal(TSHttpSsn ssnp);
> tsapi int TSIsDebugTagSet(const char *t);
> tsapi int TSHttpTxnIsCacheable(TSHttpTxn txnp, TSMBuffer request, TSMBuffer 
> response);
> 
> TSHttpSsnIsInternal is the most recent so I think we should prefer 
> TSReturnCode for new code?

OK, we are going to prefer TSReturnCode for these APIs. I’ll review the PR 
again next week and land this soon after. Thanks Oliver.

J


Reply via email to