Ron Barber created TS-2656:
------------------------------

             Summary: Add API to get/set the server connection scheme
                 Key: TS-2656
                 URL: https://issues.apache.org/jira/browse/TS-2656
             Project: Traffic Server
          Issue Type: Improvement
            Reporter: Ron Barber


ATS currently sets the server connection scheme (sm->t_state.scheme) after 
remapping has occurred based on the server URL.  Plugin's that desire to modify 
the connection scheme after remapping (such as in the TS_EVENT_HTTP_OS_DNS 
event) have no method to do so.  I propose adding the following getter/setter 
API functions:

{code}
    /**
      Retrieves the server connection scheme for the specified
      transaction @a txnp.  TSHttpTxnServerSchemeGet() places the length of
      the string in the length argument. If the length is NULL then no
      attempt is made to dereference it.

      @note This function is useful if the server connection scheme needs to
      retrieved post remapping.

      @param txnp The transaction whose connection scheme to be retrieved
      @param length length of the returned string.
      @return The connection scheme for the server connection, as a string, or 
NULL if not set.

   */
  tsapi const char* TSHttpTxnServerSchemeGet(TSHttpTxn txnp, int *length);

/** Set the connection scheme to the server (http or https) for the
      specified transaction @a txnp to the string value.  If length is -1
      then TSHttpTxnServerSchemeSet() assumes that value is null-terminated.
      Otherwise, the length of the string value is taken to be length.

      @note This function is useful if the server connection scheme needs to
      change post remapping.

      @param txnp The transaction whose connection scheme to be set
      @param value value to set the scheme to.
      @param length string stored in value.

      @return @c TS_SUCCESS if scheme is recognized, else @c TS_ERROR
  */
  tsapi TSReturnCode TSHttpTxnServerSchemeSet(TSHttpTxn txnp,
                                              const char* value,
                                              int length);
{code}



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

Reply via email to