proxy_scgi_objs="mod_proxy_scgi.lo"
proxy_fdpass_objs="mod_proxy_fdpass.lo"
proxy_ajp_objs="mod_proxy_ajp.lo ajp_header.lo ajp_link.lo ajp_msg.lo ajp_utils.lo"
-proxy_websocket_objs="mod_proxy_websocket.lo"
+proxy_tunnel_objs="mod_proxy_tunnel.lo"
proxy_balancer_objs="mod_proxy_balancer.lo"
case "$host" in
proxy_scgi_objs="$proxy_scgi_objs mod_proxy.la"
proxy_fdpass_objs="$proxy_fdpass_objs mod_proxy.la"
proxy_ajp_objs="$proxy_ajp_objs mod_proxy.la"
- proxy_websocket_objs="$proxy_websocket_objs mod_proxy.la"
+ proxy_tunnel_objs="$proxy_tunnel_objs mod_proxy.la"
proxy_balancer_objs="$proxy_balancer_objs mod_proxy.la"
;;
esac
enable_proxy_fdpass=no
fi
],proxy)
-APACHE_MODULE(proxy_websocket, Apache proxy websocket module. Requires and is enabled by --enable-proxy., $proxy_websocket_objs, , $proxy_mods_enable,, proxy)
+APACHE_MODULE(proxy_tunnel, Apache proxy tunnel module. Requires and is enabled by --enable-proxy., $proxy_tunnel_objs, , $proxy_mods_enable,, proxy)
APACHE_MODULE(proxy_ajp, Apache proxy AJP module. Requires and is enabled by --enable-proxy., $proxy_ajp_objs, , $proxy_mods_enable,, proxy)
APACHE_MODULE(proxy_balancer, Apache proxy BALANCER module. Requires and is enabled by --enable-proxy., $proxy_balancer_objs, , $proxy_mods_enable,, proxy)
#include "mod_proxy.h"
-module AP_MODULE_DECLARE_DATA proxy_websocket_module;
+module AP_MODULE_DECLARE_DATA proxy_tunnel_module;
/*
* Canonicalise http-like URLs.
* url is the URL starting with the first '/'
* def_port is the default port for this scheme.
*/
-static int proxy_websocket_canon(request_rec *r, char *url)
+static int proxy_tunnel_canon(request_rec *r, char *url)
{
char *host, *path, sport[7];
char *search = NULL;
apr_port_t port, def_port;
/* ap_port_of_scheme() */
- if (strncasecmp(url, "ws:", 3) == 0) {
- url += 3;
- scheme = "ws:";
+ if (strncasecmp(url, "tun:", 4) == 0) {
+ url += 4;
+ scheme = "tun:";
def_port = apr_uri_port_of_scheme("http");
}
- else if (strncasecmp(url, "wss:", 4) == 0) {
- url += 4;
- scheme = "wss:";
+ else if (strncasecmp(url, "tuns:", 5) == 0) {
+ url += 5;
+ scheme = "tuns:";
def_port = apr_uri_port_of_scheme("https");
}
else {
}
-static int proxy_websocket_transfer(request_rec *r, conn_rec *c_i, conn_rec *c_o,
+static int proxy_tunnel_transfer(request_rec *r, conn_rec *c_i, conn_rec *c_o,
apr_bucket_brigade *bb, char *name)
{
int rv;
/*
* process the request and write the response.
*/
-static int ap_proxy_websocket_request(apr_pool_t *p, request_rec *r,
+static int ap_proxy_tunnel_request(apr_pool_t *p, request_rec *r,
proxy_conn_rec *conn,
proxy_worker *worker,
proxy_server_conf *conf,
if (pollevent & APR_POLLIN) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO()
"sock was readable");
- rv = proxy_websocket_transfer(r, backconn, c, bb, "sock");
+ rv = proxy_tunnel_transfer(r, backconn, c, bb, "sock");
}
else if ((pollevent & APR_POLLERR)
|| (pollevent & APR_POLLHUP)) {
if (pollevent & APR_POLLIN) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO()
"client was readable");
- rv = proxy_websocket_transfer(r, c, backconn, bb, "client");
+ rv = proxy_tunnel_transfer(r, c, backconn, bb, "client");
}
}
else {
/*
*/
-static int proxy_websocket_handler(request_rec *r, proxy_worker *worker,
+static int proxy_tunnel_handler(request_rec *r, proxy_worker *worker,
proxy_server_conf *conf,
char *url, const char *proxyname,
apr_port_t proxyport)
apr_pool_t *p = r->pool;
apr_uri_t *uri;
- if (strncasecmp(url, "wss:", 4) == 0) {
- scheme = "WSS";
+ if (strncasecmp(url, "tuns:", 5) == 0) {
+ scheme = "TUNS";
}
- else if (strncasecmp(url, "ws:", 3) == 0) {
- scheme = "WS";
+ else if (strncasecmp(url, "tun:", 4) == 0) {
+ scheme = "TUN";
}
else {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO() "declining URL %s", url);
}
/* Step Three: Process the Request */
- status = ap_proxy_websocket_request(p, r, backend, worker, conf, uri, locurl,
+ status = ap_proxy_tunnel_request(p, r, backend, worker, conf, uri, locurl,
server_portstr);
break;
}
static void ap_proxy_http_register_hook(apr_pool_t *p)
{
- proxy_hook_scheme_handler(proxy_websocket_handler, NULL, NULL, APR_HOOK_FIRST);
- proxy_hook_canon_handler(proxy_websocket_canon, NULL, NULL, APR_HOOK_FIRST);
+ proxy_hook_scheme_handler(proxy_tunnel_handler, NULL, NULL, APR_HOOK_FIRST);
+ proxy_hook_canon_handler(proxy_tunnel_canon, NULL, NULL, APR_HOOK_FIRST);
}
-AP_DECLARE_MODULE(proxy_websocket) = {
+AP_DECLARE_MODULE(proxy_tunnel) = {
STANDARD20_MODULE_STUFF,
NULL, /* create per-directory config structure */
NULL, /* merge per-directory config structures */
-# Microsoft Developer Studio Project File - Name="mod_proxy_websocket" - Package Owner=<4>\r
+# Microsoft Developer Studio Project File - Name="mod_proxy_tunnel" - Package Owner=<4>\r
# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
# ** DO NOT EDIT **\r
\r
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
\r
-CFG=mod_proxy_websocket - Win32 Release\r
+CFG=mod_proxy_tunnel - Win32 Release\r
!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
!MESSAGE use the Export Makefile command and run\r
!MESSAGE \r
-!MESSAGE NMAKE /f "mod_proxy_websocket.mak".\r
+!MESSAGE NMAKE /f "mod_proxy_tunnel.mak".\r
!MESSAGE \r
!MESSAGE You can specify a configuration when running NMAKE\r
!MESSAGE by defining the macro CFG on the command line. For example:\r
!MESSAGE \r
-!MESSAGE NMAKE /f "mod_proxy_websocket.mak" CFG="mod_proxy_websocket - Win32 Release"\r
+!MESSAGE NMAKE /f "mod_proxy_tunnel.mak" CFG="mod_proxy_tunnel - Win32 Release"\r
!MESSAGE \r
!MESSAGE Possible choices for configuration are:\r
!MESSAGE \r
-!MESSAGE "mod_proxy_websocket - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")\r
-!MESSAGE "mod_proxy_websocket - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE "mod_proxy_tunnel - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE "mod_proxy_tunnel - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")\r
!MESSAGE \r
\r
# Begin Project\r
MTL=midl.exe\r
RSC=rc.exe\r
\r
-!IF "$(CFG)" == "mod_proxy_websocket - Win32 Release"\r
+!IF "$(CFG)" == "mod_proxy_tunnel - Win32 Release"\r
\r
# PROP BASE Use_MFC 0\r
# PROP BASE Use_Debug_Libraries 0\r
# PROP Ignore_Export_Lib 0\r
# PROP Target_Dir ""\r
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c\r
-# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_proxy_websocket_src" /FD /c\r
+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_proxy_tunnel_src" /FD /c\r
# ADD BASE MTL /nologo /D "NDEBUG" /win32\r
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
# ADD BASE RSC /l 0x809 /d "NDEBUG"\r
-# ADD RSC /l 0x409 /fo"Release/mod_proxy_websocket.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_proxy_websocket.so" /d LONG_NAME="proxy_websocket_module for Apache"\r
+# ADD RSC /l 0x409 /fo"Release/mod_proxy_tunnel.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_proxy_tunnel.so" /d LONG_NAME="proxy_tunnel_module for Apache"\r
BSC32=bscmake.exe\r
# ADD BASE BSC32 /nologo\r
# ADD BSC32 /nologo\r
LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /out:".\Release\mod_proxy_websocket.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_websocket.so\r
-# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_proxy_websocket.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_websocket.so /opt:ref\r
+# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /out:".\Release\mod_proxy_tunnel.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_tunnel.so\r
+# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_proxy_tunnel.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_tunnel.so /opt:ref\r
# Begin Special Build Tool\r
-TargetPath=.\Release\mod_proxy_websocket.so\r
+TargetPath=.\Release\mod_proxy_tunnel.so\r
SOURCE="$(InputPath)"\r
PostBuild_Desc=Embed .manifest\r
PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2\r
# End Special Build Tool\r
\r
-!ELSEIF "$(CFG)" == "mod_proxy_websocket - Win32 Debug"\r
+!ELSEIF "$(CFG)" == "mod_proxy_tunnel - Win32 Debug"\r
\r
# PROP BASE Use_MFC 0\r
# PROP BASE Use_Debug_Libraries 1\r
# PROP Ignore_Export_Lib 0\r
# PROP Target_Dir ""\r
# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c\r
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_proxy_websocket_src" /FD /c\r
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_proxy_tunnel_src" /FD /c\r
# ADD BASE MTL /nologo /D "_DEBUG" /win32\r
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
# ADD BASE RSC /l 0x809 /d "_DEBUG"\r
-# ADD RSC /l 0x409 /fo"Debug/mod_proxy_websocket.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_proxy_websocket.so" /d LONG_NAME="proxy_websocket_module for Apache"\r
+# ADD RSC /l 0x409 /fo"Debug/mod_proxy_tunnel.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_proxy_tunnel.so" /d LONG_NAME="proxy_tunnel_module for Apache"\r
BSC32=bscmake.exe\r
# ADD BASE BSC32 /nologo\r
# ADD BSC32 /nologo\r
LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_proxy_websocket.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_websocket.so\r
-# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_proxy_websocket.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_websocket.so\r
+# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_proxy_tunnel.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_tunnel.so\r
+# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_proxy_tunnel.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_tunnel.so\r
# Begin Special Build Tool\r
-TargetPath=.\Debug\mod_proxy_websocket.so\r
+TargetPath=.\Debug\mod_proxy_tunnel.so\r
SOURCE="$(InputPath)"\r
PostBuild_Desc=Embed .manifest\r
PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2\r
\r
# Begin Target\r
\r
-# Name "mod_proxy_websocket - Win32 Release"\r
-# Name "mod_proxy_websocket - Win32 Debug"\r
+# Name "mod_proxy_tunnel - Win32 Release"\r
+# Name "mod_proxy_tunnel - Win32 Debug"\r
# Begin Group "Source Files"\r
\r
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"\r
# Begin Source File\r
\r
-SOURCE=.\mod_proxy_websocket.c\r
+SOURCE=.\mod_proxy_tunnel.c\r
# End Source File\r
# End Group\r
# Begin Group "Header Files"\r