Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-2612

Introduce TSHttpConnectWithProtoStack() API

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: TS API
    • Labels:

      Description

      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:

        /**
            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);
      

      After introducing TSHttpConnectWithProtoStack() API, TSHttpConnect() API would be a special case of it:

      TSVConn
      TSHttpConnect(sockaddr const* addr)
      {
        return TSHttpConnectWithProtoStack(addr, (1u << TS_PROTO_HTTP));
      }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                yunkai Yunkai Zhang
                Reporter:
                yunkai Yunkai Zhang
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: