Commit 570a4e6b authored by Eric Covener's avatar Eric Covener
Browse files

Merge from trunk:

Add upgrade parameter to mod_proxy_wstunnel.
That allows to upgrade to jboss-remoting for example
or to run an HTTP/1.1 backend that needs to upgrade to
WebSocket.
See also:
 https://issues.jboss.org/browse/JBCS-254
 https://issues.jboss.org/browse/JBCS-291


whitespace only

Submitted By: jfclere
Reviewed By: covener, jim, ylavic




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1797650 13f79535-47bb-0310-9956-ffa450edef68
parent 9d6a8db3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

Changes with Apache 2.4.26

  *) mod_proxy_wstunnel: Add "upgrade" parameter to allow upgrade to other
     protocols.  [Jean-Frederic Clere]

  *) MPMs unix: Place signals handlers and helpers out of DSOs to avoid
     a possible crash if a signal is caught during (graceful) restart.
     PR 60487.  [Yann Ylavic]
+0 −7
Original line number Diff line number Diff line
@@ -120,13 +120,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

  *) proxy_wstunnel: Restore ability to process other Upgrade: protocols which was
     blocked in r1674632/r1674661.
     trunk patch: http://svn.apache.org/r1792092
                  http://svn.apache.org/r1796864
     2.4.x patch: svn merge -c  1792092,1796864 ^/httpd/httpd/trunk .
     +1: covener, jim, ylavic

  *) worker, prefork: save some cycles by not copying the listener's pollfds
                      for each pollset operation
     trunk patch: http://svn.apache.org/r1662437
+10 −0
Original line number Diff line number Diff line
@@ -1189,6 +1189,16 @@ ProxyPass "/mirror/foo" "http://backend.example.com"
        <td><p>Name of the provider used by <module>mod_proxy_fdpass</module>.
        See the documentation of this module for more details.</p>
    </td></tr>
    <tr><td>secret</td>
        <td>-</td>
        <td><p>Value of secret used by <module>mod_proxy_ajp</module>.
        See the documentation of this module for more details.</p>
    </td></tr>
    <tr><td>upgrade</td>
        <td>WebSocket</td>
        <td><p>Protocol accepted in the Upgrade header by <module>mod_proxy_wstunnel</module>.
        See the documentation of this module for more details.</p>
    </td></tr>

    </table>

+5 −0
Original line number Diff line number Diff line
@@ -51,6 +51,11 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"
    </highlight>

<p>Load balancing for multiple backends can be achieved using <module>mod_proxy_balancer</module>.</p>

<p>In fact the module can be used to upgrade to other protocols, you can set the <code>upgrade</code>
parameter in the <directive type="ProxyPass" module="mod_proxy">ProxyPass</directive>
directive to allow the module to accept other protocol.
NONE means you bypass the check for the header but still upgrade to WebSocket.</p>
</summary>

<seealso><module>mod_proxy</module></seealso>
+6 −0
Original line number Diff line number Diff line
@@ -308,6 +308,12 @@ static const char *set_worker_param(apr_pool_t *p,
                    (int)sizeof(worker->s->flusher));
        PROXY_STRNCPY(worker->s->flusher, val);
    }
    else if (!strcasecmp(key, "upgrade")) {
        if (PROXY_STRNCPY(worker->s->upgrade, val) != APR_SUCCESS) {
            return apr_psprintf(p, "upgrade protocol length must be < %d characters",
                                (int)sizeof(worker->s->upgrade));
        }
    }
    else {
        if (set_worker_hc_param_f) {
            return set_worker_hc_param_f(p, s, worker, key, val, NULL);
Loading