Spdy/H2 are different - they also have a stream flag set which is handled 
differently in FetchSM.


> On Sep 7, 2016, at 6:27 PM, James Peach <jpe...@apache.org> wrote:
> 
> 
>> On Sep 7, 2016, at 5:48 PM, Sudheer Vinukonda 
>> <sudheervinuko...@yahoo.com.INVALID> wrote:
>> 
>> Can you describe the real purpose of allowing to change if a transaction is 
>> external/internal - for example, is it merely for recording/metrics or is it 
>> for a more significant functional purpose?
> 
> It is both. If a request is logically from a client then the @internal 
> remap.config filter should deny, the stale_while_revalidate plugin should not 
> ignore it, and it should be generally treated as if the protocol plugin did 
> not intermediate. “internal” carries the string connotation that this is a 
> trusted or special transaction, which is not true for protocol plugins.
> 
>> 
>> Atleast, in the current implementation, allowing arbitrary control of the 
>> internal state of a txn sounds dangerous to me - I recall some funky 
>> handling of some headers (Connection/Keep Alive) and some special handling 
>> for POST method etc. This API may expose problems from that code.
> 
> I don’t think this is any different from allowing SPDY or HTTP/2 to mark 
> their transactions as non-internal.
> 
>> 
>> Thanks,
>> 
>> Sudheer
>> 
>>> On Sep 7, 2016, at 5:24 PM, James Peach <jpe...@apache.org> wrote:
>>> 
>>> Hi all,
>>> 
>>> It is common to write protocol plugins that accept a non-HTTP protocol and 
>>> generate HTTP request using TSHttpConnectWithPluginId(). In this case, 
>>> although the HTTP transaction is technically an internal transaction, it is 
>>> logically external since it is generated directly on behalf of clients. To 
>>> address this, I'd like to propose an API to allow plugins to toggle whether 
>>> a transaction is considered internal or not.
>>> 
>>>  tsapi void TSVConnInternalSet(TSVConn connp, int internal);
>>> 
>>> The sample usage is straightforward:
>>> 
>>>  TSVConn vc = TSHttpConnectWithPluginId(addr, "plugin-name", 0);
>>>  TSVConnInternalSet(vc, false);
>>> 
>>> The corresponding implementation is 
>>> https://github.com/apache/trafficserver/pull/986 and the Jira ticket is 
>>> https://issues.apache.org/jira/browse/TS-4825. I'll add a manual page 
>>> before committing.
>>> 
>>> thanks,
>>> James
> 

Reply via email to