Hi all,

Please take a minute to review the following proposed plugin API to support the 
TLS Next Protocol Negotiation extension, 
https://issues.apache.org/jira/browse/TS-841.

If there are no objections in the next day or so, I will commit.

  /* --------------------------------------------------------------------------
     TLS Next Protocol well-known protocol names. */
  extern tsapi const char * TS_NPN_PROTOCOL_HTTP_1_0;
  extern tsapi const char * TS_NPN_PROTOCOL_HTTP_1_1;
  extern tsapi const char * TS_NPN_PROTOCOL_SPDY_1;
  extern tsapi const char * TS_NPN_PROTOCOL_SPDY_2;
  extern tsapi const char * TS_NPN_PROTOCOL_SPDY_3;


  /**
    Listen on all SSL ports for connections for the specified protocol name.

    TSNetAcceptNamedProtocol registers the specified protocol for all
    statically configured TLS ports. When a client using the TLS Next Protocol
    Negotiation extension negotiates the requested protocol, TrafficServer will
    route the request to the given handler. Note that the protocol is not
    registered on ports opened by other plugins.

    The event and data provided to the handler are the same as for
    TSNetAccept(). If a connection is successfully accepted, the event code
    will be TS_EVENT_NET_ACCEPT and the event data will be a valid TSVConn
    bound to the accepted connection.

    TSNetAcceptNamedProtocol fails if the requested protocol cannot be
    registered on all of the configured TLS ports. If it fails, the protocol
    will not be registered on any ports (ie.. no partial failure).
  */
  tsapi TSReturnCode TSNetAcceptNamedProtocol(TSCont contp, const char * 
protocol);

thanks,
James

Reply via email to