diff --git a/.github/workflows/RockyArm64_build.yml b/.github/workflows/RockyArm64_build.yml deleted file mode 100644 index 43b7db58b0ef5ba25c93ed67e54a639e80ff414f..0000000000000000000000000000000000000000 --- a/.github/workflows/RockyArm64_build.yml +++ /dev/null @@ -1,78 +0,0 @@ -name: rocky Arm64 build workflows - -on: - push: - branches: - - 'develop' - paths: - - 'XEngine_Source/**' - - 'XEngine_Release/**' - - '.github/**' - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-24.04 - env: - IMAGE_NAME: rockylinux/rockylinux:9.5 - - strategy: - fail-fast: false - matrix: - arch: [linux/arm64] - - steps: - # 检出您的主仓库代码 - - name: Checkout main repository code - uses: actions/checkout@v4 - with: - ref: 'develop' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Build ${{ matrix.arch }} - run: | - docker run --platform ${{ matrix.arch }} --rm \ - -v ${{ github.workspace }}:/workspace \ - -w /workspace ${{ env.IMAGE_NAME }} /bin/sh -c ' - set -e - dnf update -y - dnf install --allowerasing git make g++ wget curl jq unzip -y - - git config --global --add safe.directory /workspace - git submodule init - git submodule update - - latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) - wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_9_Arm64.zip - unzip ./XEngine_RockyLinux_9_Arm64.zip -d ./XEngine_RockyLinux_9_Arm64 - cd XEngine_RockyLinux_9_Arm64 - - chmod 777 ./XEngine_LINEnv.sh - ./XEngine_LINEnv.sh -i 0 - - cp -rf ./XEngine_Include /usr/local/include - find ./XEngine_Linux -name "*.so" -exec cp {} /usr/lib64 \; - ldconfig - cd .. - - cd XEngine_Source - make ARCH=Arm64 RELEASE=1 - make FLAGS=InstallAll - make FLAGS=CleanAll - cd .. - - cd XEngine_Release - ./XEngine_AuthorizeService -t - chown -R $(id -u):$(id -g) . - chmod -R a+r . ' - - - name: Upload folder as artifact with RockyLinux - uses: actions/upload-artifact@v4 - with: - name: XEngine_AuthorizeService-RockyLinux-9-Arm64 - path: XEngine_Release/ - retention-days: 1 diff --git a/.github/workflows/RockyX86_64_build.yml b/.github/workflows/Rocky_build.yml similarity index 72% rename from .github/workflows/RockyX86_64_build.yml rename to .github/workflows/Rocky_build.yml index 0110fdfd7832621ebcc41d011e5ac372a745a055..9e982e230adda307a1ee5d4be3d2e4b74a503b0a 100644 --- a/.github/workflows/RockyX86_64_build.yml +++ b/.github/workflows/Rocky_build.yml @@ -1,4 +1,4 @@ -name: rocky x86_64 build workflows +name: rocky build workflows on: push: @@ -14,18 +14,28 @@ permissions: jobs: build: - runs-on: ubuntu-latest + runs-on: ${{ matrix.runner }} container: image: rockylinux/rockylinux:9.5 + options: --platform ${{ matrix.platform }} + strategy: + matrix: + include: + - arch: amd64 + runner: ubuntu-24.04 + platform: linux/amd64 + artifact: x86-64 + - arch: arm64 + runner: ubuntu-24.04-arm + platform: linux/arm64 + artifact: Arm64 steps: - # 检出您的主仓库代码 - name: Checkout main repository code uses: actions/checkout@v4 with: ref: 'develop' - # 检出依赖的xengine仓库到指定的xengine目录 - name: Checkout dependency repository (xengine) uses: actions/checkout@v4 with: @@ -42,18 +52,17 @@ jobs: run: | dnf update -y dnf install gcc g++ make git jq unzip -y - # 设置依赖库的环境变量 - name: Set up Dependency rocky linux Environment run: | cd libxengine chmod 777 * ./XEngine_LINEnv.sh -i 0 - name: install xengine library - run: | + run: | latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) - wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_9_x86-64.zip - unzip ./XEngine_RockyLinux_9_x86-64.zip -d ./XEngine_RockyLinux_9_x86-64 - cd XEngine_RockyLinux_9_x86-64 + wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_9_${{ matrix.artifact }}.zip + unzip ./XEngine_RockyLinux_9_${{ matrix.artifact }}.zip -d ./XEngine_RockyLinux_9_${{ matrix.artifact }} + cd XEngine_RockyLinux_9_${{ matrix.artifact }} cp -rf ./XEngine_Include /usr/local/include find ./XEngine_Linux -name "*.so" -exec cp {} /usr/lib64 \; @@ -78,6 +87,6 @@ jobs: - name: Upload folder as artifact with RockyLinux uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-RockyLinux-9-x86_64 + name: XEngine_AuthorizeService-RockyLinux_9_${{ matrix.artifact }} path: XEngine_Release/ retention-days: 1 diff --git a/.github/workflows/UbuntuX86_64_build.yml b/.github/workflows/Ubuntu_build.yml similarity index 50% rename from .github/workflows/UbuntuX86_64_build.yml rename to .github/workflows/Ubuntu_build.yml index 308c77100aa0c5f0dc44c0672c6b5fd948468a51..d73e183210daaa57c7c0b3537fec4580f61e4064 100644 --- a/.github/workflows/UbuntuX86_64_build.yml +++ b/.github/workflows/Ubuntu_build.yml @@ -1,4 +1,4 @@ -name: ubuntu x86_64 build workflows +name: ubuntu build workflows on: push: @@ -18,6 +18,8 @@ jobs: include: - os: ubuntu-22.04 - os: ubuntu-24.04 + - os: ubuntu-22.04-arm + - os: ubuntu-24.04-arm runs-on: ${{ matrix.os }} steps: @@ -43,6 +45,21 @@ jobs: cd libxengine chmod 777 * sudo ./XEngine_LINEnv.sh -i 3 + - name: Set up Dependency ubuntu24.04 ARM64 Environment + if: matrix.os == 'ubuntu-24.04-arm' + run: | + cd libxengine + chmod 777 * + sudo ./XEngine_LINEnv.sh -i 0 + + latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) + wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_24.04_Arm64.zip + unzip ./XEngine_UBuntu_24.04_Arm64.zip -d ./XEngine_UBuntu_24.04_Arm64 + cd XEngine_UBuntu_24.04_Arm64 + + sudo cp -rf ./XEngine_Include /usr/local/include + sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \; + sudo ldconfig - name: Set up Dependency ubuntu22.04 Environment if: matrix.os == 'ubuntu-22.04' run: | @@ -55,18 +72,38 @@ jobs: unzip ./XEngine_UBuntu_22.04_x86-64.zip -d ./XEngine_UBuntu_22.04_x86-64 cd XEngine_UBuntu_22.04_x86-64 + sudo cp -rf ./XEngine_Include /usr/local/include + sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \; + sudo ldconfig + - name: Set up Dependency ubuntu22.04 arm64 Environment + if: matrix.os == 'ubuntu-22.04-arm' + run: | + cd libxengine + chmod 777 * + sudo ./XEngine_LINEnv.sh -i 0 + + latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) + wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_22.04_Arm64.zip + unzip ./XEngine_UBuntu_22.04_Arm64.zip -d ./XEngine_UBuntu_22.04_Arm64 + cd XEngine_UBuntu_22.04_Arm64 + sudo cp -rf ./XEngine_Include /usr/local/include sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \; sudo ldconfig - - name: make + - name: make x86 + if: matrix.os == 'ubuntu-24.04' || matrix.os == 'ubuntu-22.04' run: | cd XEngine_Source - make + make RELEASE=1 make FLAGS=InstallAll make FLAGS=CleanAll - - make RELEASE=1 + cd .. + - name: make arm + if: matrix.os == 'ubuntu-24.04-arm' || matrix.os == 'ubuntu-22.04-arm' + run: | + cd XEngine_Source + make ARCH=Arm64 RELEASE=1 make FLAGS=InstallAll make FLAGS=CleanAll cd .. @@ -79,13 +116,27 @@ jobs: if: matrix.os == 'ubuntu-22.04' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-x86_64-Ubuntu-22.04 + name: XEngine_AuthorizeService-Ubuntu_22.04_x86-64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with ubuntu24.04 if: matrix.os == 'ubuntu-24.04' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Ubuntu-24.04-x86_64 + name: XEngine_AuthorizeService-Ubuntu_24.04_x86-64 + path: XEngine_Release/ + retention-days: 1 + - name: Upload folder as artifact with ubuntu24.04 arm64 + if: matrix.os == 'ubuntu-24.04-arm' + uses: actions/upload-artifact@v4 + with: + name: XEngine_AuthorizeService-Ubuntu_24.04_Arm64 + path: XEngine_Release/ + retention-days: 1 + - name: Upload folder as artifact with ubuntu22.04 arm64 + if: matrix.os == 'ubuntu-22.04-arm' + uses: actions/upload-artifact@v4 + with: + name: XEngine_AuthorizeService-Ubuntu_22.04_Arm64 path: XEngine_Release/ retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/UbuntuArm64_build.yml b/.github/workflows/debian_build.yml similarity index 37% rename from .github/workflows/UbuntuArm64_build.yml rename to .github/workflows/debian_build.yml index 6fa5c39cc299d05464822f3b6edc0cf3a4f996ed..3a31b9424cfdd2100037ae8f3a10b6ba7e51ddb5 100644 --- a/.github/workflows/UbuntuArm64_build.yml +++ b/.github/workflows/debian_build.yml @@ -1,74 +1,87 @@ -name: ubuntu Arm64 build workflows +name: debian build workflows on: push: - branches: + branches: - 'develop' paths: - 'XEngine_Source/**' - 'XEngine_Release/**' - '.github/**' - + +permissions: + contents: read + jobs: build: - runs-on: ubuntu-24.04 - env: - IMAGE_NAME: ubuntu:24.04 - + runs-on: ${{ matrix.runner }} + container: + image: debian:bookworm + options: --platform ${{ matrix.platform }} strategy: - fail-fast: false matrix: - arch: [linux/arm64] + include: + - arch: amd64 + runner: ubuntu-24.04 + platform: linux/amd64 + artifact: x86-64 steps: - name: Checkout main repository code uses: actions/checkout@v4 + + - name: Checkout dependency repository (xengine) + uses: actions/checkout@v4 with: - ref: 'develop' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + repository: libxengine/libxengine + path: libxengine - - name: Build ${{ matrix.arch }} + - name: sub module checkout (opensource) + uses: actions/checkout@v4 + with: + repository: libxengine/XEngine_OPenSource + path: XEngine_Source/XEngine_Depend + + - name: install system package run: | - docker run --platform ${{ matrix.arch }} --rm \ - -v ${{ github.workspace }}:/workspace \ - -w /workspace ${{ env.IMAGE_NAME }} /bin/sh -c ' - set -e apt update -y - apt install git make g++ wget curl jq unzip -y - - git config --global --add safe.directory /workspace - git submodule init - git submodule update - - latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) - wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_24.04_Arm64.zip - unzip ./XEngine_UBuntu_24.04_Arm64.zip -d ./XEngine_UBuntu_24.04_Arm64 - cd XEngine_UBuntu_24.04_Arm64 + apt install gcc g++ make git jq unzip curl -y - chmod 777 ./XEngine_LINEnv.sh + - name: Set up Dependency rocky linux Environment + run: | + cd libxengine + chmod 777 * ./XEngine_LINEnv.sh -i 0 - + - name: install xengine library + run: | + latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) + wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Debian_12_${{ matrix.artifact }}.zip + unzip ./XEngine_Debian_12_${{ matrix.artifact }}.zip -d ./XEngine_Debian_12_${{ matrix.artifact }} + cd XEngine_Debian_12_${{ matrix.artifact }} + cp -rf ./XEngine_Include /usr/local/include find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \; ldconfig - cd .. + - name: make + run: | cd XEngine_Source - make ARCH=Arm64 RELEASE=1 + make make FLAGS=InstallAll - make FLAGS=CleanAll - cd .. + make FLAGS=CleanAll + make RELEASE=1 + make FLAGS=InstallAll + make FLAGS=CleanAll + cd .. + - name: test + run: | cd XEngine_Release - ./XEngine_AuthorizeService -t - chown -R $(id -u):$(id -g) . - chmod -R a+r . ' + ./XEngine_AuthorizeService -t - - name: Upload folder as artifact with ubuntu Arm64 + - name: Upload folder as artifact uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Ubuntu-24.04-Arm64 + name: XEngine_AuthorizeService-Debian_12_x86-64 path: XEngine_Release/ retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml index 1af2a409389d3c8c2886b95674cd8f34b5f3763a..6cdbbd3de4d6365af97e7644f942a5e8e39038d4 100644 --- a/.github/workflows/macbuild.yml +++ b/.github/workflows/macbuild.yml @@ -84,13 +84,13 @@ jobs: if: matrix.os == 'macos-13' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-x86_64-Mac + name: XEngine_AuthorizeService-Mac_x86-64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with mac arm if: matrix.os == 'macos-14' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Mac-Arm64 + name: XEngine_AuthorizeService-Mac_Arm64 path: XEngine_Release/ retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index a88d1b89d82131815223598eeb2d369492a7f11f..d22204eb35c0260e7333d665648dfc59833dc9c8 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -16,7 +16,6 @@ jobs: matrix: configuration: [Debug ,Release] platform: [x86 ,x64 ,ARM64] - runs-on: windows-latest # 最新的 Windows 环境 steps: @@ -113,20 +112,20 @@ jobs: if: matrix.configuration == 'Release' && matrix.platform == 'x86' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Windows-x86_32 + name: XEngine_AuthorizeService-Windows_x86-32 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with x64 if: matrix.configuration == 'Release' && matrix.platform == 'x64' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Windows-x86_64 + name: XEngine_AuthorizeService-Windows_x86-64 path: XEngine_Release/ retention-days: 1 - name: Upload folder as artifact with Arm64 if: matrix.configuration == 'Release' && matrix.platform == 'Arm64' uses: actions/upload-artifact@v4 with: - name: XEngine_AuthorizeService-Windows-Arm64 + name: XEngine_AuthorizeService-Windows_Arm64 path: XEngine_Release/ retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ca74d714ba763f6159465e06d9173546ea71535..d09fa5fcc677e43f737fe79a382facc9b719683d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,37 +16,28 @@ jobs: with: fetch-depth: 0 - - name: Download Ubuntu x86_64 build + - name: Download Ubuntu build uses: dawidd6/action-download-artifact@v6 with: - workflow: UbuntuX86_64_build.yml + workflow: Ubuntu_build.yml workflow_conclusion: success check_artifacts: false skip_unpack: true if_no_artifact_found: fail path: ./XRelease/ - - name: Download Ubuntu Arm64 build + - name: Download debian build uses: dawidd6/action-download-artifact@v6 with: - workflow: UbuntuArm64_build.yml + workflow: debian_build.yml workflow_conclusion: success check_artifacts: false skip_unpack: true if_no_artifact_found: fail path: ./XRelease/ - - name: Download RockyLinux x86_64 build + - name: Download RockyLinux build uses: dawidd6/action-download-artifact@v6 with: - workflow: RockyX86_64_build.yml - workflow_conclusion: success - check_artifacts: false - skip_unpack: true - if_no_artifact_found: fail - path: ./XRelease/ - - name: Download RockyLinux Arm64 build - uses: dawidd6/action-download-artifact@v6 - with: - workflow: RockyArm64_build.yml + workflow: Rocky_build.yml workflow_conclusion: success check_artifacts: false skip_unpack: true diff --git a/CHANGELOG b/CHANGELOG index 18e9296e59cec659dc10ed69cc032b7c2647d068..e4f183a6e5fd000c9a54f628a08363e66be90adb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,43 @@ +XEngine_Authorize V3.18.0.1001 + +added:more system release support +added:unified error code +update:depend library +improved:send message use class memory instead +improved:get time for report info +modify:info report only release +modify:pass encrypt via client only +modify:user register level is 20 +modify:level choice range for management app +modify:large memory use memory pool instead +modify:add memory class file and modify http reply msg buffer to memory buffer +modify:use XENGINE_MEMORY_SIZE_MAX instead macor +modify:dynamic code size and start code location +fixed:web socket memory malloc is incorrect +fixed:Window exception in some dpi +fixed:print log is incorrect when client leave +fixed:close client clear is incorrect when actively close client + +增加:更多系统发布支持 +增加:统一错误码 +优化:发送消息使用内存池类替换 +优化:信息报告获取时间 +修改:信息报告仅仅在release版本发送 +修改:密码加密仅在客户端实现 +修改:用户注册级别默认为20 +修改:管理程序的级别范围选择 +修改:大内存使用内存池替换 +修改:增加新的内存池消息类 +修改:使用XENGINE_MEMORY_SIZE_MAX替代内部宏 +修改:动态码大小修改 +修复:web socket内存申请错误 +修复:windows下部分dpi异常 +修复:客户端离开输出的日志错误 +修复:主动关闭客户端的时候处理不正确 +================================================================ XEngine_Authorize V3.17.0.1001 +added:more ci release arm64 support added:option method for http added:tcp and websocket and http heartbeat and disable and enable support added:multi login for day supported @@ -10,6 +48,7 @@ update:depend library improved:parameter parse and more parameter supported delete:not used time function for help module +增加:更多CI发布ARM64版本支持 增加:HTTP OPTION方法支持 增加:tcp websocket,http 心跳支持并且支持启用禁用 增加:多端登录天数卡支持 diff --git a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp index 4270a607ff6bab6404f32aafd9218f5d26f9588d..d6ecdc7319f2e93804e1289eaeb0a6f9d5ce459f 100644 --- a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp +++ b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp @@ -35,7 +35,7 @@ using namespace std; //Linux::g++ -std=c++17 -Wall -g Authorize_APPClient.cpp -o Authorize_APPClient.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_Cryption -lXClient_Socket -lXEngine_BaseLib -lXClient_APIHelp -lpthread -ljsoncpp -Wl,-rpath=../../XEngine_Release //#define _DYNAMIC_CODE -//#define _PASS_ENCRYPT +#define _PASS_ENCRYPT bool bRun = true; bool bLogin = true; bool bTimeOut = true; @@ -128,12 +128,22 @@ int AuthClient_Register() Json::Value st_JsonUserTable; LPCXSTR lpszUrl = _X("http://127.0.0.1:5302/auth/user/register"); - st_JsonUserInfo["tszUserName"] = lpszUser; +#ifdef _PASS_ENCRYPT + XCHAR tszPassCodec[128] = {}; + int nPLen = _tcsxlen(lpszPass); + XBYTE byMD5Buffer[MAX_PATH] = {}; + Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPassCodec); + st_JsonUserInfo["tszUserPass"] = tszPassCodec; +#else st_JsonUserInfo["tszUserPass"] = lpszPass; +#endif + + st_JsonUserInfo["tszUserName"] = lpszUser; st_JsonUserInfo["tszEMailAddr"] = lpszEmail; st_JsonUserInfo["nPhoneNumber"] = (Json::Value::Int64)nPhoneNumber; st_JsonUserInfo["nIDNumber"] = (Json::Value::Int64)nIDNumber; - st_JsonUserInfo["nUserLevel"] = 5; + st_JsonUserInfo["nUserLevel"] = ENUM_XENGINE_PROTOCOLHDR_LEVEL_TYPE_USER; st_JsonUserTable["tszHardCode"] = "2FDWAD02JD2091"; st_JsonUserTable["st_UserInfo"] = st_JsonUserInfo; @@ -266,9 +276,9 @@ int AuthClient_Login() #ifdef _PASS_ENCRYPT int nPLen = _tcsxlen(st_AuthUser.tszUserPass); XBYTE byMD5Buffer[MAX_PATH] = {}; - OPenSsl_Api_Digest(st_AuthUser.tszUserPass, byMD5Buffer, &nPLen, false, XENGINE_OPENSSL_API_DIGEST_MD5); + Cryption_Api_Digest(st_AuthUser.tszUserPass, byMD5Buffer, &nPLen); memset(st_AuthUser.tszUserPass, '\0', sizeof(st_AuthUser.tszUserPass)); - BaseLib_OperatorString_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_AuthUser.tszUserPass); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_AuthUser.tszUserPass); #endif if (nDYCode > 0) @@ -366,6 +376,17 @@ int AuthClient_GetPass() Json::Value st_JsonObject; LPCXSTR lpszUrl = _X("http://127.0.0.1:5302/auth/user/pass"); +#ifdef _PASS_ENCRYPT + XCHAR tszPASSCodec[128] = {}; + int nPLen = _tcsxlen(lpszPass); + XBYTE byMD5Buffer[MAX_PATH] = {}; + Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec); + st_JsonObject["tszUserPass"] = tszPASSCodec; +#else + st_JsonObject["tszUserPass"] = lpszPass; +#endif + st_JsonObject["tszUserName"] = lpszUser; st_JsonObject["tszEMailAddr"] = lpszEmail; st_JsonObject["nPhoneNumber"] = (Json::Value::Int64)nPhoneNumber; @@ -406,7 +427,18 @@ int AuthClient_GetTime() _xstprintf(tszURLStr, _X("http://127.0.0.1:5302/api?function=time&token=%lld"),xhToken); st_JsonObject["tszUserName"] = lpszUser; + +#ifdef _PASS_ENCRYPT + XCHAR tszPASSCodec[128] = {}; + int nPLen = _tcsxlen(lpszPass); + XBYTE byMD5Buffer[MAX_PATH] = {}; + Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec); + st_JsonObject["tszUserPass"] = tszPASSCodec; +#else st_JsonObject["tszUserPass"] = lpszPass; +#endif + st_JsonRoot["st_UserAuth"] = st_JsonObject; int nMsgLen = 0; @@ -440,8 +472,18 @@ int AuthClient_Delete() Json::Value st_JsonObject; LPCXSTR lpszUrl = _X("http://127.0.0.1:5302/auth/user/delete"); - st_JsonObject["tszUserName"] = lpszUser; +#ifdef _PASS_ENCRYPT + XCHAR tszPASSCodec[128] = {}; + int nPLen = _tcsxlen(lpszPass); + XBYTE byMD5Buffer[MAX_PATH] = {}; + Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec); + st_JsonObject["tszUserPass"] = tszPASSCodec; +#else st_JsonObject["tszUserPass"] = lpszPass; +#endif + + st_JsonObject["tszUserName"] = lpszUser; st_JsonObject["tszEMailAddr"] = lpszEmail; st_JsonObject["nPhoneNumber"] = (Json::Value::Int64)nPhoneNumber; st_JsonObject["nIDNumber"] = (Json::Value::Int64)nIDNumber; @@ -532,7 +574,7 @@ int main() AuthClient_GetPass(); AuthClient_GetTime(); - std::this_thread::sleep_for(std::chrono::seconds(100)); + std::this_thread::sleep_for(std::chrono::seconds(10)); AuthClient_Delete(); AuthClient_Try(); diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index 596ffd1714c9c3e6388ee9ee76ab7d68676ab868..ba57e4b09a3101cc1928d35eb729cac30fdd2b70 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 5684b3169f334c64a102f2a9ae0d188dd6fa6079..98fe9004811e45da616823bbe08435181330ca26 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 ce771e892775a3eff141ff75d14d6897a46190b3..1982d093a4d8f1824bdf6d170cedf39cf55a5132 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -29,10 +29,6 @@ "tszKeyFile":"./APPVer.key", "tszKeyPass":"123123qa" }, - "st_PassCrypto":{ - "bEnable":false, - "nCodec":2 - }, "st_XToken":{ "bAutoRenewal":false, "nRenewalTime":-1 diff --git a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json index 7244c24fe63729c2feeccca6066d121d7f7544ab..fe04ca9fdb93f71e86d90402082b78c8939b37f6 100644 --- a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json +++ b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json @@ -1,5 +1,6 @@ { "XVer":[ + "V3.18.0.1001 Build20250510", "V3.17.0.1001 Build20250305", "V3.16.0.1001 Build20250113", "V3.15.0.1001 Build20241121", diff --git a/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp b/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp index 370a155e2232799756e9e8d2ea0992f6579b9f1b..4d57d3661659796b195882d766d8214e2152cf40 100644 --- a/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp +++ b/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp @@ -97,7 +97,7 @@ bool CAuthorize_CDKey::Authorize_CDKey_WriteKey(LPCXSTR lpszFileKey, XENGINE_AUT memset(tszTimeStart, '\0', sizeof(tszTimeStart)); memset(tszTimeEnd, '\0', sizeof(tszTimeEnd)); BaseLib_Time_TimeToStr(tszTimeEnd); - BaseLib_TimeSpan_GetForStr(pSt_AuthLocal->st_AuthRegInfo.tszStartTime, tszTimeEnd, &nUsedTime, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStr(pSt_AuthLocal->st_AuthRegInfo.tszStartTime, tszTimeEnd, &nUsedTime, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); pSt_AuthLocal->st_AuthRegInfo.nHasTime -= nUsedTime; } //添加注册信息 @@ -472,7 +472,7 @@ bool CAuthorize_CDKey::Authorize_CDKey_WriteMemory(XCHAR* ptszMsgBuffer, int* pI memset(tszTimeStart, '\0', sizeof(tszTimeStart)); memset(tszTimeEnd, '\0', sizeof(tszTimeEnd)); BaseLib_Time_TimeToStr(tszTimeEnd); - BaseLib_TimeSpan_GetForStr(pSt_AuthLocal->st_AuthRegInfo.tszStartTime, tszTimeEnd, &nUsedTime, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStr(pSt_AuthLocal->st_AuthRegInfo.tszStartTime, tszTimeEnd, &nUsedTime, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); pSt_AuthLocal->st_AuthRegInfo.nHasTime -= nUsedTime; } //添加注册信息 @@ -1009,7 +1009,7 @@ bool CAuthorize_CDKey::Authorize_CDKey_GetLeftTimer(XENGINE_AUTHORIZE_LOCAL* pSt else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_CUSTOM == pSt_AuthLocal->st_AuthRegInfo.enSerialType) { _stxscanf(pSt_AuthLocal->st_AuthRegInfo.tszLeftTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), &st_EndTimer.wYear, &st_EndTimer.wMonth, &st_EndTimer.wDay, &st_EndTimer.wHour, &st_EndTimer.wMinute, &st_EndTimer.wSecond); - BaseLib_TimeSpan_GetForStu(&st_SysTimer, &st_EndTimer, &pSt_AuthLocal->st_AuthRegInfo.nHasTime, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStu(&st_SysTimer, &st_EndTimer, &pSt_AuthLocal->st_AuthRegInfo.nHasTime, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); } else { diff --git a/XEngine_Source/AuthorizeModule_CDKey/Makefile b/XEngine_Source/AuthorizeModule_CDKey/Makefile index 13dae64f27d32d7a0b318dd5518d826df95febae..209c6f0d61bb24b97673451ddae9323e71b10685 100644 --- a/XEngine_Source/AuthorizeModule_CDKey/Makefile +++ b/XEngine_Source/AuthorizeModule_CDKey/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ LIB = -lXEngine_BaseLib -lXEngine_SystemConfig LIBEX = @@ -13,31 +9,29 @@ LOADSO = OBJECTS = Authorize_Serial.o Authorize_CDKey.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp index 5835bba3e2b3c2a6012af86a75ce9347d8c877e4..ab57a938694993b6682fa9e235439b075077edfa 100644 --- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp +++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp @@ -140,12 +140,17 @@ bool CAuthClient_Connector::AuthClient_Connector_GetAuth(bool* pbAuth /* = NULL 类型:句柄型 可空:Y 意思:输入动态码绑定的句柄 + 参数.五:dwCryption + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入密码加密类型 返回值 类型:逻辑型 意思:是否成功 备注: *********************************************************************/ -bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, int nDYCode /* = 0 */, XNETHANDLE xhToken /* = 0 */) +bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode /* = 0 */, XNETHANDLE xhToken /* = 0 */, XLONG dwCryption /* = 0 */) { AuthClient_IsErrorOccur = false; @@ -174,7 +179,18 @@ bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR st_AuthUser.enDeviceType = ENUM_PROTOCOL_FOR_DEVICE_TYPE_PC_MACOS; #endif _tcsxcpy(st_AuthUser.tszUserName, lpszUser); - _tcsxcpy(st_AuthUser.tszUserPass, lpszPass); + + if (dwCryption > 0) + { + int nPLen = _tcsxlen(lpszPass); + XBYTE byMD5Buffer[MAX_PATH] = {}; + Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen, false, dwCryption); + BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_AuthUser.tszUserPass); + } + else + { + _tcsxcpy(st_AuthUser.tszUserPass, lpszPass); + } //是否有动态码 if (nDYCode > 0) { diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h index 88f9e3837fa4b63191a230977705a3c57c9fbbb3..aaebe8923e7e580853403332b3eb734c7ae30860 100644 --- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h +++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h @@ -26,7 +26,7 @@ public: bool AuthClient_Connector_Connect(LPCXSTR lpszClientAddr, int nPort, LPCXSTR lpszPass = NULL); bool AuthClient_Connector_Close(); bool AuthClient_Connector_GetAuth(bool* pbAuth = NULL); - bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, int nDYCode = 0, XNETHANDLE xhToken = 0); + bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0); bool AuthClient_Connector_Heart(bool bEnable = true); protected: static XHTHREAD CALLBACK AuthClient_Connector_Thread(XPVOID lParam); diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h b/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h index f67f63fa5e9155e93f2a5f941d7cdbacf1aa8208..b8a37622adb5f4a283f5e65887ee24fb9be32053 100644 --- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h +++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h @@ -87,12 +87,17 @@ extern "C" bool AuthClient_Connector_GetAuth(bool* pbAuth = NULL); 类型:句柄型 可空:Y 意思:输入动态码绑定的句柄 + 参数.五:dwCryption + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入密码加密类型 返回值 类型:逻辑型 意思:是否成功 备注: *********************************************************************/ -extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, int nDYCode = 0, XNETHANDLE xhToken = 0); +extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0); /******************************************************************** 函数名称:AuthClient_Connector_Heart 函数功能:启用禁用客户端心跳 diff --git a/XEngine_Source/AuthorizeModule_Client/Makefile b/XEngine_Source/AuthorizeModule_Client/Makefile index d1db73d6c13aceeb73a30146542469e912c01822..3f228543395dd73c27e4626bf94b776cea099340 100644 --- a/XEngine_Source/AuthorizeModule_Client/Makefile +++ b/XEngine_Source/AuthorizeModule_Client/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp LIB = -ljsoncpp -lXEngine_BaseLib -lXEngine_Cryption -lXClient_Socket -lXClient_APIHelp -lXEngine_SystemApi @@ -13,31 +9,29 @@ LIBEX = OBJECTS = AuthClient_Connector.o AuthClient_HTTPVer.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Client/pch.cpp b/XEngine_Source/AuthorizeModule_Client/pch.cpp index 18899b63ba42ce007aa07ff9aebd0b6c14f795f0..69b56a912fcae8f7b0cb9c79431326a481f20f19 100644 --- a/XEngine_Source/AuthorizeModule_Client/pch.cpp +++ b/XEngine_Source/AuthorizeModule_Client/pch.cpp @@ -43,9 +43,9 @@ extern "C" bool AuthClient_Connector_GetAuth(bool* pbAuth) { return m_Connector.AuthClient_Connector_GetAuth(pbAuth); } -extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, int nDYCode, XNETHANDLE xhToken) +extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode, XNETHANDLE xhToken, XLONG dwCryption) { - return m_Connector.AuthClient_Connector_Login(lpszUser, lpszPass, nDYCode, xhToken); + return m_Connector.AuthClient_Connector_Login(lpszUser, lpszPass, nDYCode, xhToken, dwCryption); } extern "C" bool AuthClient_Connector_Heart(bool bEnable) { diff --git a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h index 46bc8935fefef636a09b841ea0d4a08b9227549d..2cc0e8888dc510e37dcadd8d091307ca78749159 100644 --- a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h +++ b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h @@ -45,11 +45,6 @@ typedef struct XCHAR tszKeyFile[MAX_PATH]; //本地CDKEY文件地址 XCHAR tszKeyPass[MAX_PATH]; //本地CDKEY密码 }st_XCDKey; - struct - { - bool bEnable; //是否启用 - int nCodec; //加密方法:ENUM_XENGINE_OPENSSL_DIGEST - }st_PassCrypto; struct { bool bAutoRenewal; //自动续期 diff --git a/XEngine_Source/AuthorizeModule_Configure/Makefile b/XEngine_Source/AuthorizeModule_Configure/Makefile index f3edf6ef7ab59f603b271e6e8022adca418b0e84..923ca653dacf6b573a2db60f3a57194a013312b7 100644 --- a/XEngine_Source/AuthorizeModule_Configure/Makefile +++ b/XEngine_Source/AuthorizeModule_Configure/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp LIB = -ljsoncpp @@ -13,31 +9,29 @@ LIBEX = OBJECTS = ModuleConfigure_Json.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index c30b95ef6617edff2148f142c7559f0c69f64fd6..c21f251335ec40f8345bfdcbb0ab0c8d8da019df 100644 --- a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -113,7 +113,7 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE pSt_ServerConfig->st_XTime.nWSTime = st_JsonXTime["nWSTime"].asInt(); pSt_ServerConfig->st_XTime.nHTTPTime = st_JsonXTime["nHTTPTime"].asInt(); //验证配置 - if (st_JsonRoot["XVerification"].empty() || (9 != st_JsonRoot["XVerification"].size())) + if (st_JsonRoot["XVerification"].empty() || (8 != st_JsonRoot["XVerification"].size())) { Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XVER; @@ -130,9 +130,6 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE _tcsxcpy(pSt_ServerConfig->st_XVerification.st_XCDKey.tszKeyFile, st_JsonXVerification["st_XCDKey"]["tszKeyFile"].asCString()); _tcsxcpy(pSt_ServerConfig->st_XVerification.st_XCDKey.tszKeyPass, st_JsonXVerification["st_XCDKey"]["tszKeyPass"].asCString()); - pSt_ServerConfig->st_XVerification.st_PassCrypto.bEnable = st_JsonXVerification["st_PassCrypto"]["bEnable"].asBool(); - pSt_ServerConfig->st_XVerification.st_PassCrypto.nCodec = st_JsonXVerification["st_PassCrypto"]["nCodec"].asInt(); - pSt_ServerConfig->st_XVerification.st_XToken.bAutoRenewal = st_JsonXVerification["st_XToken"]["bAutoRenewal"].asBool(); pSt_ServerConfig->st_XVerification.st_XToken.nRenewalTime = st_JsonXVerification["st_XToken"]["nRenewalTime"].asInt(); //登录配置 diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp index f7a7abe3f47c207c8a41b8c15652756b5f2862fb..c2241c20c74e7824f00839a6598bdcac41155137 100644 --- a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp +++ b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp @@ -622,7 +622,6 @@ bool CDBModule_MySQL::DBModule_MySQL_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lp SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 - char** ppszResult = NULL; __int64u nRow = 0; __int64u nColumn = 0; XNETHANDLE xhTable = 0; @@ -644,7 +643,7 @@ bool CDBModule_MySQL::DBModule_MySQL_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lp SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; return false; } - ppszResult = DataBase_MySQL_GetResult(xhData, xhTable); + DataBase_MySQL_FreeResult(xhData, xhTable); return true; } /******************************************************************** diff --git a/XEngine_Source/AuthorizeModule_Database/Makefile b/XEngine_Source/AuthorizeModule_Database/Makefile index 42ca1faed2b74febb94f1bdea99828a9cd95a8b1..cd52a3b6c5c83f1c607616772e7364b842298613 100644 --- a/XEngine_Source/AuthorizeModule_Database/Makefile +++ b/XEngine_Source/AuthorizeModule_Database/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ LOADSO = -L ../AuthorizeModule_CDKey LIB = -lXEngine_BaseLib -lHelpComponents_DataBase -lAuthorizeModule_CDKey @@ -13,31 +9,29 @@ LIBEX = OBJECTS = DBModule_SQLite.o DBModule_MySQL.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_Define.h b/XEngine_Source/AuthorizeModule_Help/AuthHelp_Define.h index 21c165aa6e5749013121433117f78a513d53fff1..309a9d3822754e95a2238c049bcb2b6a585c1b2b 100644 --- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_Define.h +++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_Define.h @@ -58,7 +58,7 @@ extern "C" bool AuthHelp_DynamicCode_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, int* pInt_DynamicCode); +extern "C" bool AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode); /******************************************************************** 函数名称:AuthHelp_DynamicCode_Get 函数功能:获取句柄和动态码绑定信息 diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp index cb3debe88886a0bb6d1baca733497613191272eb..e52a239087f4b321e99563151e5a5d8bebbf192e 100644 --- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp +++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp @@ -89,7 +89,7 @@ bool CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Destory() 意思:是否成功 备注: *********************************************************************/ -bool CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, int* pInt_DynamicCode) +bool CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode) { Help_IsErrorOccur = false; @@ -104,7 +104,7 @@ bool CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, in st_DynamicCode.nTimeStart = time(NULL); BaseLib_Handle_Create(&st_DynamicCode.xhToken); - BaseLib_Handle_Create((XNETHANDLE*)&st_DynamicCode.nDynamicCode, 100001, 999999); + BaseLib_Handle_Create((XNETHANDLE*)&st_DynamicCode.nDynamicCode, 10001, 65535); *pxhToken = st_DynamicCode.xhToken; *pInt_DynamicCode = st_DynamicCode.nDynamicCode; diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h index 255d087f2295b936222e5c68de9f98cc81b96b50..10be31ca15c99b6a1e10a1cf7a12e8a772f307ef 100644 --- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h +++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h @@ -13,7 +13,7 @@ typedef struct { XNETHANDLE xhToken; - int nDynamicCode; + XSHOT nDynamicCode; time_t nTimeStart; }AUTHHELP_DYNAMICCODE; @@ -25,7 +25,7 @@ public: public: bool AuthHelp_DynamicCode_Init(int nSecond); bool AuthHelp_DynamicCode_Destory(); - bool AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, int* pInt_DynamicCode); + bool AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode); bool AuthHelp_DynamicCode_Get(XNETHANDLE xhToken, int nDynamicCode); protected: static XHTHREAD CALLBACK AuthHelp_DynamicCode_Thread(XPVOID lParam); diff --git a/XEngine_Source/AuthorizeModule_Help/Makefile b/XEngine_Source/AuthorizeModule_Help/Makefile index d80c10ea05393ab0a728aee51fd446215cfb151d..1649d0747165761bc183728cd5343e8705ad5e09 100644 --- a/XEngine_Source/AuthorizeModule_Help/Makefile +++ b/XEngine_Source/AuthorizeModule_Help/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ LOADSO = -L LIB = -lXEngine_BaseLib @@ -13,31 +9,29 @@ LIBEX = OBJECTS = AuthHelp_DynamicCode.o AuthHelp_MultiLogin.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Help/pch.cpp b/XEngine_Source/AuthorizeModule_Help/pch.cpp index 892517599193a3c2299bfa83284a8d5b82d0db45..2707ec15b97751a6ebc8e4996e4417a5e6e023e3 100644 --- a/XEngine_Source/AuthorizeModule_Help/pch.cpp +++ b/XEngine_Source/AuthorizeModule_Help/pch.cpp @@ -45,7 +45,7 @@ extern "C" bool AuthHelp_DynamicCode_Destory() { return m_HelpDynamic.AuthHelp_DynamicCode_Destory(); } -extern "C" bool AuthHelp_DynamicCode_Create(XNETHANDLE * pxhToken, int* pInt_DynamicCode) +extern "C" bool AuthHelp_DynamicCode_Create(XNETHANDLE * pxhToken, XSHOT* pInt_DynamicCode) { return m_HelpDynamic.AuthHelp_DynamicCode_Create(pxhToken, pInt_DynamicCode); } diff --git a/XEngine_Source/AuthorizeModule_Protocol/Makefile b/XEngine_Source/AuthorizeModule_Protocol/Makefile index 1aa6af0eea4e07c047913732c8f4c8e3a8545693..63f4c3398f5bc27ce66b843bf348c0501111e33e 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Makefile +++ b/XEngine_Source/AuthorizeModule_Protocol/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp LIB = -ljsoncpp -lXEngine_BaseLib @@ -13,31 +9,29 @@ LIBEX = OBJECTS = Protocol_Packet.o Protocol_Parse.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h index c5cb2019e734f9550f52cfb7075e2ea706fb4b02..1297585683b5801c5f6d38be4c2ebdcb7ec44328 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h @@ -277,7 +277,7 @@ extern "C" bool Protocol_Packet_HttpSerialList(XCHAR* ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, int nDCode = 0); +extern "C" bool Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, XSHOT nDCode = 0); /******************************************************************** 函数名称:Protocol_Packet_HttpSwitch 函数功能:打包开关功能选项 diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp index 891f678464fc917a5370ad4acbe8b7f192cc33fb..9e67289ed5d4ba2c5a89c79ff89410806c83f650 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp @@ -575,7 +575,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpSerialList(XCHAR* ptszMsgBuffer, int* 意思:是否成功 备注: *********************************************************************/ -bool CProtocol_Packet::Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, int nDCode /* = 0 */) +bool CProtocol_Packet::Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, XSHOT nDCode /* = 0 */) { Protocol_IsErrorOccur = false; diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h index 8261a6656edd4a17d472f5905a5daef6c23a0d01..d2caf409948de115bbe9419f2c4494621e095ae8 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h @@ -26,7 +26,7 @@ public: bool Protocol_Packet_HttpClientInfo(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_USERTABLE* pSt_UserTable); bool Protocol_Packet_HttpClientList(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHSESSION_NETCLIENT*** pppSt_OnClient, int nOnCount, AUTHREG_USERTABLE*** pppSt_OffClient, int nOffCount); bool Protocol_Packet_HttpSerialList(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_SERIALTABLE*** pppSt_SerialList, int nListCount); - bool Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, int nDCode = 0); + bool Protocol_Packet_HttpToken(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, XSHOT nDCode = 0); bool Protocol_Packet_HttpSwitch(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_FUNCTIONSWITCH* pSt_FunSwitch); bool Protocol_Packet_HttpBanned(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_BANNED*** pppSt_BannedUser, int nUserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int nAddrCount); bool Protocol_Packet_HttpAnnouncement(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_ANNOUNCEMENT*** pppSt_Announcement, int nListCount); diff --git a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp index 56d6870fe7ea4829cbc6af1fb82a2df8bff77f47..0b468218be23ac4785eaa8e1da5e4d6dcb33e1e1 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp @@ -63,7 +63,7 @@ extern "C" bool Protocol_Packet_HttpSerialList(XCHAR * ptszMsgBuffer, int* pInt_ { return m_ProtocolPacket.Protocol_Packet_HttpSerialList(ptszMsgBuffer, pInt_MsgLen, pppSt_SerialList, nListCount); } -extern "C" bool Protocol_Packet_HttpToken(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, int nDCode) +extern "C" bool Protocol_Packet_HttpToken(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nTimeout, XSHOT nDCode) { return m_ProtocolPacket.Protocol_Packet_HttpToken(ptszMsgBuffer, pInt_MsgLen, xhToken, nTimeout, nDCode); } diff --git a/XEngine_Source/AuthorizeModule_Session/Makefile b/XEngine_Source/AuthorizeModule_Session/Makefile index dee9184d29508f3ec3d2d0c847f68ee859493173..b25b0a9c8bcabc39d52c2dd943d9ef58d1ba4013 100644 --- a/XEngine_Source/AuthorizeModule_Session/Makefile +++ b/XEngine_Source/AuthorizeModule_Session/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -fPIC -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ LOADSO = LIB = -lXEngine_BaseLib @@ -13,31 +9,29 @@ LIBEX = OBJECTS = Session_Authorize.o Session_Token.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -46,7 +40,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/AuthorizeModule_Session/Session_Authorize/Session_Authorize.cpp b/XEngine_Source/AuthorizeModule_Session/Session_Authorize/Session_Authorize.cpp index 5aac6f2a2745edba814576171ad08b665b0392e8..4bd8a6030ff4287bad059e11939ae2197343be74 100644 --- a/XEngine_Source/AuthorizeModule_Session/Session_Authorize/Session_Authorize.cpp +++ b/XEngine_Source/AuthorizeModule_Session/Session_Authorize/Session_Authorize.cpp @@ -407,7 +407,7 @@ XHTHREAD CSession_Authorize::Session_Authorize_ActiveThread(XPVOID lParam) //获取现在的系统时间 BaseLib_Time_GetSysTime(&st_LibTimer); //用户登录了多少秒钟 - BaseLib_TimeSpan_GetForStu(&stl_ListIterator->st_LibTimer, &st_LibTimer, &nOnlineSpan, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStu(&stl_ListIterator->st_LibTimer, &st_LibTimer, &nOnlineSpan, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); nTimeCount += nOnlineSpan; //登陆成功的。我们要处理他过期 switch (stl_ListIterator->st_UserTable.enSerialType) @@ -471,7 +471,7 @@ XHTHREAD CSession_Authorize::Session_Authorize_ActiveThread(XPVOID lParam) break; } //剩余天数,通过秒钟来处理 - BaseLib_TimeSpan_GetForStu(&st_LibTimer, &st_TimeLeft, &nLeftTime, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStu(&st_LibTimer, &st_TimeLeft, &nLeftTime, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); //获取过期时间 stl_ListIterator->nLeftTime = nLeftTime; stl_ListIterator->nOnlineTime = nOnlineSpan; diff --git a/XEngine_Source/AuthorizeModule_Session/Session_Token/Session_Token.cpp b/XEngine_Source/AuthorizeModule_Session/Session_Token/Session_Token.cpp index a0fec871f6508a0f1c23eedbc75f2cbd76518f56..5e6f743023cbc5a364449ad10604d0f0ac34675f 100644 --- a/XEngine_Source/AuthorizeModule_Session/Session_Token/Session_Token.cpp +++ b/XEngine_Source/AuthorizeModule_Session/Session_Token/Session_Token.cpp @@ -342,7 +342,7 @@ XHTHREAD CSession_Token::Session_Token_Thread(XPVOID lParam) BaseLib_Time_GetSysTime(&st_LibTimer); //获取现在的系统时间 __int64x nOnlineSpan = 0; //在线时间 //用户登录了多少秒 - BaseLib_TimeSpan_GetForStu(&stl_MapIterator->second.st_LibTimer, &st_LibTimer, &nOnlineSpan, ENUM_XENGINE_BASELIB_TIME_SPAN_TYPE_SECOND); + BaseLib_TimeSpan_GetForStu(&stl_MapIterator->second.st_LibTimer, &st_LibTimer, &nOnlineSpan, ENUM_XENGINE_BASELIB_TIME_TYPE_SECOND); if (stl_MapIterator->second.nTimeout > 0) { if (nOnlineSpan > stl_MapIterator->second.nTimeout) diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index d6c4c6f1b007b781f4282462cbb13471eb11827e..3436b2c364c625c4b2f6f989d0c5ad4fdb10e4a6 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -44,19 +44,19 @@ else endif libAuthorizeModule_CDKey.so: - make -C $(AUTH_CDKEY_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_CDKEY_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Session.so: - make -C $(AUTH_SESSION_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_SESSION_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Database.so: - make -C $(AUTH_DATABASE_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_DATABASE_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Protocol.so: - make -C $(AUTH_PROTOCOL_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_PROTOCOL_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Configure.so: - make -C $(AUTH_CONFIGURE_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_CONFIGURE_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Help.so: - make -C $(AUTH_HELP_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_HELP_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) libAuthorizeModule_Client.so: - make -C $(AUTH_CLIENT_PATH) PLATFORM=$(PLATFORM) $(FLAGS) + make -C $(AUTH_CLIENT_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) XEngine_AuthorizeApp.exe: - make -C $(AUTH_APP_PATH) PLATFORM=$(PLATFORM) $(FLAGS) \ No newline at end of file + make -C $(AUTH_APP_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS) \ No newline at end of file diff --git a/XEngine_Source/XAuth_BuildSwitch.h b/XEngine_Source/XAuth_BuildSwitch.h index f71e021a94be1df18484398e84ebb7c41a19f0cb..7ec160f317d8c0c9c52932d560e652c419feefc2 100644 --- a/XEngine_Source/XAuth_BuildSwitch.h +++ b/XEngine_Source/XAuth_BuildSwitch.h @@ -14,5 +14,5 @@ #define _XAUTH_BUILD_SWITCH_CLIENT_HTTP 1 #if (XENGINE_VERSION_KERNEL <= 9) && (XENGINE_VERSION_MAIN < 10) - typedef XENGINE_LIBTIMER XENGINE_LIBTIME; +typedef XENGINE_LIBTIMER XENGINE_LIBTIME; #endif \ No newline at end of file diff --git a/XEngine_Source/XAuth_Protocol.h b/XEngine_Source/XAuth_Protocol.h index 64d2370afbca461a26abb8636ab1f9a5f9a8a16e..3f7f969f80db7f2f30d3c6f9acf065c9d806ca6b 100644 --- a/XEngine_Source/XAuth_Protocol.h +++ b/XEngine_Source/XAuth_Protocol.h @@ -32,6 +32,29 @@ #define XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPDCODE 0x2011 #define XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_TIMEDOUT 0x2FFF //通知客户端时间到期 ////////////////////////////////////////////////////////////////////////// +// 导出的错误码 +////////////////////////////////////////////////////////////////////////// +#define ERROR_AUTHORIZE_PROTOCOL_USER 0x100 //用户错误 +#define ERROR_AUTHORIZE_PROTOCOL_PASS 0x101 //密码错误 +#define ERROR_AUTHORIZE_PROTOCOL_CLOSED 0x102 //此功能关闭 +#define ERROR_AUTHORIZE_PROTOCOL_DEVICE 0x103 //设备类型未知 +#define ERROR_AUTHORIZE_PROTOCOL_DYNAMICCODE 0x104 //动态码错误 +#define ERROR_AUTHORIZE_PROTOCOL_PASSVER 0x105 //三方验证错误 +#define ERROR_AUTHORIZE_PROTOCOL_BANNED 0x106 //用户被禁用 +#define ERROR_AUTHORIZE_PROTOCOL_HARDCODE 0x107 //硬件码错误 +#define ERROR_AUTHORIZE_PROTOCOL_LOGINED 0x108 //已经登录 +#define ERROR_AUTHORIZE_PROTOCOL_TIMELEFT 0x109 //时间耗尽 +#define ERROR_AUTHORIZE_PROTOCOL_REQUEST 0x110 //请求内容错误 +#define ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE 0x111 //未授权 +#define ERROR_AUTHORIZE_PROTOCOL_NOTFOUND 0x112 //未找到请求的数据 +#define ERROR_AUTHORIZE_PROTOCOL_NOTSUPPORT 0x113 //不支持 +#define ERROR_AUTHORIZE_PROTOCOL_NOTMATCH 0x114 //数据不匹配 +#define ERROR_AUTHORIZE_PROTOCOL_TIMEOUT 0x115 //超时 +#define ERROR_AUTHORIZE_PROTOCOL_PERMISSION 0x116 //用户权限错误 + +#define ERROR_AUTHORIZE_PROTOCOL_SERVER 0x201 //服务端内部错误 +#define ERROR_AUTHORIZE_PROTOCOL_LIMIT 0x202 //服务端内部限制,数据过大后者过小 +////////////////////////////////////////////////////////////////////////// // 导出的枚举型 ////////////////////////////////////////////////////////////////////////// #ifndef _MSC_BUILD diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp index af6bdcbe11e672619c051c3ca1ffecfbe9947396..759d9d399ceb82ec721c471d5264680e1a3d1eb9 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp @@ -63,7 +63,7 @@ BOOL CDialog_Modify::OnInitDialog() for (int i = 0; i < 21; i++) { USES_CONVERSION; - m_ComboLeave.InsertString(i, A2W(lpszXLevelType[i])); + m_ComboLeave.InsertString(i, A2W(lpszXLevelType[i + 1])); } m_DateTimeRegister.SetFormat(_T("yyyy-MM-dd HH:mm:ss")); POSITION pSt_Sition = pUserWnd->m_ListCtrlClient.GetFirstSelectedItemPosition(); @@ -168,7 +168,7 @@ BOOL CDialog_Modify::OnInitDialog() m_EditLeftTime.SetWindowText(A2W(st_JsonObject["tszLeftTime"].asCString())); m_ComboSerial.SetCurSel(st_JsonObject["enSerialType"].asInt()); - m_ComboLeave.SetCurSel(st_JsonObject["st_UserInfo"]["nUserLevel"].asInt() + 1); + m_ComboLeave.SetCurSel(st_JsonObject["st_UserInfo"]["nUserLevel"].asInt()); if (ENUM_XENGINE_PROTOCOLHDR_LEVEL_TYPE_ROOT == st_JsonObject["st_UserInfo"]["nUserLevel"].asInt()) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc index 15f027a72c6e48de12d7b548c38a4e97cb2de48e..94012f1fd42f838aed991632b0db167d8039c57d 100644 Binary files a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc and b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc differ diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp index 5efb9d9d4c0b8188c8de79775f3c30bbf1865c07..c8df52f30a484d1a65fd770894c8a1a011ba9125 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp @@ -115,7 +115,7 @@ BOOL CXEngineAuthorizeAppDlg::OnInitDialog() //调整子对话框在父窗口中的位置 CRect st_Rect; m_TabWindows.GetClientRect(&st_Rect); - st_Rect.top += 20; + st_Rect.top += 30; st_Rect.bottom -= 1; st_Rect.left += 1; st_Rect.right -= 1; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_GetTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_GetTask.cpp index cf3a8d12da7583d4903ecd5dd67d975e833964a4..663358e2ea673f574dd1e68bbbe8100494459ca2 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_GetTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_GetTask.cpp @@ -22,7 +22,7 @@ bool XEngine_AuthorizeHTTP_GetTask(LPCXSTR lpszClientAddr, XCHAR** pptszList, in AUTHREG_USERTABLE st_UserTable = {}; if (!Session_Token_Get(_ttxoll(tszUserToken), &st_UserTable)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,获取时间失败,无法继续,错误:%X"), lpszClientAddr, Session_GetLastError()); return false; @@ -31,7 +31,7 @@ bool XEngine_AuthorizeHTTP_GetTask(LPCXSTR lpszClientAddr, XCHAR** pptszList, in AUTHSESSION_NETCLIENT** ppSt_ListClient; if (!Session_Authorize_GetClient(&ppSt_ListClient, &nListCount, st_UserTable.st_UserInfo.tszUserName)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,获取时间失败,无法继续,错误:%X"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, Session_GetLastError()); return false; @@ -45,13 +45,13 @@ bool XEngine_AuthorizeHTTP_GetTask(LPCXSTR lpszClientAddr, XCHAR** pptszList, in { if (!st_FunSwitch.bSwitchDCode) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获得动态验证码失败,服务器已经关闭此功能!"), lpszClientAddr); return false; } //http://app.xyry.org:5302/api?function=dcode - int nDCode = 0; + XSHOT nDCode = 0; XNETHANDLE xhToken = 0; AuthHelp_DynamicCode_Create(&xhToken, &nDCode); Protocol_Packet_HttpToken(tszSDBuffer, &nSDLen, xhToken, st_AuthConfig.st_XVerification.nDynamicTimeout, nDCode); @@ -67,7 +67,7 @@ bool XEngine_AuthorizeHTTP_GetTask(LPCXSTR lpszClientAddr, XCHAR** pptszList, in AUTHREG_USERTABLE st_UserTable = {}; if (!Session_Token_Get(_ttxoll(tszUserToken), &st_UserTable)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,获取通告失败,无法继续,错误:%X"), lpszClientAddr, Session_GetLastError()); return false; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp index 9bc702e225fd68ef06275a7783be1836fafbe1c4..0ee1f68cbdd6b5f2ca3979273caef9f0d9982b96 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp @@ -31,7 +31,7 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int if (nListCount < 4) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request parament is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "request parament is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录失败,请求参数不正确"), lpszClientAddr); return false; @@ -45,7 +45,7 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int //+ &token=1000112345&dcode=123456 if (nListCount != 6) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request parament is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "request parament is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录失败,登录参数错误,验证码或者TOKEN未填写"), lpszClientAddr); return false; @@ -62,7 +62,7 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int xhToken = _ttxoll(tszTokenStr); if (!AuthHelp_DynamicCode_Get(xhToken, _ttxoi(tszDCodeStr))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request parament is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_DYNAMICCODE, "request parament is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录失败,验证动态码失败,句柄:%llu,动态码;%s,错误码:%lX"), lpszClientAddr, xhToken, tszDCodeStr, AuthHelp_GetLastError()); return false; @@ -79,14 +79,14 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_USER, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,登录失败,用户名不存在"), lpszClientAddr); return false; } if ((_tcsxlen(tszUserPass) != _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)) || (0 != _tcsxncmp(tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(tszUserPass)))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "password is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PASS, "password is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,登录失败,密码错误"), lpszClientAddr); return false; @@ -102,7 +102,7 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int //权限是否正确 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "User Permission Verification is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_BANNED, "User Permission Verification is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,登录失败,客户端权限不足够"), lpszClientAddr, tszUserName); return false; @@ -126,7 +126,7 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int if (!Session_Token_UPDate(_ttxoll(tszUserToken))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,更新TOKEN失败,不存在的Token:%s"), lpszClientAddr, tszUserToken); return false; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp index 879a5036c56847ff56ccbbe547c42317bf4ece43..a192494165e7ea1325f7e08efea07867283183a1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp @@ -2,21 +2,20 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCXSTR lpszMsgBuffer, int nMsgLen) { - int nSDLen = 8196; - XCHAR tszSDBuffer[8196]; + int nSDLen = 0; LPCXSTR lpszAPIInsert = _X("insert"); LPCXSTR lpszAPIDelete = _X("delete"); LPCXSTR lpszAPIList = _X("list"); - - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - + + CHttpMemory_PoolEx m_MemoryPool(XENGINE_MEMORY_SIZE_MAX); if (!st_FunSwitch.bSwitchNotice) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,公告系统协议处理失败,功能已经被服务器关闭!"), lpszClientAddr); return false; } + if (0 == _tcsxnicmp(lpszAPIInsert, lpszAPIName, _tcsxlen(lpszAPIInsert))) { int nListCount = 0; @@ -33,16 +32,16 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN } if (nListCount > 10) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 510, "server limited"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_LIMIT, "server limited"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,公告系统协议处理失败,超过了服务器限制的公告数量!"), lpszClientAddr); return false; } Protocol_Parse_HttpParseAnnouncement(lpszMsgBuffer, nMsgLen, &st_Announcement); if (_tcsxlen(st_Announcement.tszContext) <= 1) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 510, "server limited"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_LIMIT, "server limited"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,公告系统协议处理失败,内容不能小于1个字节!"), lpszClientAddr); return false; } @@ -54,8 +53,8 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN { DBModule_MySQL_AnnouncementInsert(&st_Announcement); } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,插入公告成功,公告信息:%s"), lpszClientAddr, st_Announcement.tszContext); } else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) @@ -72,8 +71,8 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN { DBModule_MySQL_AnnouncementDelete(&st_Announcement); } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,删除公告成功.删除公告ID:%lld"), lpszClientAddr, st_Announcement.nID); } else if (0 == _tcsxnicmp(lpszAPIList, lpszAPIName, _tcsxlen(lpszAPIList))) @@ -89,8 +88,8 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN { DBModule_MySQL_AnnouncementList(&ppSt_Announcement, &nListCount); } - Protocol_Packet_HttpAnnouncement(tszSDBuffer, &nSDLen, &ppSt_Announcement, nListCount); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpAnnouncement(m_MemoryPool.get(), &nSDLen, &ppSt_Announcement, nListCount); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); BaseLib_Memory_Free((XPPPMEM)&ppSt_Announcement, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,查询公告列表成功,公告个数:%d"), lpszClientAddr, nListCount); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp index ce7316b25619b9507a8f4ff34c888eb4e7a04136..4a743aa7a391e74646a00826ab7481bf86e574e1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp @@ -2,19 +2,17 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCXSTR lpszMsgBuffer, int nMsgLen) { - int nSDLen = 8196; - XCHAR tszSDBuffer[8196]; + int nSDLen = 0; LPCXSTR lpszAPIInsert = _X("insert"); LPCXSTR lpszAPIDelete = _X("delete"); LPCXSTR lpszAPIList = _X("list"); LPCXSTR lpszAPIModify = _X("modify"); - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - + CHttpMemory_PoolEx m_MemoryPool(XENGINE_MEMORY_SIZE_MAX); if (!st_FunSwitch.bSwitchBanned) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,黑名单协议处理失败,功能已经被服务器关闭!"), lpszClientAddr); return false; } @@ -33,8 +31,8 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L { DBModule_MySQL_BannedInsert(&st_Banned); } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,插入禁用列表成功,禁用的用户:%s,禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); } else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) @@ -51,8 +49,8 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L { DBModule_MySQL_BannedDelete(&st_Banned); } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,删除禁用列表成功,删除禁用的用户:%s,删除禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); } else if (0 == _tcsxnicmp(lpszAPIList, lpszAPIName, _tcsxlen(lpszAPIList))) @@ -74,8 +72,8 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L { DBModule_MySQL_BannedList(&ppSt_BannedUser, &nCountUser, &ppSt_BannedAddr, &nCountAddr, nPosStart, nPosEnd); } - Protocol_Packet_HttpBanned(tszSDBuffer, &nSDLen, &ppSt_BannedUser, nCountUser, &ppSt_BannedAddr, nCountAddr); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpBanned(m_MemoryPool.get(), &nSDLen, &ppSt_BannedUser, nCountUser, &ppSt_BannedAddr, nCountAddr); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); BaseLib_Memory_Free((XPPPMEM)&ppSt_BannedAddr, nCountAddr); BaseLib_Memory_Free((XPPPMEM)&ppSt_BannedUser, nCountUser); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,查询禁用列表成功,禁用的用户个数:%d,禁用的IP地址个数:%d"), lpszClientAddr, nCountUser, nCountAddr); @@ -94,8 +92,8 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L { DBModule_MySQL_BannedUPDate(&st_Banned); } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,修改禁用列表成功,修改的用户:%s,修改的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); } return true; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp index 5441249bfccc3588e44a3dae42ec3f021df79a98..35748817c75b69509d16782650e57cc4f7d38c41 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp @@ -2,21 +2,18 @@ bool XEngine_AuthorizeHTTP_CDKey(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCXSTR lpszMsgBuffer, int nMsgLen) { - int nSDLen = 8196; - int nRVLen = 8196; - XCHAR tszSDBuffer[8196]; - XCHAR tszRVBuffer[8196]; + int nSDLen = 0; + int nRVLen = 0; LPCXSTR lpszAPICreate = _X("create"); LPCXSTR lpszAPIAuth = _X("auth"); LPCXSTR lpszAPIVer = _X("ver"); - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); - + CHttpMemory_PoolEx m_MemoryPoolSend(XENGINE_MEMORY_SIZE_MAX); + CHttpMemory_PoolEx m_MemoryPoolRecv(XENGINE_MEMORY_SIZE_MAX); if (!st_FunSwitch.bSwitchCDKey) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPoolSend.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolSend.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,CDKey验证授权失败,功能已经被服务器关闭!"), lpszClientAddr); return false; } @@ -50,14 +47,14 @@ bool XEngine_AuthorizeHTTP_CDKey(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LP BaseLib_Memory_Free((XPPPMEM)&pptszSerialList, nSerialCount); } - if (!Authorize_CDKey_WriteMemory(tszRVBuffer, &nRVLen, &st_Authorize)) + if (!Authorize_CDKey_WriteMemory(m_MemoryPoolRecv.get(), &nRVLen, &st_Authorize)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 406, "Not Acceptable,write key failed"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPoolSend.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_SERVER, "Not Acceptable,write key failed"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolSend.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求创建CDKEY协议失败,服务器内部错误:%lX"), lpszClientAddr, Authorize_GetLastError()); return false; } - XEngine_Client_TaskSend(lpszClientAddr, tszRVBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolRecv.get(), nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求创建CDKEY成功,APP名:%s,APP版本:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer); } else if (0 == _tcsxnicmp(lpszAPIAuth, lpszAPIName, _tcsxlen(lpszAPIAuth))) @@ -79,8 +76,8 @@ bool XEngine_AuthorizeHTTP_CDKey(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LP { Authorize_CDKey_BuildKeyTime(&st_Authorize, _ttxoll(st_Authorize.st_AuthRegInfo.tszLeftTime)); } - Authorize_CDKey_WriteMemory(tszRVBuffer, &nRVLen, &st_Authorize); - XEngine_Client_TaskSend(lpszClientAddr, tszRVBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Authorize_CDKey_WriteMemory(m_MemoryPoolRecv.get(), &nRVLen, &st_Authorize); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolRecv.get(), nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求授权CDKEY成功,APP名:%s,APP版本:%s,授权期限:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer, st_Authorize.st_AuthRegInfo.tszLeftTime); } else if (0 == _tcsxnicmp(lpszAPIVer, lpszAPIName, _tcsxlen(lpszAPIVer))) @@ -92,26 +89,26 @@ bool XEngine_AuthorizeHTTP_CDKey(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LP if (ENUM_AUTHORIZE_MODULE_VERMODE_TYPE_NETWORK != st_Authorize.st_AuthRegInfo.enVModeType) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "unsupport,cdkey is not authorized"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPoolSend.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "unsupport,cdkey is not authorized"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolSend.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求验证CDKEY失败,cdkey未授权或者已超时,错误:%lX"), lpszClientAddr, Authorize_GetLastError()); return false; } if (!Authorize_CDKey_GetLeftTimer(&st_Authorize)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "Unauthorized,cdkey is not authorized"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPoolSend.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "Unauthorized,cdkey is not authorized"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolSend.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求验证CDKEY失败,cdkey未授权或者已超时,错误:%lX"), lpszClientAddr, Authorize_GetLastError()); return false; } - Authorize_CDKey_WriteMemory(tszRVBuffer, &nRVLen, &st_Authorize); - XEngine_Client_TaskSend(lpszClientAddr, tszRVBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Authorize_CDKey_WriteMemory(m_MemoryPoolRecv.get(), &nRVLen, &st_Authorize); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolRecv.get(), nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求验证CDKEY成功,APP名:%s,APP版本:%s,授权期限:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer, st_Authorize.st_AuthRegInfo.tszLeftTime); } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "Not support protocol"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPoolSend.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTSUPPORT, "Not support protocol"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPoolSend.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,请求了一条未知的子协议:%s"), lpszClientAddr, lpszAPIName); } return true; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp index f5d8abe7db52e6a00bbc083a72df1f70d2f88de9..0611ec99e42d73317c319ceb6d8423cb86466635 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp @@ -2,16 +2,14 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCXSTR lpszMsgBuffer, int nMsgLen) { - int nSDLen = 8196; - XCHAR tszSDBuffer[8196]; + int nSDLen = 0; LPCXSTR lpszAPIGet = _X("get"); LPCXSTR lpszAPIList = _X("list"); LPCXSTR lpszAPIClose = _X("close"); LPCXSTR lpszAPIModify = _X("modify"); LPCXSTR lpszAPIDelete = _X("delete"); - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - + CHttpMemory_PoolEx m_MemoryPool(XENGINE_MEMORY_SIZE_MAX); if (0 == _tcsxnicmp(lpszAPIGet, lpszAPIName, _tcsxlen(lpszAPIGet))) { AUTHREG_USERTABLE st_UserTable; @@ -29,13 +27,13 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "not found client"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求用户:%s 信息失败,错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError()); return false; } - Protocol_Packet_HttpClientInfo(tszSDBuffer, &nSDLen, &st_UserTable); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpClientInfo(m_MemoryPool.get(), &nSDLen, &st_UserTable); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求客户端:%s 信息成功"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName); } else if (0 == _tcsxnicmp(lpszAPIList, lpszAPIName, _tcsxlen(lpszAPIList))) @@ -47,22 +45,12 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L bool bOnline = false; AUTHREG_USERTABLE** ppSt_UserInfo; AUTHSESSION_NETCLIENT** ppSt_ListClient; - - XCHAR* ptszMsgBuffer = (XCHAR*)malloc(XENGINE_AUTH_MAX_BUFFER); - if (NULL == ptszMsgBuffer) - { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 500, "internal server error"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求用户列表失败,申请内存失败,错误:%d"), lpszClientAddr, errno); - return false; - } - memset(ptszMsgBuffer, '\0', XENGINE_AUTH_MAX_BUFFER); Protocol_Parse_HttpParsePos(lpszMsgBuffer, nMsgLen, &nPosStart, &nPosEnd); if ((nPosEnd - nPosStart) > 100) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "pos parament is not rigth"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "pos parament is not rigth"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求用户列表失败,POS参数不正确,%d - %d"), lpszClientAddr, nPosStart, nPosEnd); return false; } @@ -82,13 +70,11 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L DBModule_MySQL_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd); } } - Protocol_Packet_HttpClientList(ptszMsgBuffer, &nSDLen, &ppSt_ListClient, nOnCount, &ppSt_UserInfo, nOffCount); + Protocol_Packet_HttpClientList(m_MemoryPool.get(), &nSDLen, &ppSt_ListClient, nOnCount, &ppSt_UserInfo, nOffCount); BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nOnCount); BaseLib_Memory_Free((XPPPMEM)&ppSt_UserInfo, nOffCount); - XEngine_Client_TaskSend(lpszClientAddr, ptszMsgBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - free(ptszMsgBuffer); - ptszMsgBuffer = NULL; + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求客户端列表成功,在线用户:%d,离线用户:%d,显示标志:%d"), lpszClientAddr, nOnCount, nOffCount - nOnCount, bOnline); } else if (0 == _tcsxnicmp(lpszAPIClose, lpszAPIName, _tcsxlen(lpszAPIClose))) @@ -101,18 +87,18 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L Protocol_Parse_HttpParseUser(lpszMsgBuffer, nMsgLen, &st_UserInfo); if (!Session_Authorize_GetClient(&ppSt_ListClient, &nListCount, st_UserInfo.tszUserName)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "not found client"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求剔除用户:%s 没有找到,可能不在线"), lpszClientAddr, st_UserInfo.tszUserName); return false; } for (int i = 0; i < nListCount; i++) { - XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr, true); + XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr); } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nListCount); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求剔除用户:%s 成功,在线用户数:%d"), lpszClientAddr, st_UserInfo.tszUserName, nListCount); } else if (0 == _tcsxnicmp(lpszAPIModify, lpszAPIName, _tcsxlen(lpszAPIModify))) @@ -121,15 +107,6 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE)); Protocol_Parse_HttpParseTable(lpszMsgBuffer, nMsgLen, &st_UserTable); - - if (st_AuthConfig.st_XVerification.st_PassCrypto.bEnable) - { - int nPLen = _tcsxlen(st_UserTable.st_UserInfo.tszUserPass); - XBYTE byMD5Buffer[MAX_PATH] = {}; - Cryption_Api_Digest(st_UserTable.st_UserInfo.tszUserPass, byMD5Buffer, &nPLen, false, st_AuthConfig.st_XVerification.st_PassCrypto.nCodec); - memset(st_UserTable.st_UserInfo.tszUserPass, '\0', sizeof(st_UserTable.st_UserInfo.tszUserPass)); - BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_UserTable.st_UserInfo.tszUserPass); - } bool bSuccess = false; if (0 == st_AuthConfig.st_XSql.nDBType) { @@ -141,14 +118,14 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "not found client"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求修改用户信息失败:%s 错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError()); return false; } Session_Authorize_SetUser(&st_UserTable); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求修改用户信息:%s 成功"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName); } else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) @@ -162,7 +139,7 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L Session_Authorize_GetClient(&ppSt_ListClient, &nListCount, st_UserInfo.tszUserName); for (int i = 0; i < nListCount; i++) { - XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr, true); + XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr); } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nListCount); //删除数据库 @@ -177,13 +154,13 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "not found client"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求删除用户失败:%s 错误码:%lX"), lpszClientAddr, st_UserInfo.tszUserName, DBModule_GetLastError()); return false; } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求删除用户:%s 成功"), lpszClientAddr, st_UserInfo.tszUserName); } return true; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp index 4dcafaf5c450cc8d198d472334d6aa82e82a6c3b..5a243477771f170b474b456d1f459cff31920126 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp @@ -30,14 +30,14 @@ bool XEngine_AuthorizeHTTP_Pass(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user notfound"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_USER, "user notfound"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("PASS客户端:%s,用户名:%s,登录失败,用户名不存在"), lpszClientAddr, st_UserAuth.tszUserName); return false; } if ((_tcsxlen(st_UserAuth.tszUserPass) != _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)) || (0 != _tcsxncmp(st_UserAuth.tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "password is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PASS, "password is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("PASS客户端:%s,用户名:%s,登录失败,密码错误"), lpszClientAddr, st_UserAuth.tszUserName); return false; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp index 7b3031923ec1340a497ddde73821512ecaf1351e..4510318064763fc281d406caf205468e010a4a97 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp @@ -2,32 +2,30 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCXSTR lpszMsgBuffer, int nMsgLen) { - int nSDLen = 8196; - XCHAR tszSDBuffer[8196]; + int nSDLen = 0; LPCXSTR lpszAPIList = _X("list"); LPCXSTR lpszAPIInsert = _X("insert"); LPCXSTR lpszAPIDelete = _X("delete"); LPCXSTR lpszAPIPush = _X("push"); - memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - + CHttpMemory_PoolEx m_MemoryPool(XENGINE_MEMORY_SIZE_MAX); if (0 == _tcsxnicmp(lpszAPIList, lpszAPIName, _tcsxlen(lpszAPIList))) { int nPosStart = 0; int nPosEnd = 0; int nListCount = 0; - XCHAR* ptszMsgBuffer = (XCHAR*)malloc(XENGINE_AUTH_MAX_BUFFER); + XCHAR* ptszMsgBuffer = (XCHAR*)malloc(XENGINE_MEMORY_SIZE_MAX); if (NULL == ptszMsgBuffer) { return false; } - memset(ptszMsgBuffer, '\0', XENGINE_AUTH_MAX_BUFFER); + memset(ptszMsgBuffer, '\0', XENGINE_MEMORY_SIZE_MAX); Protocol_Parse_HttpParsePos(lpszMsgBuffer, nMsgLen, &nPosStart, &nPosEnd); if ((nPosEnd - nPosStart) > 100) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "pos parament is not rigth"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "pos parament is not rigth"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求序列号列表失败,POS参数不正确,%d - %d"), lpszClientAddr, nPosStart, nPosEnd); return false; } @@ -76,16 +74,16 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L { if (6 != _stxscanf(tszHasTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), &st_AuthTimer.wYear, &st_AuthTimer.wMonth, &st_AuthTimer.wDay, &st_AuthTimer.wHour, &st_AuthTimer.wMinute, &st_AuthTimer.wSecond)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "time request is failed"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "time request is failed"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求插入序列卡失败,时间格式错误"), lpszClientAddr); return false; } } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 415, "not support serial types"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTSUPPORT, "not support serial types"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求插入序列卡失败,不支持的类型格式:%d"), lpszClientAddr, enSerialType); return false; } @@ -94,8 +92,8 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L LPCXSTR lpszUserHdr = _X("XAUTH"); if (!Authorize_Serial_Creator(&pptszSerialNumber, lpszUserHdr, nSerialCount, nNumberCount, &st_AuthTimer, enSerialType)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 500, "Internal Server Error"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen, ERROR_AUTHORIZE_PROTOCOL_SERVER, "Internal Server Error"); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,创建序列卡失败,错误码:%lX"), lpszClientAddr, Authorize_GetLastError()); return false; } @@ -115,8 +113,8 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } } BaseLib_Memory_Free((XPPPMEM)&pptszSerialNumber, nSerialCount); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求插入序列号成功,个数:%d"), lpszClientAddr, nSerialCount); } else if (0 == _tcsxnicmp(lpszAPIDelete, lpszAPIName, _tcsxlen(lpszAPIDelete))) @@ -140,8 +138,8 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } } BaseLib_Memory_Free((XPPPMEM)&ppSt_SerialTable, nListCount); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求删除序列号成功,删除个数:%d"), lpszClientAddr, nListCount); } else if (0 == _tcsxnicmp(lpszAPIPush, lpszAPIName, _tcsxlen(lpszAPIPush))) @@ -165,8 +163,8 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L } } BaseLib_Memory_Free((XPPPMEM)&ppSt_SerialTable, nListCount); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + Protocol_Packet_HttpComm(m_MemoryPool.get(), &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, m_MemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求推送自定义序列号成功,个数:%d"), lpszClientAddr, nListCount); } return true; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp index 30e64285aa2b761b61099db2ead8bc76e4ffa267..e8feb6c19b1ec11d584a9887b6f05095cef8633c 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp @@ -16,15 +16,7 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX int nPosStart = 0; int nPosEnd = 0; - XCHAR* ptszMsgBuffer = (XCHAR*)malloc(XENGINE_AUTH_MAX_BUFFER); - if (NULL == ptszMsgBuffer) - { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 500, "internal server error"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求用户列表失败,申请内存失败,错误:%d"), lpszClientAddr, errno); - return false; - } - memset(ptszMsgBuffer, '\0', XENGINE_AUTH_MAX_BUFFER); + CHttpMemory_PoolEx m_HTTPMemoryPool(XENGINE_MEMORY_SIZE_MAX); Protocol_Parse_HttpParsePos(lpszMsgBuffer, nMsgLen, &nPosStart, &nPosEnd); int nListCount = 0; @@ -37,11 +29,9 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX { DBModule_MySQL_TryList(&ppSt_AuthVer, &nListCount); } - Protocol_Packet_HttpTryList(ptszMsgBuffer, &nSDLen, &ppSt_AuthVer, nListCount); + Protocol_Packet_HttpTryList(m_HTTPMemoryPool.get(), &nSDLen, &ppSt_AuthVer, nListCount); BaseLib_Memory_Free((XPPPMEM)&ppSt_AuthVer, nListCount); - XEngine_Client_TaskSend(lpszClientAddr, ptszMsgBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - free(ptszMsgBuffer); - ptszMsgBuffer = NULL; + XEngine_Client_TaskSend(lpszClientAddr, m_HTTPMemoryPool.get(), nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,临时验证获取列表成功,列表个数:%d"), lpszClientAddr, nListCount); } else if (0 == _tcsxnicmp(lpszAPIName, lpszAPIDelete, _tcsxlen(lpszAPIName))) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp index b3a4b622507df1939bd8e51699be2d4d685dea54..df6bcd750b9474aef5998cdd3106ac2725214b86 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp @@ -16,7 +16,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX { if (!st_FunSwitch.bSwitchDelete) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,删除失败,删除功能已经被服务器关闭!"), lpszClientAddr); return false; @@ -38,7 +38,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX //安全验证判断 if ((0 != _tcsxnicmp(st_UserInfo.tszEMailAddr, st_UserTable.st_UserInfo.tszEMailAddr, _tcsxlen(st_UserInfo.tszEMailAddr))) || (st_UserTable.st_UserInfo.nIDNumber != st_UserInfo.nIDNumber)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "user information is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTMATCH, "user information is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,删除用户失败,验证信息失败"), lpszClientAddr, st_UserInfo.tszUserName); return false; @@ -54,7 +54,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bRet) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "user delete failed,maybe user verification failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_SERVER, "user delete failed,maybe user verification failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,删除用户:%s 失败,删除用户信息数据库错误,数据验证失败!"), lpszClientAddr, st_UserInfo.tszUserName); return false; @@ -65,7 +65,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX Session_Authorize_GetClient(&ppSt_ListClient, &nListCount, st_UserInfo.tszUserName); for (int i = 0; i < nListCount; i++) { - XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr, true); + XEngine_CloseClient(ppSt_ListClient[i]->tszClientAddr); } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nListCount); @@ -81,7 +81,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX if (!st_FunSwitch.bSwitchRegister) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,注册功能已经被服务器关闭!"), lpszClientAddr); return false; @@ -103,7 +103,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bSuccess && st_FunSwitch.bSwitchBanned) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "user name is banned"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_BANNED, "user name is banned"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,注册失败,用户名或IP地址已经被禁用!"), lpszClientAddr, st_Banned.tszUserName); return false; @@ -115,28 +115,23 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX st_UserTable.enSerialType = (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE)st_AuthConfig.st_XVerification.nTryMode; } //禁止权限0和1注册 - if (st_UserTable.st_UserInfo.nUserLevel <= 1) + if (st_UserTable.st_UserInfo.nUserLevel < 10) { - st_UserTable.st_UserInfo.nUserLevel = ENUM_XENGINE_PROTOCOLHDR_LEVEL_TYPE_USER; + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PERMISSION, "user and pass does not set"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,没有设置用户和密码"), lpszClientAddr); + return false; } + //默认普通用户 + st_UserTable.st_UserInfo.nUserLevel = 20; if (_tcsxlen(st_UserTable.st_UserInfo.tszUserName) <= 0 || _tcsxlen(st_UserTable.st_UserInfo.tszUserPass) <= 0) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "user and pass does not set"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "user and pass does not set"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,没有设置用户和密码"), lpszClientAddr); return false; } bSuccess = false; - - if (st_AuthConfig.st_XVerification.st_PassCrypto.bEnable) - { - int nPLen = _tcsxlen(st_UserTable.st_UserInfo.tszUserPass); - XBYTE byMD5Buffer[MAX_PATH] = {}; - Cryption_Api_Digest(st_UserTable.st_UserInfo.tszUserPass, byMD5Buffer, &nPLen, false, st_AuthConfig.st_XVerification.st_PassCrypto.nCodec); - memset(st_UserTable.st_UserInfo.tszUserPass, '\0', sizeof(st_UserTable.st_UserInfo.tszUserPass)); - BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_UserTable.st_UserInfo.tszUserPass); - } - if (0 == st_AuthConfig.st_XSql.nDBType) { bSuccess = DBModule_SQLite_UserRegister(&st_UserTable); @@ -147,10 +142,9 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bSuccess) { - XLONG dwRet = DBModule_GetLastError(); - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, dwRet, "user register is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "user register is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,注册失败,无法继续,错误:%X"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, dwRet); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,注册失败,无法继续,错误:%X"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError()); return false; } Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); @@ -167,7 +161,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX if (!st_FunSwitch.bSwitchPay) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,充值失败,充值功能已经被服务器关闭!"), lpszClientAddr); return false; @@ -184,7 +178,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "Serial number not available"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTMATCH, "Serial number not available"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,充值失败,无法继续,错误:%X"), lpszClientAddr, st_UserPay.tszUserName, DBModule_GetLastError()); return false; @@ -212,7 +206,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX if (!st_FunSwitch.bSwitchPass) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 503, "the function is closed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,找回重置密码失败,密码找回重置功能已经被服务器关闭!"), lpszClientAddr); return false; @@ -230,45 +224,36 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,找回重置密码失败,用户不存在"), lpszClientAddr, st_UserInfo.tszUserName); return false; } //安全验证判断 - if ((0 != _tcsxnicmp(st_UserInfo.tszEMailAddr, st_UserTable.st_UserInfo.tszEMailAddr, _tcsxlen(st_UserInfo.tszEMailAddr))) || (st_UserTable.st_UserInfo.nIDNumber != st_UserInfo.nIDNumber)) + if ((0 != _tcsxnicmp(st_UserInfo.tszEMailAddr, st_UserTable.st_UserInfo.tszEMailAddr, _tcsxlen(st_UserInfo.tszEMailAddr))) || (st_UserTable.st_UserInfo.nIDNumber != st_UserInfo.nIDNumber) || (st_UserTable.st_UserInfo.nPhoneNumber != st_UserInfo.nPhoneNumber)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "user information is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTMATCH, "user information is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,找回重置密码失败,验证信息失败"), lpszClientAddr, st_UserInfo.tszUserName); return false; } - //是否开启了密码加密 - if (st_AuthConfig.st_XVerification.st_PassCrypto.bEnable) - { - //开启了,密码重置 - int nPLen = _tcsxlen(st_UserInfo.tszUserPass); - XBYTE byMD5Buffer[MAX_PATH] = {}; - Cryption_Api_Digest(st_UserInfo.tszUserPass, byMD5Buffer, &nPLen, false, st_AuthConfig.st_XVerification.st_PassCrypto.nCodec); - memset(st_UserTable.st_UserInfo.tszUserPass, '\0', sizeof(st_UserTable.st_UserInfo.tszUserPass)); - BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_UserTable.st_UserInfo.tszUserPass); - //重置密码 - if (0 == st_AuthConfig.st_XSql.nDBType) - { - bSuccess = DBModule_SQLite_UserSet(&st_UserTable); - } - else - { - bSuccess = DBModule_MySQL_UserSet(&st_UserTable); - } - if (!bSuccess) - { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求修改密码失败:%s 错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError()); - return false; - } + //重置密码 + if (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserSet(&st_UserTable); + } + else + { + bSuccess = DBModule_MySQL_UserSet(&st_UserTable); } + if (!bSuccess) + { + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_SERVER, "server set db failed"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求修改密码失败:%s 错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError()); + return false; + } + XENGINE_PROTOCOL_USERAUTH st_AuthProtocol = {}; _tcsxcpy(st_AuthProtocol.tszUserName, st_UserTable.st_UserInfo.tszUserName); _tcsxcpy(st_AuthProtocol.tszUserPass, st_UserTable.st_UserInfo.tszUserPass); @@ -283,7 +268,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX if (!st_FunSwitch.bSwitchTry) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 501, "user not found"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求临时试用失败,服务器关闭了此服务"), lpszClientAddr); return false; @@ -291,7 +276,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX Protocol_Parse_HttpParseTry(lpszMsgBuffer, nMsgLen, &st_VERTemp); if (_tcsxlen(st_VERTemp.tszVSerial) < 1) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "serial is to short"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "serial is to short"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求临时试用失败,请求的序列号:%s 太短"), lpszClientAddr, st_VERTemp.tszVSerial); return false; @@ -351,7 +336,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "timeout"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_TIMEOUT, "timeout"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,序列号:%s,临时验证失败,此序列号已经试用到期"), lpszClientAddr, st_VERTemp.tszVSerial); } @@ -364,7 +349,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX //看下是否启用了此功能,不支持分钟,因为不登录 if ((ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_UNKNOW == st_VERTemp.enVMode) || (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_SECOND == st_VERTemp.enVMode) || (st_VERTemp.nVTime <= 0)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 501, "the function server unavailable"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function server unavailable"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,序列号:%s,临时验证插入失败,因为服务器关闭了此功能"), lpszClientAddr, st_VERTemp.tszVSerial); return false; @@ -380,7 +365,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX } if (!bSuccess) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 500, "Internal Server Error"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_SERVER, "Internal Server Error"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,序列号:%s,临时验证插入失败,无法继续,错误:%X"), lpszClientAddr, st_VERTemp.tszVSerial, DBModule_GetLastError()); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h index 16a61bb0fa5c32a77c821fa131367fc57d6f2412..025ac4efe5e219365143aa70e1f238da30b7a0b5 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h @@ -87,8 +87,8 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch; #define XENGINE_AUTH_APP_NETTYPE_TCP 0 #define XENGINE_AUTH_APP_NETTYPE_WS 1 #define XENGINE_AUTH_APP_NETTYPE_HTTP 2 -#define XENGINE_AUTH_MAX_BUFFER (1024 * 1024 * 10) +#include "Authorize_HttpMemory.h" #include "Authorize_Config.h" #include "Authorize_Net.h" #include "Authorize_Task.h" diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpMemory.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpMemory.h new file mode 100644 index 0000000000000000000000000000000000000000..08e89feec8ff1b079c5392e43b1ae68866f3c21c --- /dev/null +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpMemory.h @@ -0,0 +1,44 @@ +#pragma once +/******************************************************************** +// Created: 2025/04/19 14:02:23 +// File Name: D:\XEngine_Authorize\XEngine_Source\XEngine_APPService\XEngine_AuthorizeService\Authorize_HttpMemory.h +// File Path: D:\XEngine_Authorize\XEngine_Source\XEngine_APPService\XEngine_AuthorizeService +// File Base: Authorize_HttpMemory +// File Ext: h +// Project: XEngine +// Author: qyt +// Purpose: 内存池封装 +// History: +*********************************************************************/ +class CHttpMemory_PoolEx +{ +public: + CHttpMemory_PoolEx(size_t nSize) + { + lPtr = ManagePool_Memory_Alloc(xhMemPool, nSize); + if (NULL == lPtr) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ALERT, _X("内存池分配失败,系统面临崩溃!")); + return; + } + } + ~CHttpMemory_PoolEx() + { + if (NULL != lPtr) + { + ManagePool_Memory_Free(xhMemPool, lPtr); + } + } +public: + // 支持类型转换 + template + T* as() { + return static_cast(lPtr); + } + XCHAR* get() + { + return static_cast(lPtr); + } +private: + XPVOID lPtr = NULL; +}; \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp index f1a9678374413be19dc2fbc84d859d94bcb3a7de..9aa7a4509742ac737c75a20ba868e732abef82a2 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -75,7 +75,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } if (!bSuccess && st_FunSwitch.bSwitchBanned) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "ip address is banned"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_BANNED, "ip address is banned"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录连接被阻止,用户名或IP地址被禁用!"), lpszClientAddr); return false; @@ -104,7 +104,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int HttpProtocol_ServerHelp_GetUrlApi(pSt_HTTPParament->tszHttpUri, tszAPIType, tszAPIVer, tszAPIName); if (0 != _tcsxnicmp(lpszAPIType, tszAPIType, _tcsxlen(lpszAPIType))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request url is incorrent"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "request url is incorrent"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 不支持"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -116,7 +116,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int { if (!Session_Token_Get(xhToken, &st_UserTable)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "Unauthorized"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "Unauthorized"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为没有经过验证"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -127,7 +127,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -139,7 +139,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -151,7 +151,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -163,7 +163,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -175,7 +175,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -187,7 +187,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int //验证权限 if (0 != st_UserTable.st_UserInfo.nUserLevel) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 401, "permission is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "permission is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -196,7 +196,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "reqeust api is not support"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "reqeust api is not support"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为不被支持"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -218,7 +218,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "reqeust api is not support"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "reqeust api is not support"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为不被支持"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return false; @@ -239,7 +239,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int HttpProtocol_ServerHelp_GetParament(pSt_HTTPParament->tszHttpUri, &pptszList, &nListCount, tszUrlName); if ((nListCount < 1) || (0 != _tcsxnicmp(lpszFuncName, tszUrlName, _tcsxlen(lpszFuncName)))) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request is failed"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "request is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); BaseLib_Memory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); @@ -271,7 +271,7 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } else { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 405, "method not allow"); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "method not allow"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的方法:%s 不支持"), lpszClientAddr, pSt_HTTPParament->tszHttpMethod); return false; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp index 09a7f904b96d237c272a0009aa9b62bb8de8ef89..20c0092c311033413eee84a4e3e7aa5caa8e200d 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp @@ -17,11 +17,11 @@ void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LP } void CALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, false); + XEngine_CloseClient(lpszClientAddr, 1); } void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, true); + XEngine_CloseClient(lpszClientAddr, 2); } ////////////////////////////////////////////////////////////////////////// bool CALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) @@ -57,11 +57,11 @@ void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPC } void CALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, false); + XEngine_CloseClient(lpszClientAddr, 1); } void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, true); + XEngine_CloseClient(lpszClientAddr, 2); } ////////////////////////////////////////////////////////////////////////// bool CALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) @@ -81,30 +81,41 @@ void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, L } void CALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, false); + XEngine_CloseClient(lpszClientAddr, 1); } void CALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_CloseClient(lpszClientAddr, true); + XEngine_CloseClient(lpszClientAddr, 2); } ////////////////////////////////////////////////////////////////////////// -bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart) +bool XEngine_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType) { xstring m_StrLeave; - if (bHeart) + if (0 == nLeaveType) { NetCore_TCPXCore_CloseForClientEx(xhTCPSocket, lpszClientAddr); NetCore_TCPXCore_CloseForClientEx(xhWSSocket, lpszClientAddr); NetCore_TCPXCore_CloseForClientEx(xhHttpSocket, lpszClientAddr); - m_StrLeave = _X("心跳断开"); + + SocketOpt_HeartBeat_DeleteAddrEx(xhTCPHeart, lpszClientAddr); + SocketOpt_HeartBeat_DeleteAddrEx(xhWSHeart, lpszClientAddr); + SocketOpt_HeartBeat_DeleteAddrEx(xhHTTPHeart, lpszClientAddr); + m_StrLeave = _X("主动断开"); } - else + else if (1 == nLeaveType) { SocketOpt_HeartBeat_DeleteAddrEx(xhTCPHeart, lpszClientAddr); SocketOpt_HeartBeat_DeleteAddrEx(xhWSHeart, lpszClientAddr); SocketOpt_HeartBeat_DeleteAddrEx(xhHTTPHeart, lpszClientAddr); m_StrLeave = _X("正常断开"); } + else + { + NetCore_TCPXCore_CloseForClientEx(xhTCPSocket, lpszClientAddr); + NetCore_TCPXCore_CloseForClientEx(xhWSSocket, lpszClientAddr); + NetCore_TCPXCore_CloseForClientEx(xhHttpSocket, lpszClientAddr); + m_StrLeave = _X("心跳断开"); + } HelpComponents_Datas_DeleteEx(xhTCPPacket, lpszClientAddr); RfcComponents_WSPacket_DeleteEx(xhWSPacket, lpszClientAddr); HttpProtocol_Server_CloseClinetEx(xhHttpPacket, lpszClientAddr); @@ -135,7 +146,7 @@ bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart) } Session_Token_Delete(st_NETClient.xhToken); Session_Authorize_CloseAddr(lpszClientAddr); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("客户端:%s,用户名:%s,Token:%llu,离开服务器,在线时长:%d,离开方式:%s"), lpszClientAddr, st_NETClient.st_UserTable.st_UserInfo.tszUserName, st_NETClient.xhToken, st_AuthTime.nTimeONLine, m_StrLeave.c_str()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("客户端:%s,用户名:%s,Token:%llu,离开服务器,在线时长:%lld,离开方式:%s"), lpszClientAddr, st_NETClient.st_UserTable.st_UserInfo.tszUserName, st_NETClient.xhToken, st_AuthTime.nTimeONLine, m_StrLeave.c_str()); } else { @@ -162,33 +173,20 @@ bool XEngine_Client_TaskSend(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType, LPCXSTR lpszPass) { - XCHAR* ptszMsgBuffer = (XCHAR*)ManagePool_Memory_Alloc(xhMemPool, XENGINE_AUTH_MAX_BUFFER); - if (NULL == ptszMsgBuffer) - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,网络类型:%d 发送数据失败,内存申请失败,错误码:%d"), lpszClientAddr, nNetType, errno); - return false; - } - + CHttpMemory_PoolEx m_HTTPMemory(XENGINE_MEMORY_SIZE_MAX); if (XENGINE_AUTH_APP_NETTYPE_WS == nNetType) { if (NULL == lpszPass) { - RfcComponents_WSCodec_EncodeMsg(lpszMsgBuffer, ptszMsgBuffer, &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); + RfcComponents_WSCodec_EncodeMsg(lpszMsgBuffer, m_HTTPMemory.get(), &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); } else { - XCHAR* ptszCodecBuffer = (XCHAR*)malloc(XENGINE_AUTH_MAX_BUFFER); - if (NULL == ptszCodecBuffer) - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,网络类型:%d 发送数据失败,内存申请失败,错误码:%d"), lpszClientAddr, nNetType, errno); - return false; - } - Cryption_XCrypto_Encoder(lpszMsgBuffer, &nMsgLen, (XBYTE*)ptszCodecBuffer, lpszPass); - RfcComponents_WSCodec_EncodeMsg(ptszCodecBuffer, ptszMsgBuffer, &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); - ManagePool_Memory_Free(xhMemPool, ptszCodecBuffer); - ptszCodecBuffer = NULL; + CHttpMemory_PoolEx m_CodecMemory(XENGINE_MEMORY_SIZE_MAX); + Cryption_XCrypto_Encoder(lpszMsgBuffer, &nMsgLen, (XBYTE*)m_CodecMemory.get(), lpszPass); + RfcComponents_WSCodec_EncodeMsg(m_CodecMemory.get(), m_HTTPMemory.get(), &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); } - NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, ptszMsgBuffer, nMsgLen); + NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, m_HTTPMemory.get(), nMsgLen); SocketOpt_HeartBeat_ActiveAddrEx(xhWSHeart, lpszClientAddr); } else if (XENGINE_AUTH_APP_NETTYPE_TCP == nNetType) @@ -198,7 +196,7 @@ bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, } else { - int nSDSize = XENGINE_AUTH_MAX_BUFFER; + int nSDSize = XENGINE_MEMORY_SIZE_MAX; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); @@ -206,24 +204,16 @@ bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, st_HDRParam.bIsClose = true; if (NULL == lpszPass) { - HttpProtocol_Server_SendMsgEx(xhHttpPacket, ptszMsgBuffer, &nSDSize, &st_HDRParam, lpszMsgBuffer, nMsgLen); + HttpProtocol_Server_SendMsgEx(xhHttpPacket, m_HTTPMemory.get(), &nSDSize, &st_HDRParam, lpszMsgBuffer, nMsgLen); } else { - XCHAR* ptszCodecBuffer = (XCHAR*)ManagePool_Memory_Alloc(xhMemPool, XENGINE_AUTH_MAX_BUFFER); - if (NULL == ptszCodecBuffer) - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,网络类型:%d 发送数据失败,内存申请失败,错误码:%d"), lpszClientAddr, nNetType, errno); - return false; - } - - Cryption_XCrypto_Encoder(lpszMsgBuffer, &nMsgLen, (XBYTE*)ptszCodecBuffer, lpszPass); - HttpProtocol_Server_SendMsgEx(xhHttpPacket, ptszMsgBuffer, &nSDSize, &st_HDRParam, ptszCodecBuffer, nMsgLen); - ManagePool_Memory_Free(xhMemPool, ptszCodecBuffer); + CHttpMemory_PoolEx m_CodecMemory(XENGINE_MEMORY_SIZE_MAX); + Cryption_XCrypto_Encoder(lpszMsgBuffer, &nMsgLen, (XBYTE*)m_CodecMemory.get(), lpszPass); + HttpProtocol_Server_SendMsgEx(xhHttpPacket, m_HTTPMemory.get(), &nSDSize, &st_HDRParam, m_CodecMemory.get(), nMsgLen); } - NetCore_TCPXCore_SendEx(xhHttpSocket, lpszClientAddr, ptszMsgBuffer, nSDSize); + NetCore_TCPXCore_SendEx(xhHttpSocket, lpszClientAddr, m_HTTPMemory.get(), nSDSize); SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); } - ManagePool_Memory_Free(xhMemPool, ptszMsgBuffer); return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h index 6a6b3adf3c6a7a4d61c75d9f06f65d2b76eaaa5e..143ae7ae8a9af6affd75ad03fe32f9ffb810e32c 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h @@ -15,6 +15,6 @@ void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, L void CALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); void CALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam); -bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart); +bool XEngine_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType = 0); bool XEngine_Client_TaskSend(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType); bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType, LPCXSTR lpszPass = NULL); \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index 03739801cce76f5ae72799e7ce3df1e57415b49f..842bcd93f8cc1dff8fadad59d373aaca027ef3b3 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -68,7 +68,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n { Session_Token_UPDate(pSt_ProtocolHdr->xhToken); } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("客户端:%s,句柄:%llu 心跳处理成功"), lpszClientAddr, pSt_ProtocolHdr->xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _X("客户端:%s,句柄:%llu 心跳处理成功"), lpszClientAddr, pSt_ProtocolHdr->xhToken); } else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN == pSt_ProtocolHdr->unOperatorCode) { @@ -94,7 +94,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } if (!bSuccess && st_FunSwitch.bSwitchBanned) { - pSt_ProtocolHdr->wReserve = 423; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_BANNED; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录连接被阻止,用户名或IP地址被禁用!"), lpszClientAddr); @@ -106,7 +106,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n //是否允许登录 if (!st_FunSwitch.bSwitchLogin) { - pSt_ProtocolHdr->wReserve = 503; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_CLOSED; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录失败,因为登录功能被服务器关闭!"), lpszClientAddr); @@ -114,7 +114,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } if (ENUM_PROTOCOL_FOR_DEVICE_TYPE_UNKNOW == st_AuthProtocol.enDeviceType) { - pSt_ProtocolHdr->wReserve = 250; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_DEVICE; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,没有填写设备类型,无法继续"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -125,7 +125,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n { if (!AuthHelp_DynamicCode_Get(pSt_ProtocolHdr->xhToken, _ttxoi(st_AuthProtocol.tszDCode))) { - pSt_ProtocolHdr->wReserve = 257; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_DYNAMICCODE; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,验证动态码失败,句柄:%llu,动态码;%s,错误码:%lX"), lpszClientAddr, st_AuthProtocol.tszUserName, pSt_ProtocolHdr->xhToken, st_AuthProtocol.tszDCode, AuthHelp_GetLastError()); @@ -143,7 +143,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n APIClient_Http_Request(_X("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszMsgBuffer, &nHTTPLen); if (200 != nHTTPCode) { - pSt_ProtocolHdr->wReserve = 251; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_PASSVER; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,三方验证失败,错误码:%d"), lpszClientAddr, st_AuthProtocol.tszUserName, nHTTPCode); @@ -169,7 +169,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } if (!bSuccess) { - pSt_ProtocolHdr->wReserve = 251; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_USER; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,用户名不存在"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -177,7 +177,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } if ((_tcsxlen(st_AuthProtocol.tszUserPass) != _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)) || (0 != _tcsxncmp(st_AuthProtocol.tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(st_AuthProtocol.tszUserPass)))) { - pSt_ProtocolHdr->wReserve = 252; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_PASS; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,密码错误"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -188,7 +188,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n { if (!st_FunSwitch.bSwitchHCLogin) { - pSt_ProtocolHdr->wReserve = 251; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_CLOSED; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,硬件码:%s,登录失败,服务端关闭此功能"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -205,7 +205,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } if ((_tcsxlen(st_AuthProtocol.tszUserName) != _tcsxlen(st_UserTable.tszHardCode)) || (0 != _tcsxncmp(st_AuthProtocol.tszUserName, st_UserTable.tszHardCode, _tcsxlen(st_AuthProtocol.tszUserName)))) { - pSt_ProtocolHdr->wReserve = 252; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_HARDCODE; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,硬件码:%s,登录失败,硬件码错误"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -249,7 +249,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } else { - pSt_ProtocolHdr->wReserve = 257; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_SERVER; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,服务端设置不正确"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -296,25 +296,16 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n //判断这次登录是否允许 if (bLogin) { - pSt_ProtocolHdr->wReserve = 253; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_LOGINED; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,多端登录失败,用户已经登录,类型:%d"), lpszClientAddr, st_AuthProtocol.tszUserName, st_AuthProtocol.enDeviceType); return false; } - //是否被封禁 - if (-1 == st_UserTable.st_UserInfo.nUserLevel) - { - pSt_ProtocolHdr->wReserve = 254; - Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,客户端已被封禁"), lpszClientAddr, st_AuthProtocol.tszUserName); - return false; - } //分析充值类型 if ((ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_UNKNOW == st_UserTable.enSerialType) || ('0' == st_UserTable.tszLeftTime[0])) { - pSt_ProtocolHdr->wReserve = 255; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_TIMELEFT; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,客户端时间已经耗尽,需要充值才能使用"), lpszClientAddr, st_AuthProtocol.tszUserName); @@ -376,7 +367,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n st_UserTable.enDeviceType = st_AuthProtocol.enDeviceType; if (!Session_Authorize_Insert(lpszClientAddr, &st_UserTable, pSt_ProtocolHdr->xhToken, nNetType)) { - pSt_ProtocolHdr->wReserve = 256; + pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_SERVER; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,插入会话管理失败,错误:%lX"), lpszClientAddr, st_AuthProtocol.tszUserName); diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp index 8642a3f2349f714d5980ebd4807c5e65a8a3abdb..6b1208cc1693c5186122c94e787c698a122ec7de 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp @@ -38,7 +38,7 @@ void CALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserNam XEngine_Client_TaskSend(lpszUserAddr, tszMsgBuffer, nMsgLen, nNetType); if (!st_AuthConfig.bTimeNotify) { - XEngine_CloseClient(lpszUserAddr, true); + XEngine_CloseClient(lpszUserAddr); } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("地址:%s,用户:%s,网络类型:%d,没有剩余时间,已经通知客户单超时,三方通知设置:%d"), lpszUserName, lpszUserAddr, nNetType, st_AuthConfig.st_XLogin.bPassAuth); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile index 9e0dafc314d71b9225e5eba476886618e9ed0d67..72c6ec948ab319820ce4013bd3e74b15991c01fd 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile @@ -1,11 +1,7 @@ CC = g++ -Wall -std=c++20 -PLATFORM = linux PLATVER = -PLATDIR = FILEEXT = LIBFLAG = -RELEASE = 0 -UNICODE = 0 LOADHDR = -I ./ LOADSO = -L ../../XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Depend/XEngine_Module/XEngine_InfoReport \ -L ../../AuthorizeModule_Session -L ../../AuthorizeModule_Database -L ../../AuthorizeModule_Protocol -L ../../AuthorizeModule_Configure -L ../../AuthorizeModule_Help -L ../../AuthorizeModule_CDKey @@ -18,31 +14,29 @@ OBJECTS = Authorize_Config.o Authorize_Net.o Authorize_Task.o Authorize_TCPTask. AuthorizeHTTP_Token.o AuthorizeHTTP_GetTask.o ifeq ($(RELEASE),1) -FLAGS = -c -DEBUG = +FLAGS = -c -D _RELEASE +DEBUG = -O2 else ifeq ($(PLATFORM),mac) FLAGS = -c - DEBUG = -g + DEBUG = -g -D _DEBUG else FLAGS = -c -lc_p - DEBUG = -g -pg + DEBUG = -g -pg -D _DEBUG endif endif ifeq ($(UNICODE),1) -UNICODE = -D _UNICODE +override UNICODE := -D __UNICODE__ else -UNICODE = +override UNICODE := -D __ANSI__ endif ifeq ($(PLATFORM),linux) ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) PLATVER = -D __CENTOS__ - PLATDIR = XEngine_Linux/Centos else PLATVER = -D __UBUNTU__ - PLATDIR = XEngine_Linux/Ubuntu endif FILEEXT = so LIBFLAG = -shared @@ -51,7 +45,6 @@ ifeq ($(PLATFORM),linux) else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ - PLATDIR = XEngine_Mac FILEEXT = dylib LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp index 7f2f96b0c4638682b552bb80be6fd071e79c8f24..604bb36659820cb80d87d0d4044a2d73ff6ba653 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp @@ -371,32 +371,7 @@ int main(int argc, char** argv) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加密传输设置为关闭,采用明文传输")); } - //发送信息报告 - if (st_AuthConfig.st_XReport.bEnable && !bIsTest) - { - if (InfoReport_APIMachine_Send(st_AuthConfig.st_XReport.tszAPIUrl, st_AuthConfig.st_XReport.tszServiceName)) - { - __int64x nTimeCount = 0; - if (InfoReport_APIMachine_GetTime(st_AuthConfig.st_XReport.tszAPIUrl, st_AuthConfig.st_XReport.tszServiceName, &nTimeCount)) - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动信息报告给API服务器:%s 成功,报告次数:%lld"), st_AuthConfig.st_XReport.tszAPIUrl, nTimeCount); - } - else - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动信息报告给API服务器:%s 成功,获取报告次数失败,错误:%lX"), st_AuthConfig.st_XReport.tszAPIUrl, InfoReport_GetLastError()); - } - } - else - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动信息报告给API服务器:%s 失败,错误:%lX"), st_AuthConfig.st_XReport.tszAPIUrl, InfoReport_GetLastError()); - } - } - else - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,信息报告给API服务器没有启用")); - } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,动态验证:%d,多端登录:%d,临时试用:%d,黑名单功能:%d,普通TOKEN:%d,硬件码登录:%d"), st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchDCode, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchBanned, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin); - + pSt_File = _xtfopen(st_AuthConfig.st_XVerification.st_XCDKey.tszKeyFile, _X("rb")); if (NULL == pSt_File) { @@ -438,7 +413,26 @@ int main(int argc, char** argv) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,授权文件失败,解密失败,数据不正确")); } } - +#ifndef _DEBUG + //发送信息报告 + if (st_AuthConfig.st_XReport.bEnable && !bIsTest) + { + __int64x nTimeCount = 0; + if (InfoReport_APIMachine_Send(st_AuthConfig.st_XReport.tszAPIUrl, st_AuthConfig.st_XReport.tszServiceName, &nTimeCount)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动信息报告给API服务器:%s 成功,报告次数:%lld"), st_AuthConfig.st_XReport.tszAPIUrl, nTimeCount); + } + else + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动信息报告给API服务器:%s 失败,错误:%lX"), st_AuthConfig.st_XReport.tszAPIUrl, InfoReport_GetLastError()); + } + } + else + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,信息报告给API服务器没有启用")); + } +#endif + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,动态验证:%d,多端登录:%d,临时试用:%d,黑名单功能:%d,普通TOKEN:%d,硬件码登录:%d"), st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchDCode, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchBanned, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,网络验证服务运行中,XEngien版本:%s%s,发行版本次数:%d,当前运行版本:%s。。。"), BaseLib_Version_XNumberStr(), BaseLib_Version_XTypeStr(), st_AuthConfig.st_XVer.pStl_ListVer->size(), st_AuthConfig.st_XVer.pStl_ListVer->front().c_str()); while (true) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj index ea5d3b0bf155faad2901d236258215e2e24be95a..264a063ede0b64565f42568e51e1fdc8c8fd3768 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj @@ -264,6 +264,7 @@ + diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters index d0de6cb8f8eac91b67f5ffdf00c0c8f5b8ea5ca9..54e46c7d48541e5270f910e2bd1fa3d8c17971c3 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters @@ -137,5 +137,8 @@ 头文件\AuthorizeHTTP_Get + + 头文件 + \ No newline at end of file diff --git a/XEngine_Source/XEngine_Depend b/XEngine_Source/XEngine_Depend index fda9f7d9140cc6a32eecb499e2acb67e8e1c7e6f..2dd56facd7c93dfd3810d1db4341fff469e0786b 160000 --- a/XEngine_Source/XEngine_Depend +++ b/XEngine_Source/XEngine_Depend @@ -1 +1 @@ -Subproject commit fda9f7d9140cc6a32eecb499e2acb67e8e1c7e6f +Subproject commit 2dd56facd7c93dfd3810d1db4341fff469e0786b