From 3032fea1855279b3678539c5d1924dd4b29273fc Mon Sep 17 00:00:00 2001 From: Ian Holsman Date: Fri, 11 May 2001 17:32:41 +0000 Subject: [PATCH] Allows Mod_proxy to be dynamically loaded on win32 systems PR: Obtained from: Submitted by: ianh Reviewed by: Chuck Murcko, Graham git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89085 13f79535-47bb-0310-9956-ffa450edef68 --- modules/proxy/mod_proxy.dsp | 24 ++----- modules/proxy/mod_proxy.h | 42 ++++++------- modules/proxy/proxy_connect.c | 8 +-- modules/proxy/proxy_connect.dsp | 107 ++++++++++++++++++++++++++++++++ modules/proxy/proxy_ftp.c | 12 ++-- modules/proxy/proxy_ftp.dsp | 107 ++++++++++++++++++++++++++++++++ modules/proxy/proxy_http.c | 8 +-- modules/proxy/proxy_http.dsp | 107 ++++++++++++++++++++++++++++++++ modules/proxy/proxy_util.c | 42 ++++++------- 9 files changed, 383 insertions(+), 74 deletions(-) create mode 100644 modules/proxy/proxy_connect.dsp create mode 100644 modules/proxy/proxy_ftp.dsp create mode 100644 modules/proxy/proxy_http.dsp diff --git a/modules/proxy/mod_proxy.dsp b/modules/proxy/mod_proxy.dsp index d57baaa0e5..e55c68de8f 100644 --- a/modules/proxy/mod_proxy.dsp +++ b/modules/proxy/mod_proxy.dsp @@ -43,7 +43,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MD /W3 /O2 /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_proxy" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PROXY_DECLARE_EXPORT" /Fd"Release\mod_proxy" /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x809 /d "NDEBUG" @@ -52,8 +52,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /out:"Release/mod_proxy.so" /machine:I386 /base:@..\..\os\win32\BaseAddr.ref,mod_proxy -# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /out:"Release/mod_proxy.so" /machine:I386 /base:@..\..\os\win32\BaseAddr.ref,mod_proxy +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/mod_proxy.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/mod_proxy.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy !ELSEIF "$(CFG)" == "mod_proxy - Win32 Debug" @@ -69,7 +69,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_proxy" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PROXY_DECLARE_EXPORT" /Fd"Debug\mod_proxy" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x809 /d "_DEBUG" @@ -78,8 +78,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /out:"Debug/mod_proxy.so" /machine:I386 /base:@..\..\os\win32\BaseAddr.ref,mod_proxy -# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /out:"Debug/mod_proxy.so" /machine:I386 /base:@..\..\os\win32\BaseAddr.ref,mod_proxy +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_proxy.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_proxy.so" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy !ENDIF @@ -96,18 +96,6 @@ SOURCE=.\mod_proxy.c # End Source File # Begin Source File -SOURCE=.\proxy_connect.c -# End Source File -# Begin Source File - -SOURCE=.\proxy_ftp.c -# End Source File -# Begin Source File - -SOURCE=.\proxy_http.c -# End Source File -# Begin Source File - SOURCE=.\proxy_util.c # End Source File # End Group diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h index c614605a36..d864e7b504 100644 --- a/modules/proxy/mod_proxy.h +++ b/modules/proxy/mod_proxy.h @@ -231,29 +231,29 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, canon_handler, (request_rec *r, /* proxy_util.c */ -request_rec *make_fake_req(conn_rec *c, request_rec *r); -int ap_proxy_hex2c(const char *x); -void ap_proxy_c2hex(int ch, char *x); -char *ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, +PROXY_DECLARE(request_rec *)make_fake_req(conn_rec *c, request_rec *r); +PROXY_DECLARE(int) ap_proxy_hex2c(const char *x); +PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x); +PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, int isenc); -char *ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, +PROXY_DECLARE(char *)ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port); -const char *ap_proxy_date_canon(apr_pool_t *p, const char *x); -apr_table_t *ap_proxy_read_headers(request_rec *r, request_rec *rp, char *buffer, int size, conn_rec *c); -int ap_proxy_liststr(const char *list, const char *val); -char *ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val); -int ap_proxy_hex2sec(const char *x); -void ap_proxy_sec2hex(int t, char *y); -const char *ap_proxy_host2addr(const char *host, struct hostent *reqhp); -int ap_proxyerror(request_rec *r, int statuscode, const char *message); -int ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p); -int ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p); -int ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p); -int ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p); -int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr); -int ap_proxy_pre_http_connection(conn_rec *c, request_rec *r); -apr_status_t ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen, int *eos); -void ap_proxy_reset_output_filters(conn_rec *c); +PROXY_DECLARE(const char *)ap_proxy_date_canon(apr_pool_t *p, const char *x); +PROXY_DECLARE(apr_table_t *)ap_proxy_read_headers(request_rec *r, request_rec *rp, char *buffer, int size, conn_rec *c); +PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val); +PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val); +PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x); +PROXY_DECLARE(void) ap_proxy_sec2hex(int t, char *y); +PROXY_DECLARE(const char *)ap_proxy_host2addr(const char *host, struct hostent *reqhp); +PROXY_DECLARE(int) ap_proxyerror(request_rec *r, int statuscode, const char *message); +PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr); +PROXY_DECLARE(int) ap_proxy_pre_http_connection(conn_rec *c, request_rec *r); +PROXY_DECLARE(apr_status_t) ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen, int *eos); +PROXY_DECLARE(void) ap_proxy_reset_output_filters(conn_rec *c); #endif /*MOD_PROXY_H*/ diff --git a/modules/proxy/proxy_connect.c b/modules/proxy/proxy_connect.c index c83e2accf6..8fe1cd8b95 100644 --- a/modules/proxy/proxy_connect.c +++ b/modules/proxy/proxy_connect.c @@ -64,8 +64,8 @@ module AP_MODULE_DECLARE_DATA proxy_connect_module; -PROXY_DECLARE (int) ap_proxy_connect_canon(request_rec *r, char *url); -PROXY_DECLARE (int) ap_proxy_connect_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_connect_canon(request_rec *r, char *url); +int ap_proxy_connect_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyname, apr_port_t proxyport); @@ -106,7 +106,7 @@ allowed_port(proxy_server_conf *conf, int port) } /* canonicalise CONNECT URLs. */ -PROXY_DECLARE (int) ap_proxy_connect_canon(request_rec *r, char *url) +int ap_proxy_connect_canon(request_rec *r, char *url) { if (r->method_number != M_CONNECT) { @@ -119,7 +119,7 @@ PROXY_DECLARE (int) ap_proxy_connect_canon(request_rec *r, char *url) } /* CONNECT handler */ -PROXY_DECLARE (int) ap_proxy_connect_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_connect_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyname, apr_port_t proxyport) { diff --git a/modules/proxy/proxy_connect.dsp b/modules/proxy/proxy_connect.dsp new file mode 100644 index 0000000000..20b7c12953 --- /dev/null +++ b/modules/proxy/proxy_connect.dsp @@ -0,0 +1,107 @@ +# Microsoft Developer Studio Project File - Name="proxy_connect" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=proxy_connect - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "proxy_connect.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "proxy_connect.mak" CFG="proxy_connect - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "proxy_connect - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "proxy_connect - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "proxy_connect - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\proxy_connect" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_connect.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_connect +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_connect.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_connect + +!ELSEIF "$(CFG)" == "proxy_connect - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\proxy_connect" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_connect.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_connect +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_connect.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_connect + +!ENDIF + +# Begin Target + +# Name "proxy_connect - Win32 Release" +# Name "proxy_connect - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=.\proxy_connect.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter ".h" +# Begin Source File + +SOURCE=.\mod_proxy.h +# End Source File +# End Group +# End Target +# End Project diff --git a/modules/proxy/proxy_ftp.c b/modules/proxy/proxy_ftp.c index a6661db7a9..1ef1030353 100644 --- a/modules/proxy/proxy_ftp.c +++ b/modules/proxy/proxy_ftp.c @@ -64,8 +64,8 @@ module AP_MODULE_DECLARE_DATA proxy_ftp_module; -PROXY_DECLARE (int) ap_proxy_ftp_canon(request_rec *r, char *url); -PROXY_DECLARE (int) ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_ftp_canon(request_rec *r, char *url); +int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyhost, apr_port_t proxyport); apr_status_t ap_proxy_send_dir_filter(ap_filter_t *f, @@ -121,7 +121,7 @@ static int ftp_check_string(const char *x) /* * Canonicalise ftp URLs. */ -PROXY_DECLARE (int) ap_proxy_ftp_canon(request_rec *r, char *url) +int ap_proxy_ftp_canon(request_rec *r, char *url) { char *user, *password, *host, *path, *parms, *strp, sport[7]; apr_pool_t *p = r->pool; @@ -530,7 +530,7 @@ static int ftp_unauthorized (request_rec *r, int log_it) * PASV added by Chuck * Filters by [Graham Leggett ] */ -PROXY_DECLARE (int) ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyhost, apr_port_t proxyport) { @@ -586,8 +586,8 @@ PROXY_DECLARE (int) ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf } - /* - * I: Who Do I Connect To? + /* + * I: Who Do I Connect To? * ----------------------- * * Break up the URL to determine the host to connect to diff --git a/modules/proxy/proxy_ftp.dsp b/modules/proxy/proxy_ftp.dsp new file mode 100644 index 0000000000..8e78cadad0 --- /dev/null +++ b/modules/proxy/proxy_ftp.dsp @@ -0,0 +1,107 @@ +# Microsoft Developer Studio Project File - Name="proxy_ftp" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=proxy_ftp - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "proxy_ftp.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "proxy_ftp.mak" CFG="proxy_ftp - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "proxy_ftp - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "proxy_ftp - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "proxy_ftp - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\proxy_ftp" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_ftp.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_ftp +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_ftp.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_ftp + +!ELSEIF "$(CFG)" == "proxy_ftp - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\proxy_ftp" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_ftp.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_ftp +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_ftp.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_ftp + +!ENDIF + +# Begin Target + +# Name "proxy_ftp - Win32 Release" +# Name "proxy_ftp - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=.\proxy_ftp.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter ".h" +# Begin Source File + +SOURCE=.\mod_proxy.h +# End Source File +# End Group +# End Target +# End Project diff --git a/modules/proxy/proxy_http.c b/modules/proxy/proxy_http.c index 41ad0b3d26..38060d485a 100644 --- a/modules/proxy/proxy_http.c +++ b/modules/proxy/proxy_http.c @@ -62,8 +62,8 @@ module AP_MODULE_DECLARE_DATA proxy_http_module; -PROXY_DECLARE (int) ap_proxy_http_canon(request_rec *r, char *url); -PROXY_DECLARE (int) ap_proxy_http_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_http_canon(request_rec *r, char *url); +int ap_proxy_http_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyname, apr_port_t proxyport); @@ -74,7 +74,7 @@ PROXY_DECLARE (int) ap_proxy_http_handler(request_rec *r, proxy_server_conf *con * url is the URL starting with the first '/' * def_port is the default port for this scheme. */ -PROXY_DECLARE (int) ap_proxy_http_canon(request_rec *r, char *url) +int ap_proxy_http_canon(request_rec *r, char *url) { char *host, *path, *search, sport[7]; const char *err; @@ -187,7 +187,7 @@ static void ap_proxy_clear_connection(apr_pool_t *p, apr_table_t *headers) * we return DECLINED so that we can try another proxy. (Or the direct * route.) */ -PROXY_DECLARE (int) ap_proxy_http_handler(request_rec *r, proxy_server_conf *conf, +int ap_proxy_http_handler(request_rec *r, proxy_server_conf *conf, char *url, const char *proxyname, apr_port_t proxyport) { diff --git a/modules/proxy/proxy_http.dsp b/modules/proxy/proxy_http.dsp new file mode 100644 index 0000000000..1bd2861573 --- /dev/null +++ b/modules/proxy/proxy_http.dsp @@ -0,0 +1,107 @@ +# Microsoft Developer Studio Project File - Name="proxy_http" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=proxy_http - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "proxy_http.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "proxy_http.mak" CFG="proxy_http - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "proxy_http - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "proxy_http - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "proxy_http - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\proxy_http" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_http.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_http +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /map /machine:I386 /out:"Release/proxy_http.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_http + +!ELSEIF "$(CFG)" == "proxy_http - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\..\srclib\apr\include" /I "../../srclib/apr-util/include" /I "..\..\include" /I "..\..\os\win32" /I "..\http" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\proxy_http" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_http.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_http +# ADD LINK32 kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/proxy_http.so" /base:@..\..\os\win32\BaseAddr.ref,proxy_http + +!ENDIF + +# Begin Target + +# Name "proxy_http - Win32 Release" +# Name "proxy_http - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=.\proxy_http.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter ".h" +# Begin Source File + +SOURCE=.\mod_proxy.h +# End Source File +# End Group +# End Target +# End Project diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index b51feb1a11..f3c0a697ff 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -67,7 +67,7 @@ static int proxy_match_word(struct dirconn_entry *This, request_rec *r); static struct per_thread_data *get_per_thread_data(void); /* already called in the knowledge that the characters are hex digits */ -int ap_proxy_hex2c(const char *x) +PROXY_DECLARE(int) ap_proxy_hex2c(const char *x) { int i, ch; @@ -94,7 +94,7 @@ int ap_proxy_hex2c(const char *x) #endif /*APR_CHARSET_EBCDIC*/ } -void ap_proxy_c2hex(int ch, char *x) +PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x) { #if !APR_CHARSET_EBCDIC int i; @@ -131,7 +131,7 @@ void ap_proxy_c2hex(int ch, char *x) * and encodes those which must be encoded, and does not touch * those which must not be touched. */ -char *ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, +PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, int isenc) { int i, j, ch; @@ -207,7 +207,7 @@ char *ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, * * Returns an error string. */ -char * +PROXY_DECLARE(char *) ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port) { @@ -305,7 +305,7 @@ static const char * const lwday[7] = * sscanf and sprintf. However, if the date is already correctly * formatted, then it exits very quickly. */ -const char * +PROXY_DECLARE(const char *) ap_proxy_date_canon(apr_pool_t *p, const char *x1) { char *x = apr_pstrdup(p, x1); @@ -361,7 +361,7 @@ const char * return q; } -request_rec *make_fake_req(conn_rec *c, request_rec *r) +PROXY_DECLARE(request_rec *)make_fake_req(conn_rec *c, request_rec *r) { request_rec *rp = apr_pcalloc(c->pool, sizeof(*r)); core_request_config *req_cfg; @@ -396,7 +396,7 @@ request_rec *make_fake_req(conn_rec *c, request_rec *r) * @@@: XXX: FIXME: currently the headers are passed thru un-merged. * Is that okay, or should they be collapsed where possible? */ -apr_table_t *ap_proxy_read_headers(request_rec *r, request_rec *rr, char *buffer, int size, conn_rec *c) +PROXY_DECLARE(apr_table_t *)ap_proxy_read_headers(request_rec *r, request_rec *rr, char *buffer, int size, conn_rec *c) { apr_table_t *headers_out; int len; @@ -464,7 +464,7 @@ apr_table_t *ap_proxy_read_headers(request_rec *r, request_rec *rr, char *buffer * The return returns 1 if the token val is found in the list, or 0 * otherwise. */ -int ap_proxy_liststr(const char *list, const char *val) +PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val) { int len, i; const char *p; @@ -497,7 +497,7 @@ int ap_proxy_liststr(const char *list, const char *val) * The return returns 1 if the token val is found in the list, or 0 * otherwise. */ -char *ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val) +PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val) { int len, i; const char *p; @@ -535,7 +535,7 @@ char *ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val) /* * Converts 8 hex digits to a time integer */ -int ap_proxy_hex2sec(const char *x) +PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x) { int i, ch; unsigned int j; @@ -559,7 +559,7 @@ int ap_proxy_hex2sec(const char *x) /* * Converts a time integer to 8 hex digits */ -void ap_proxy_sec2hex(int t, char *y) +PROXY_DECLARE(void) ap_proxy_sec2hex(int t, char *y) { int i, ch; unsigned int j = t; @@ -575,7 +575,7 @@ void ap_proxy_sec2hex(int t, char *y) y[8] = '\0'; } -int ap_proxyerror(request_rec *r, int statuscode, const char *message) +PROXY_DECLARE(int) ap_proxyerror(request_rec *r, int statuscode, const char *message) { apr_table_setn(r->notes, "error-notes", apr_pstrcat(r->pool, @@ -598,7 +598,7 @@ int ap_proxyerror(request_rec *r, int statuscode, const char *message) /* * This routine returns its own error message */ -const char *ap_proxy_host2addr(const char *host, struct hostent *reqhp) +PROXY_DECLARE(const char *)ap_proxy_host2addr(const char *host, struct hostent *reqhp) { int i; struct hostent *hp; @@ -659,7 +659,7 @@ static const char * } /* Return TRUE if addr represents an IP address (or an IP network address) */ -int ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p) +PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p) { const char *addr = This->name; long ip_addr[4]; @@ -856,7 +856,7 @@ static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r) } /* Return TRUE if addr represents a domain name */ -int ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p) +PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p) { char *addr = This->name; int i; @@ -962,7 +962,7 @@ static struct hostent * pduphostent(apr_pool_t *p, const struct hostent *hp) } /* Return TRUE if addr represents a host name */ -int ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p) +PROXY_DECLARE(int) ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p) { struct hostent host; char *addr = This->name; @@ -1021,7 +1021,7 @@ static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r) } /* Return TRUE if addr is to be matched as a word */ -int ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p) +PROXY_DECLARE(int) ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p) { This->matcher = proxy_match_word; return 1; @@ -1035,7 +1035,7 @@ static int proxy_match_word(struct dirconn_entry *This, request_rec *r) } /* checks whether a host in uri_addr matches proxyblock */ -int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, +PROXY_DECLARE(int) ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr) { int j; @@ -1073,7 +1073,7 @@ int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, } /* set up the minimal filter set */ -int ap_proxy_pre_http_connection(conn_rec *c, request_rec *r) +PROXY_DECLARE(int) ap_proxy_pre_http_connection(conn_rec *c, request_rec *r) { ap_add_input_filter("HTTP_IN", NULL, r, c); ap_add_input_filter("CORE_IN", NULL, r, c); @@ -1082,7 +1082,7 @@ int ap_proxy_pre_http_connection(conn_rec *c, request_rec *r) } /* converts a series of buckets into a string */ -apr_status_t ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, +PROXY_DECLARE(apr_status_t) ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen, int *eos) { apr_bucket *e; @@ -1135,7 +1135,7 @@ apr_status_t ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, } /* remove other filters (like DECHUNK) from filter stack */ -void ap_proxy_reset_output_filters(conn_rec *c) +PROXY_DECLARE(void) ap_proxy_reset_output_filters(conn_rec *c) { ap_filter_t *f = c->output_filters; -- 2.40.0