diff --git a/CHANGELOG b/CHANGELOG index 819276d0f75eeedd2c929db0a5dd042115bce8d7..025323768fb7e651075ca93e4eab4ed6e0fded3d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,17 @@ +XEngine_ProxyServer V1.3.1.1001 + +更新:匹配XEngine 7.38版本 +修改:现在支持MACOS系统了 +修改:linux和mac的构建名称 +修正:日志句柄打印错误 +修正:某些时候退出崩溃的问题 + +update:match xengine v7.38 version +modify:support macos now +modify:linux and mac build name +fixed:handle log printf is incorrent +fixed:sometime is crashed when program exit +====================================================================================== XEngine_ProxyServer V1.3.0.1001 添加:会话转发模块 diff --git a/README.en.md b/README.en.md index ba56cecde33baafa7650f51a3d8f6ec2690bf2e4..d6ebc994caa79dccd675fd901a56e74acad2faa8 100644 --- a/README.en.md +++ b/README.en.md @@ -23,32 +23,35 @@ this software support following features ## install -#### Requirements -support system above windows 7sp1 and linux(ubuntu20.04,centos8) -XEngine need V7.27 or above +#### XEngine Evn +you must install XEngine,need V7.38 or above,install XEngine can be refer to xengine Readme docment +GITEE:https://gitee.com/xyry/libxengine +GITHUB:https://github.com/libxengine/xengine + +##### fast to deployment +git clone https://gitee.com/xyry/libxengine.git or git clone https://github.com/libxengine/xengine.git +window Exection XEngine_WINEnv.bat +Linux Exection:sudo ./XEngine_LINEnv.sh -i 3 +Macos Exection:./XEngine_LINEnv.sh -i 3 #### Windows -use vs open and complie -You need to configure the environment in the following way, otherwise you may need to set the library directory in the project yourself +use vs open and compile,suport windows 7sp1 and above +Just Run it,use XEngine_AuthorizeApp #### Linux -Linux use Makefile to complie -supproted ubuntu x64 or centos x64 +use makefile compile,UBUNTU20.04 x64 or CENTOS8 x64 +Run it on the terminal + +#### Macos +use makefile compile,mac 12 and above +Run it on the terminal -##### XEngine Install -you can install xengine env to your system by shell -like this:sudo XEngine_RunEnv.sh -i 3 ##### complie execute command in XEngine_Source path make complie make FLAGS=InstallAll install make FLAGS=CleanAll clear -#### XEngine Env -install XEngine can be refer to xengine Readme docment -GITEE:https://gitee.com/xyry/libxengine -GITHUB:https://github.com/libxengine/xengine - #### use 1. Switch to the MASTER branch diff --git a/README.md b/README.md index dfb8f26f72dacbc6947e92e8176d57e31e437c39..6349a8d8ef9126c609d93ab029332afab84d4953 100644 --- a/README.md +++ b/README.md @@ -23,17 +23,28 @@ c c++ Socks5 Proxy Service,HTTP Tunnel Proxy Service,tcp forward service ## 安装教程 -#### 版本需求 -支持WINDOWS 7SP1和LINUX(UBUNT20.04,CENTOS8)以上系统 -XEngine版本需要V7.27或者以上版本 +#### XEngine环境 +必须安装XEngine,版本需要V7.38或者以上版本,安装XEngine可以参考其Readme文档 +GITEE:https://gitee.com/xyry/libxengine +GITHUB:https://github.com/libxengine/xengine + +###### 快速部署 +git clone https://gitee.com/xyry/libxengine.git 或者 git clone https://github.com/libxengine/xengine.git +window执行XEngine_WINEnv.bat 脚本. +Linux执行:sudo ./XEngine_LINEnv.sh -i 3 +macos执行:./XEngine_LINEnv.sh -i 3 #### Windows -使用VS打开并且编译 -你需要按照下面的方式配置环境,不然你可能需要自己在项目中设置库目录 +使用VS打开并且编译,支持WINDOWS 7SP1以上系统 +直接运行即可,使用XEngine_AuthorizeApp #### Linux -Linux使用Makefile编译 -UBUNTU20.04 x64或者CENTOS8 x64均可 +Linux使用Makefile编译,UBUNTU20.04 x64或者CENTOS8 x64 +在控制台运行 + +#### Macos +使用makefile编译,控制台运行,需要mac 12以及以上版本 +在控制台运行 ##### 编译命令 在XEngine_Source目录下执行命令 @@ -41,11 +52,6 @@ make 编译 make FLAGS=InstallAll 安装库程序 make FLAGS=CleanAll 清理编译 -#### XEngine环境 -安装XEngine可以参考其Readme文档 -GITEE:https://gitee.com/xyry/libxengine -GITHUB:https://github.com/libxengine/xengine - #### 使用说明 1. 切换到MASTER分支 diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index b6f6834c9885f4c391b73279954a0c273d66a252..c9b672c64b35ecc8e821cde87cf9a2c534d73077 100644 Binary files a/XEngine_Docment/Docment_en.docx and b/XEngine_Docment/Docment_en.docx differ diff --git a/XEngine_Docment/Docment_zh.docx b/XEngine_Docment/Docment_zh.docx index 5f1fae7315fcccf2acd4073e86f9ed626ea47943..a4512f5bc5397b4b05d4ffd7532fd65cfa455c48 100644 Binary files a/XEngine_Docment/Docment_zh.docx and b/XEngine_Docment/Docment_zh.docx differ diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 97d2d4357ccb3e258fb14028140c87f910214f9c..4dd15e73b0649f5f8290a683dd80c8fb13b82573 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -27,6 +27,7 @@ "tszAuthFile": "./XEngine_Config/UserList.txt" }, "XVer": [ + "1.3.1.1001 Build20220804", "1.3.0.1001 Build20220617", "1.2.0.1001 Build20220413", "1.1.0.1001 Build20211231", diff --git a/XEngine_Source/VSCopy-x64.bat b/XEngine_Source/VSCopy-x64.bat index b3d43b51aab3bcb1fa337c46455eed5f67a2a225..d35706502951bc56d4094df8fc175456bd4beac9 100644 --- a/XEngine_Source/VSCopy-x64.bat +++ b/XEngine_Source/VSCopy-x64.bat @@ -15,9 +15,6 @@ copy /y "%XEngine_Lib64%\x64\XEngine_RfcComponents\RfcComponents_ProxyProtocol.d copy /y "%XEngine_Lib64%\x64\XEngine_SystemSdk\XEngine_ProcFile.dll" "./" copy /y "%XEngine_Lib64%\x64\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" -copy /y "%XEngine_Lib64%\x64\XEngine_SystemSdk\XEngine_ProcFile.dll" "./" -copy /y "%XEngine_Lib64%\x64\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" - copy /y "%XEngine_Lib64%\x64\XEngine_LibEx\libcrypto-3-x64.dll" "./" copy /y "%XEngine_Lib64%\x64\XEngine_LibEx\libssl-3-x64.dll" "./" copy /y "%XEngine_Lib64%\x64\XEngine_LibEx\libcurl.dll" "./" diff --git a/XEngine_Source/VSCopy-x86.bat b/XEngine_Source/VSCopy-x86.bat index c273055f19998d9c4f0459717b69067596c8465b..fcfad85da50c07daee2417ac18cccabbfbbfd5ab 100644 --- a/XEngine_Source/VSCopy-x86.bat +++ b/XEngine_Source/VSCopy-x86.bat @@ -15,9 +15,6 @@ copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_ProxyProtocol.dll" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_ProcFile.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_ProcFile.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" - copy /y "%XEngine_Lib32%\XEngine_LibEx\libcrypto-3.dll" "./" copy /y "%XEngine_Lib32%\XEngine_LibEx\libssl-3.dll" "./" copy /y "%XEngine_Lib32%\XEngine_LibEx\libcurl.dll" "./" diff --git a/XEngine_Source/XEngine_ModuleAuthorize/Makefile b/XEngine_Source/XEngine_ModuleAuthorize/Makefile index 90efaf86cf68f84394063851e17966f73365ee7e..d1cff36c00995bead86f954cf33c8cbbfab468d0 100644 --- a/XEngine_Source/XEngine_ModuleAuthorize/Makefile +++ b/XEngine_Source/XEngine_ModuleAuthorize/Makefile @@ -1,19 +1,30 @@ CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so RELEASE = 0 UNICODE = 0 INCLUDE = -I ./ LOADBIN = LIB = -LIBEX = -static-libgcc -lrt -ldl -lpthread +LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath= LIBINCLUDE = ModuleAuthorize_User.o pch.o +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -24,7 +35,7 @@ endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleAuthorize.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleAuthorize.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) ModuleAuthorize_User.o:./ModuleAuthorize_User/ModuleAuthorize_User.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleAuthorize_User/ModuleAuthorize_User.cpp @@ -34,12 +45,12 @@ pch.o:./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleAuthorize.so - cp ./libXEngine_ModuleAuthorize.so ../../XEngine_Release/libXEngine_ModuleAuthorize.so +InstallSo:./libXEngine_ModuleAuthorize.$(SHAREDLL) + cp ./libXEngine_ModuleAuthorize.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleAuthorize.$(SHAREDLL) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.so + rm *.$(SHAREDLL) diff --git a/XEngine_Source/XEngine_ModuleConfigure/Makefile b/XEngine_Source/XEngine_ModuleConfigure/Makefile index 7bca8c178490640166f26598b9cf35db8cb561e2..f0ec413a7c087b3bd1d7c769aeb62c7e817affa3 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/Makefile +++ b/XEngine_Source/XEngine_ModuleConfigure/Makefile @@ -1,19 +1,30 @@ CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so RELEASE = 0 UNICODE = 0 INCLUDE = -I ./ -I ../XEngine_ThirdPart/jsoncpp LOADBIN = -L ../XEngine_ThirdPart/jsoncpp LIB = -ljsoncpp -LIBEX = -static-libgcc -lrt -ldl -lpthread +LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags LIBINCLUDE = ModuleConfigure_Json.o pch.o +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -24,7 +35,7 @@ endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleConfigure.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleConfigure.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) ModuleConfigure_Json.o:./ModuleConfigure_Json/ModuleConfigure_Json.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -34,12 +45,12 @@ pch.o:./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleConfigure.so - cp ./libXEngine_ModuleConfigure.so ../../XEngine_Release/libXEngine_ModuleConfigure.so +InstallSo:./libXEngine_ModuleConfigure.$(SHAREDLL) + cp ./libXEngine_ModuleConfigure.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleConfigure.$(SHAREDLL) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.so + rm *.$(SHAREDLL) diff --git a/XEngine_Source/XEngine_ModuleProtocol/Makefile b/XEngine_Source/XEngine_ModuleProtocol/Makefile index f584fdc1eb233e5c618092e1c15555a49f2fa9c0..0aa7d15100f030a76c43a36908d0c55aba609ef2 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/Makefile +++ b/XEngine_Source/XEngine_ModuleProtocol/Makefile @@ -1,4 +1,6 @@ CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so RELEASE = 0 UNICODE = 0 INCLUDE = -I ./ -I ../XEngine_ThirdPart/jsoncpp @@ -8,12 +10,21 @@ LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags LIBINCLUDE = ModuleProtocol_Packet.o ModuleProtocol_Parse.o pch.o +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -24,7 +35,7 @@ endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleProtocol.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleProtocol.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) ModuleProtocol_Packet.o:./ModuleProtocol_Packet/ModuleProtocol_Packet.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -36,12 +47,12 @@ pch.o:./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleProtocol.so - cp ./libXEngine_ModuleProtocol.so ../../XEngine_Release/libXEngine_ModuleProtocol.so +InstallSo:./libXEngine_ModuleProtocol.$(SHAREDLL) + cp ./libXEngine_ModuleProtocol.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleProtocol.$(SHAREDLL) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.so + rm *.$(SHAREDLL) diff --git a/XEngine_Source/XEngine_ModuleSession/Makefile b/XEngine_Source/XEngine_ModuleSession/Makefile index 9b91388bbe23fa9f3215492296bd5ba35d990ec0..04d11cf5a65fc300de9d12e785127a061bb9fec1 100644 --- a/XEngine_Source/XEngine_ModuleSession/Makefile +++ b/XEngine_Source/XEngine_ModuleSession/Makefile @@ -1,19 +1,30 @@ CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so RELEASE = 0 UNICODE = 0 INCLUDE = -I ./ -LOADBIN = -LIB = +LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib +LIB = -lXEngine_BaseLib LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath= +LOADSO = -Wl,-rpath=./,--disable-new-dtags LIBINCLUDE = ModuleSession_Forward.o pch.o +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -24,7 +35,7 @@ endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleSession.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleSession.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) ModuleSession_Forward.o:./ModuleSession_Forward/ModuleSession_Forward.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleSession_Forward/ModuleSession_Forward.cpp @@ -34,12 +45,12 @@ pch.o:./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleSession.so - cp ./libXEngine_ModuleSession.so ../../XEngine_Release/libXEngine_ModuleSession.so +InstallSo:./libXEngine_ModuleSession.$(SHAREDLL) + cp ./libXEngine_ModuleSession.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleSession.$(SHAREDLL) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.so + rm *.$(SHAREDLL) diff --git a/XEngine_Source/XEngine_ServiceApp/Makefile b/XEngine_Source/XEngine_ServiceApp/Makefile index 784331eb00656541a2c80914995aed3d8527c02d..29052d222ddfff8324034aa9428e9643d81ced1e 100644 --- a/XEngine_Source/XEngine_ServiceApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/Makefile @@ -1,22 +1,26 @@ -CC = g++ -Wall +CC = g++ -Wall -std=c++17 RELEASE = 0 UNICODE = 0 LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -L /usr/local/lib/XEngine_Release/XEngine_RfcComponents -L /usr/local/lib/XEngine_Release/XEngine_Client -L /usr/local/lib/XEngine_Release/XEngine_NetHelp \ -L ../XEngine_ThirdPart/jsoncpp \ - -L ../XEngine_ModuleConfigure -L ../XEngine_ModuleAuthorize -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_OPenSsl -lXEngine_ManagePool -lXEngine_NetXApi -lHelpComponents_XLog -lRfcComponents_ProxyProtocol -lXClient_Socket -lNetHelp_APIHelp \ + -L ../XEngine_ModuleConfigure -L ../XEngine_ModuleAuthorize -L ../XEngine_ModuleSession -L ../XEngine_ModuleProtocol +LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_OPenSsl -lXEngine_ManagePool -lXEngine_NetXApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_ProxyProtocol -lXClient_Socket -lNetHelp_APIHelp \ -ljsoncpp \ - -lXEngine_ModuleConfigure -lXEngine_ModuleAuthorize -LIBEX = -static-libgcc -ldl -lrt -lpthread + -lXEngine_ModuleConfigure -lXEngine_ModuleAuthorize -lXEngine_ModuleSession -lXEngine_ModuleProtocol +LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = XEngine_Configure.o XEngine_Network.o XEngine_SocksTask.o XEngine_TunnelTask.o XEngine_ServiceApp.o +LIBINCLUDE = XEngine_Configure.o XEngine_Network.o XEngine_SocksTask.o XEngine_TunnelTask.o XEngine_ForwardTask.o XEngine_ServiceApp.o + +ifeq ($(shell uname),Darwin) + LOADSO = +endif ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -26,7 +30,7 @@ UNICODE = endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o XEngine_ServiceApp $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o XEngine_ProxyServiceApp $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) XEngine_Configure.o:./XEngine_Configure.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_Configure.cpp @@ -36,18 +40,20 @@ XEngine_SocksTask.o:./XEngine_SocksTask.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_SocksTask.cpp XEngine_TunnelTask.o:./XEngine_TunnelTask.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_TunnelTask.cpp - +XEngine_ForwardTask.o:./XEngine_ForwardTask.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_ForwardTask.cpp + XEngine_ServiceApp.o:./XEngine_ServiceApp.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_ServiceApp.cpp InstallAll:InstallApp -InstallApp:./XEngine_ServiceApp - cp -f ./XEngine_ServiceApp ../../XEngine_Release/XEngine_ServiceApp +InstallApp:./XEngine_ProxyServiceApp + cp -f ./XEngine_ProxyServiceApp ../../XEngine_Release/XEngine_ProxyServiceApp CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm XEngine_ServiceApp + rm XEngine_ProxyServiceApp diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_Hdr.h index db48ed66b48914e6f61634e39cebe5857ad41bfe..0800aa67a295a4fb0fefe0ad85bd978c3ddc5e7b 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_Hdr.h @@ -74,16 +74,16 @@ using namespace std; extern BOOL bIsRun; extern XLOG xhLog; //Socks服务器 -extern XNETHANDLE xhSocksSocket; -extern XNETHANDLE xhSocksHeart; +extern XHANDLE xhSocksSocket; +extern XHANDLE xhSocksHeart; //Tunnel服务器 -extern XNETHANDLE xhTunnelSocket; -extern XNETHANDLE xhTunnelHeart; +extern XHANDLE xhTunnelSocket; +extern XHANDLE xhTunnelHeart; //Forward服务器 -extern XNETHANDLE xhForwardSocket; -extern XNETHANDLE xhForwardHeart; -extern XNETHANDLE xhForwardPool; +extern XHANDLE xhForwardSocket; +extern XHANDLE xhForwardHeart; extern XHANDLE xhForwardPacket; +extern XNETHANDLE xhForwardPool; //配置文件 extern XENGINE_SERVICECONFIG st_ServiceConfig; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_ServiceApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_ServiceApp.cpp index b0c84e85b417e72eda1e72abd97e329119ab71e8..219d930421ec3d0d57c8fd6c4e6190c0ecca45da 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_ServiceApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_ServiceApp.cpp @@ -3,16 +3,16 @@ BOOL bIsRun = FALSE; XLOG xhLog = NULL; -XNETHANDLE xhSocksSocket = 0; -XNETHANDLE xhSocksHeart = 0; +XHANDLE xhSocksSocket = NULL; +XHANDLE xhSocksHeart = NULL; -XNETHANDLE xhTunnelSocket = 0; -XNETHANDLE xhTunnelHeart = 0; +XHANDLE xhTunnelSocket = NULL; +XHANDLE xhTunnelHeart = NULL; -XNETHANDLE xhForwardSocket = 0; -XNETHANDLE xhForwardHeart = 0; -XNETHANDLE xhForwardPool = 0; +XHANDLE xhForwardSocket = NULL; +XHANDLE xhForwardHeart = NULL; XHANDLE xhForwardPacket = NULL; +XNETHANDLE xhForwardPool = 0; //配置文件 XENGINE_SERVICECONFIG st_ServiceConfig; @@ -80,7 +80,7 @@ int main(int argc, char** argv) WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif -#if XENGINE_VERSION_BIT < 7270001001 +#if XENGINE_VERSION_BIT < 7370001001 printf("版本号过低,无法继续,按任意键退出!\n"); getchar(); return 0; @@ -137,19 +137,21 @@ int main(int argc, char** argv) //启动心跳 if (st_ServiceConfig.st_XTime.nSocksTimeOut > 0) { - if (!SocketOpt_HeartBeat_InitEx(&xhSocksHeart, st_ServiceConfig.st_XTime.nSocksTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_SocksHeart)) + xhSocksHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nSocksTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_SocksHeart); + if (NULL == xhSocksHeart) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Socks心跳服务失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Socks心跳服务成功,句柄:%llu,时间:%d,次数:%d"), xhSocksHeart, st_ServiceConfig.st_XTime.nSocksTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Socks心跳服务成功,时间:%d,次数:%d"), st_ServiceConfig.st_XTime.nSocksTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); } else { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,Socks心跳服务被设置为不启用")); } //启动网络 - if (!NetCore_TCPXCore_StartEx(&xhSocksSocket, st_ServiceConfig.nSocksPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread)) + xhSocksSocket = NetCore_TCPXCore_StartEx(st_ServiceConfig.nSocksPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread); + if (NULL == xhSocksSocket) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动Socks网络服务器失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; @@ -169,19 +171,21 @@ int main(int argc, char** argv) //启动心跳 if (st_ServiceConfig.st_XTime.nTunnelTimeOut > 0) { - if (!SocketOpt_HeartBeat_InitEx(&xhTunnelHeart, st_ServiceConfig.st_XTime.nTunnelTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_TunnelHeart)) + xhTunnelHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nTunnelTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_TunnelHeart); + if (NULL == xhTunnelHeart) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Tunnel心跳服务失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Tunnel心跳服务成功,句柄:%llu,时间:%d,次数:%d"), xhTunnelHeart, st_ServiceConfig.st_XTime.nTunnelTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Tunnel心跳服务成功,时间:%d,次数:%d"), st_ServiceConfig.st_XTime.nTunnelTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); } else { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,Tunnel心跳服务被设置为不启用")); } //网络 - if (!NetCore_TCPXCore_StartEx(&xhTunnelSocket, st_ServiceConfig.nTunnelPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread)) + xhTunnelSocket = NetCore_TCPXCore_StartEx(st_ServiceConfig.nTunnelPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread); + if (NULL == xhTunnelSocket) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动Tunnel网络服务器失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; @@ -208,19 +212,21 @@ int main(int argc, char** argv) //启动心跳 if (st_ServiceConfig.st_XTime.nForwardTimeOut > 0) { - if (!SocketOpt_HeartBeat_InitEx(&xhForwardHeart, st_ServiceConfig.st_XTime.nForwardTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_ForwardHeart)) + xhForwardHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nForwardTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_ForwardHeart); + if (NULL == xhForwardHeart) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Forward心跳服务失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Forward心跳服务成功,句柄:%llu,时间:%d,次数:%d"), xhForwardHeart, st_ServiceConfig.st_XTime.nForwardTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Forward心跳服务成功,时间:%d,次数:%d"), st_ServiceConfig.st_XTime.nForwardTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); } else { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,Forward心跳服务被设置为不启用")); } //网络 - if (!NetCore_TCPXCore_StartEx(&xhForwardSocket, st_ServiceConfig.nForwardPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread)) + xhForwardSocket = NetCore_TCPXCore_StartEx(st_ServiceConfig.nForwardPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread); + if (NULL == xhForwardSocket) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动Forward网络服务器失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; @@ -253,7 +259,7 @@ int main(int argc, char** argv) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("所有服务成功启动,服务运行中,XEngine版本:%s,服务版本;%s,发行次数:%d。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str(), st_ServiceConfig.st_XVer.pStl_ListVer->size()); - while (bIsRun) + while (TRUE) { std::this_thread::sleep_for(std::chrono::seconds(1)); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_SocksTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_SocksTask.cpp index adb79ee750c8d0c27d81f804d079ebc0bef1191a..6ddb638bd70ab059c458b955e36aba62f14ab573 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_SocksTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_SocksTask.cpp @@ -127,7 +127,7 @@ BOOL XEngine_SocksTask_Handle(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int //连接类型,IP还是域名,没有IPV6环境.不好测试 if (ENUM_RFCCOMPONENTS_PROXYSOCKS_IPADDR_IPV4 == enIPType) { - if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszClientAddr, nPort, AF_INET, 1)) + if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszClientAddr, nPort, 1)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("SOCKS客户端:%s,创建客户端连接失败,连接到服务器:%s:%d,错误:%lX"), lpszClientAddr, tszClientAddr, nPort, ProxyProtocol_GetLastError()); return FALSE; @@ -161,7 +161,7 @@ BOOL XEngine_SocksTask_Handle(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int memset(tszClientAddr, '\0', sizeof(tszClientAddr)); _tcscpy(tszClientAddr, ppszListAddr[0]); //随便选择一个IP地址 BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListAddr, nListCount); - if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszClientAddr, nPort, AF_INET, 1)) + if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszClientAddr, nPort, 1)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("SOCKS客户端:%s,创建客户端连接失败,连接到服务器:%s:%d,错误:%lX"), lpszClientAddr, tszClientAddr, nPort, ProxyProtocol_GetLastError()); return FALSE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_TunnelTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_TunnelTask.cpp index effb198932f47b946354f0562e37609a7be41506..5b9b4c05f233d7d1d58f7abd09480b0b413f68b0 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_TunnelTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_TunnelTask.cpp @@ -95,7 +95,7 @@ BOOL XEngine_TunnelTask_Handle(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in _tcscpy(tszConnectAddr, ppszListAddr[0]); //随便选择一个IP地址 BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListAddr, nListCount); } - if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszConnectAddr, nIPPort, AF_INET, 1)) + if (!XClient_TCPSelect_Create(&st_ProxyClient.hSocket, tszConnectAddr, nIPPort, 1)) { ProxyProtocol_TunnelCore_Packet(tszMsgBuffer, &nLen, 500); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nLen, XENGINE_CLIENT_NETTYPE_TUNNEL); diff --git a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile index 30dbd85ab2df273f2653cfe72e063176644ad6a8..9302ec2d3afdae1d1419fc94d18406be75e36113 100644 --- a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile +++ b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile @@ -1,20 +1,31 @@ CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so RELEASE = 0 UNICODE = 0 INCLUDE = -I ./ FILECENTOS = /etc/redhat-release LOADBIN = LIB = -LIBEX = -static-libgcc -lrt -ldl -lpthread +LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath= LIBINCLUDE = json_reader.o json_value.o json_writer.o +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + ifeq ($(RELEASE),1) FLAGS = -c -O2 DEBUG = else -FLAGS = -c -lc_p -DEBUG = -g -pg +FLAGS = -c +DEBUG = -g endif ifeq ($(UNICODE),1) @@ -24,7 +35,7 @@ UNICODE = endif all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libjsoncpp.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libjsoncpp.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) json_reader.o:json_reader.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) json_reader.cpp @@ -34,8 +45,8 @@ json_writer.o:json_writer.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) json_writer.cpp InstallAll:InstallSo -InstallSo:./libjsoncpp.so - cp ./libjsoncpp.so ../../../XEngine_Release/libjsoncpp.so +InstallSo:./libjsoncpp.$(SHAREDLL) + cp ./libjsoncpp.$(SHAREDLL) ../../../XEngine_Release/libjsoncpp.$(SHAREDLL) @@ -43,4 +54,4 @@ CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.so + rm *.$(SHAREDLL)