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)