You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "James Peach (JIRA)" <ji...@apache.org> on 2014/04/10 01:28:15 UTC

[jira] [Updated] (TS-2612) Introduce TSHttpConnectWithProtoStack() API

     [ https://issues.apache.org/jira/browse/TS-2612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Peach updated TS-2612:
----------------------------

    Labels: api-addition  (was: api-addition review)

> Introduce TSHttpConnectWithProtoStack() API
> -------------------------------------------
>
>                 Key: TS-2612
>                 URL: https://issues.apache.org/jira/browse/TS-2612
>             Project: Traffic Server
>          Issue Type: New Feature
>          Components: TS API
>            Reporter: Yunkai Zhang
>            Assignee: Yunkai Zhang
>              Labels: api-addition
>             Fix For: 5.0.0
>
>         Attachments: 0004-TS-2612-Indroduce-TSHttpConnectWithProtoStack-API.patch
>
>
> This ticket was split from SPDY ticket(TS-2431), and it based on extended FetchSM ticket(TS-1062);
> For some plugins that using TSHttpConnect() API to do request, the Logging module can't know which protocol type is used, so I add a new API and relatived tyeps: 
> {code}
>   /**
>       TSClientProtoStack represents what protocols are used by
>       the client. It may be composed by several TSProtoType.
>       The value of TSProtoType indicates bit-offset that can
>       be mapped to TSClientProtoStack by bit shifting.
>       For example, TLS+SPDY can be mapped to protocol stack:
>         proto_stack = (1u << TS_PROTO_TLS) | (1u << TS_PROTO_SPDY)
>       For the sake of brevity, TS_PROTO_TCP is usually omitted in
>       protocol stack.
>    */
>   typedef enum {
>     /* Transport protocols (0~11) */
>     TS_PROTO_UDP = 0,
>     TS_PROTO_TCP = 1, 
>     TS_PROTO_TLS = 2,   /* TLS/SSL */
>    
>     /* Application protocols (12~31) */ 
>     TS_PROTO_HTTP = 12,
>     TS_PROTO_SPDY = 13,
>     TS_PROTO_RTMP = 14,
>     TS_PROTO_WBSK = 15, /* WebSocket */
>   } TSProtoType;
>   typedef uint32_t TSClientProtoStack;
>   tsapi TSVConn TSHttpConnectWithProtoStack(struct sockaddr const* addr, TSClientProtoStack proto_stack);
> {code}
> After introducing TSHttpConnectWithProtoStack() API, TSHttpConnect() API would be a special case of it:
> {code}
> TSVConn
> TSHttpConnect(sockaddr const* addr)
> {
>   return TSHttpConnectWithProtoStack(addr, (1u << TS_PROTO_HTTP));
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)