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

Introduce TSHttpConnectWithProtoStack() API

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • TS API

    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

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

              Dates

                Created:
                Updated:
                Resolved: