diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml
index 9e982e230adda307a1ee5d4be3d2e4b74a503b0a..90f8ae992f99b1258e93a47549217b9820eef7ef 100644
--- a/.github/workflows/Rocky_build.yml
+++ b/.github/workflows/Rocky_build.yml
@@ -16,7 +16,7 @@ jobs:
build:
runs-on: ${{ matrix.runner }}
container:
- image: rockylinux/rockylinux:9.5
+ image: rockylinux/rockylinux:${{ matrix.version }}
options: --platform ${{ matrix.platform }}
strategy:
matrix:
@@ -25,10 +25,22 @@ jobs:
runner: ubuntu-24.04
platform: linux/amd64
artifact: x86-64
+ version: 9
+ - arch: amd64
+ runner: ubuntu-24.04
+ platform: linux/amd64
+ artifact: x86-64
+ version: 10
- arch: arm64
runner: ubuntu-24.04-arm
platform: linux/arm64
artifact: Arm64
+ version: 9
+ - arch: arm64
+ runner: ubuntu-24.04-arm
+ platform: linux/arm64
+ artifact: Arm64
+ version: 10
steps:
- name: Checkout main repository code
@@ -46,27 +58,25 @@ jobs:
uses: actions/checkout@v4
with:
repository: libxengine/XEngine_OPenSource
- path: XEngine_Source/XEngine_Depend
+ path: XEngine_Source/XEngine_DependLibrary
- name: install system package
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
+ dnf install gcc g++ make git jq unzip wget -y
+
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
- 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_RockyLinux_9_${{ matrix.artifact }}.zip
- unzip ./XEngine_RockyLinux_9_${{ matrix.artifact }}.zip -d ./XEngine_RockyLinux_9_${{ matrix.artifact }}
- cd XEngine_RockyLinux_9_${{ matrix.artifact }}
+ wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}.zip
+ unzip ./XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}.zip -d ./XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}
+ cd XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}
- cp -rf ./XEngine_Include /usr/local/include
- find ./XEngine_Linux -name "*.so" -exec cp {} /usr/lib64 \;
- ldconfig
+ chmod 777 *
+ ./XEngine_LINEnv.sh -i 3
- name: make
run: |
@@ -87,6 +97,6 @@ jobs:
- name: Upload folder as artifact with RockyLinux
uses: actions/upload-artifact@v4
with:
- name: XEngine_AuthorizeService-RockyLinux_9_${{ matrix.artifact }}
+ name: XEngine_AuthorizeService-RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}
path: XEngine_Release/
retention-days: 1
diff --git a/.github/workflows/Ubuntu_build.yml b/.github/workflows/Ubuntu_build.yml
index d73e183210daaa57c7c0b3537fec4580f61e4064..736d591f6735554cd0a5a0a7e0a9a52de68b8e12 100644
--- a/.github/workflows/Ubuntu_build.yml
+++ b/.github/workflows/Ubuntu_build.yml
@@ -39,6 +39,9 @@ jobs:
git submodule init
git submodule update
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
- name: Set up Dependency ubuntu24.04 Environment
if: matrix.os == 'ubuntu-24.04'
run: |
@@ -48,48 +51,33 @@ jobs:
- 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
+ chmod 777 *
+ sudo ./XEngine_LINEnv.sh -i 3
- name: Set up Dependency ubuntu22.04 Environment
if: matrix.os == 'ubuntu-22.04'
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_x86-64.zip
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
+ chmod 777 *
+ sudo ./XEngine_LINEnv.sh -i 3
- 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
+ chmod 777 *
+ sudo ./XEngine_LINEnv.sh -i 3
- name: make x86
if: matrix.os == 'ubuntu-24.04' || matrix.os == 'ubuntu-22.04'
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 1716d18f798a3ea3bf5f50c3753e0f31e749c49d..75bb2a86c989cd32e393fbc0248971407f121931 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -40,6 +40,9 @@ jobs:
git submodule init
git submodule update
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
- name: Set up Dependency Environment
run: |
cd libxengine
diff --git a/.github/workflows/debian_build.yml b/.github/workflows/debian_build.yml
index 3a31b9424cfdd2100037ae8f3a10b6ba7e51ddb5..c2be054c4b374169ca9b4fc585486d0098ccec89 100644
--- a/.github/workflows/debian_build.yml
+++ b/.github/workflows/debian_build.yml
@@ -40,18 +40,16 @@ jobs:
uses: actions/checkout@v4
with:
repository: libxengine/XEngine_OPenSource
- path: XEngine_Source/XEngine_Depend
+ path: XEngine_Source/XEngine_DependLibrary
- name: install system package
run: |
apt update -y
- apt install gcc g++ make git jq unzip curl -y
+ apt install gcc g++ make git jq unzip curl wget -y
- - name: Set up Dependency rocky linux Environment
- run: |
- cd libxengine
- chmod 777 *
- ./XEngine_LINEnv.sh -i 0
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
- name: install xengine library
run: |
latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name)
@@ -59,9 +57,8 @@ jobs:
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
+ chmod 777 *
+ ./XEngine_LINEnv.sh -i 3
- name: make
run: |
diff --git a/.github/workflows/fedora_build.yml b/.github/workflows/fedora_build.yml
new file mode 100644
index 0000000000000000000000000000000000000000..608d9f813b24efaadc0a6e73469ecbbc060f7414
--- /dev/null
+++ b/.github/workflows/fedora_build.yml
@@ -0,0 +1,89 @@
+name: fedora build workflows
+
+on:
+ push:
+ branches:
+ - 'develop'
+ paths:
+ - 'XEngine_Source/**'
+ - 'XEngine_Release/**'
+ - '.github/**'
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: ${{ matrix.runner }}
+ container:
+ image: fedora:${{ matrix.fedora-version }}
+ options: --platform ${{ matrix.platform }}
+ strategy:
+ matrix:
+ include:
+ - arch: amd64
+ runner: ubuntu-24.04
+ platform: linux/amd64
+ fedora-version: 42
+ artifact: x86-64
+ - arch: amd64
+ runner: ubuntu-24.04
+ platform: linux/amd64
+ fedora-version: 41
+ artifact: x86-64
+
+ steps:
+ - name: Checkout main repository code
+ uses: actions/checkout@v4
+
+ - name: Checkout dependency repository (xengine)
+ uses: actions/checkout@v4
+ with:
+ repository: libxengine/libxengine
+ path: libxengine
+
+ - name: sub module checkout (opensource)
+ uses: actions/checkout@v4
+ with:
+ repository: libxengine/XEngine_OPenSource
+ path: XEngine_Source/XEngine_DependLibrary
+
+ - name: install system package
+ run: |
+ dnf update -y
+ dnf install gcc g++ make git jq unzip wget -y
+
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
+ - 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_Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }}.zip
+ unzip ./XEngine_Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }}.zip -d ./XEngine_Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }}
+ cd XEngine_Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }}
+
+ chmod 777 *
+ ./XEngine_LINEnv.sh -i 3
+ - name: make
+ run: |
+ cd XEngine_Source
+ make
+ make FLAGS=InstallAll
+ make FLAGS=CleanAll
+
+ make RELEASE=1
+ make FLAGS=InstallAll
+ make FLAGS=CleanAll
+ cd ..
+ - name: test
+ run: |
+ cd XEngine_Release
+ ./XEngine_AuthorizeService -t
+
+ - name: Upload folder as artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: XEngine_AuthorizeService-Fedora_${{ matrix.fedora-version }}_${{ matrix.artifact }}
+ 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 6cdbbd3de4d6365af97e7644f942a5e8e39038d4..71f053772d545c585a0c6d9516ffe921ddb70b44 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -38,7 +38,10 @@ jobs:
- name: brew install
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
+
+ - name: Set TERM variable
+ run: echo "TERM=xterm" >> $GITHUB_ENV
+
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
run: |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d09fa5fcc677e43f737fe79a382facc9b719683d..03cc0ee2468223250198767e2dda1fb09ec011c5 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -34,6 +34,15 @@ jobs:
skip_unpack: true
if_no_artifact_found: fail
path: ./XRelease/
+ - name: Download fedora build
+ uses: dawidd6/action-download-artifact@v6
+ with:
+ workflow: fedora_build.yml
+ workflow_conclusion: success
+ check_artifacts: false
+ skip_unpack: true
+ if_no_artifact_found: fail
+ path: ./XRelease/
- name: Download RockyLinux build
uses: dawidd6/action-download-artifact@v6
with:
diff --git a/.gitmodules b/.gitmodules
index 1cc19745580726e61fcd1fbffbc1582904a552e0..3949a926b33d253a98384c5ae5e9b7d63713a78d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
[submodule "XEngine_Source/XEngine_Depend"]
- path = XEngine_Source/XEngine_Depend
+ path = XEngine_Source/XEngine_DependLibrary
url = https://github.com/libxengine/XEngine_OPenSource.git
diff --git a/CHANGELOG b/CHANGELOG
index e4f183a6e5fd000c9a54f628a08363e66be90adb..ab2bd7206cbce586ee70d768ae307143e14d8efe 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,35 @@
+XEngine_Authorize V3.19.0.1001
+
+added:more system support
+added:storage log support and use to user pay
+added:set color for key log
+added:hardware code bind with login and register
+added:hardware bind switch app support
+added:serial expired time support
+added:http basic and digest support
+update:depend library
+update:match xengine last version
+improved:parameter command
+modify:adjust windows app list size
+modify:depend library directory name
+modify:start parameter are not case sensitive
+fixed:sometime configure read memory leak
+
+增加:更新系统支持
+增加:强日志支持并且设置用户支付日志为强日志
+增加:设置关键日志输出颜色
+增加:支持登录注册硬件绑定
+增加:支持管理程序修改绑定登录注册
+增加:序列号过期支持
+增加:http接口基本和摘要验证
+更新:依赖库
+更新:匹配最新xengine版本
+优化:参数命令
+修改:调整管理程序窗口列表大小
+修改:依赖库目录名
+修改:启动参数不在区分大小写
+修正:某些时候配置读取内存溢出
+================================================================
XEngine_Authorize V3.18.0.1001
added:more system release support
diff --git a/README.en.md b/README.en.md
index 1c4e905cc162ea1160d8922ca859929dfc1d78ba..91ffc1c1d89049b60e61705194eba4e628fb6e8e 100644
--- a/README.en.md
+++ b/README.en.md
@@ -49,6 +49,7 @@ feature list:
17. announecement management
18. support dynamic verifaction code
19. support mulit login and merge time
+20. user bind hardware code
## install
@@ -64,7 +65,7 @@ Linux Exection:sudo ./XEngine_LINEnv.sh -i 3
Macos Exection:./XEngine_LINEnv.sh -i 3
#### sub module
-Due to the dependent sub-modules, after you checkout the warehouse, execute the following command in the warehouse directory to pull the sub-modules
+Due to the dependent sub-modules, after you checkout the resprepository, execute the following command in the resprepository directory to pull the sub-modules
git submodule init
git submodule update
@@ -74,12 +75,10 @@ Just Run it,use XEngine_AuthorizeService
XEngine_AuthorizeApp is pc management tools
#### Linux
-use makefile compile,UBUNTU22.04 or above
-Run it on the terminal,use XEngine_AuthorizeService
+use makefile compile,Run it on the terminal,use XEngine_AuthorizeService
#### Macos
-use makefile compile,mac 13 and above
-Run it on the terminal,use XEngine_AuthorizeService
+use makefile compile,Run it on the terminal,use XEngine_AuthorizeService
##### compile command
execute command in XEngine_Source path
@@ -132,7 +131,7 @@ The V3 version is a new version, developed to meet the requirements of many envi
## update guide
Database update Use Navicat and other database software to open the judgment table and the different fields for modification
After modification, directly copy the database to the new version to overwrite, and modify your configuration file
-3.11->3.12 A new time field has been added to the user table, please refer to the SQL file
+new db field for serial table by V3.19
## Follow us
If you think this software is helpful to you, please give us a START
diff --git a/README.md b/README.md
index 80882e397251afc1050dc18a9816cb0fac76d93f..cd904d7aa5e4a877109145276245084046eac3b0 100644
--- a/README.md
+++ b/README.md
@@ -49,6 +49,7 @@ c c++network Authorize service
17. 支持公告管理
18. 支持动态验证码登录
19. 支持多端登录和合并用时
+20. 用户绑定硬件码登录
## 架构预览
XEngine_Authorize
@@ -75,7 +76,7 @@ macos执行:./XEngine_LINEnv.sh -i 3
由于依赖的子模块,在你checkout仓库后,在仓库目录下执行下面的命令拉取子模块
git submodule init
git submodule update
-如果github访问失败,你也可以clone该项目,在主目录下使用命令:git clone https://gitee.com/xengine/XEngine_OPenSource.git XEngine_Source/XEngine_Depend
+如果github访问失败,你也可以clone该项目,在主目录下使用命令:git clone https://gitee.com/xengine/XEngine_OPenSource.git XEngine_Source/XEngine_DependLibrary
#### Windows
使用VS打开并且编译,支持WINDOWS 7SP1以上系统
@@ -83,12 +84,10 @@ git submodule update
XEngine_AuthorizeApp为PC端管理工具
#### Linux
-Linux使用Makefile编译,UBUNTU22.04或者以上系统
-在控制台运行,使用XEngine_AuthorizeService
+Linux使用Makefile编译,在控制台运行,使用XEngine_AuthorizeService
#### Macos
-使用makefile编译,控制台运行,需要mac 13以及以上版本
-在控制台运行,使用XEngine_AuthorizeService
+使用makefile编译,在控制台运行,使用XEngine_AuthorizeService
##### 编译命令
在XEngine_Source目录下执行命令
@@ -143,7 +142,7 @@ V3版本为全新版本,为了适应过多环境要求开发
## 更新指导
数据库更新使用Navicat等数据库软件打开判断表和字段不同的地方进行修改
修改完毕后直接把数据库拷贝到新的版本进行覆盖,修改你的配置文件即可
-3.11->3.12用户表增加了新的时间字段,请参考SQL文件
+3.19新增加了序列号过期字段
## 视频教程
你也可以观看视频教程来了解我们的代码框架情况:https://www.bilibili.com/video/BV1iF4m177aG
diff --git a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
index d6ecdc7319f2e93804e1289eaeb0a6f9d5ce459f..c161059d8fb494e42c01da7a313ce6127046c18f 100644
--- a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
+++ b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
@@ -32,7 +32,7 @@ using namespace std;
#include "../../XEngine_Source/XAuth_Protocol.h"
//Windows::vs2022 x86 debug 编译即可
-//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
+//Linux::g++ -std=c++17 -Wall -g Authorize_APPClient.cpp -o Authorize_APPClient.exe -I ../../XEngine_Source/XEngine_DependLibrary/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
@@ -47,7 +47,8 @@ int nDYCode = 0;
XSOCKET m_Socket = 0;
LPCXSTR lpszUser = _X("123123aa");
LPCXSTR lpszPass = _X("123123");
-LPCXSTR lpszSerial = _X("XAUTH-XYRYD-NONN5-FSM45-XBLAZ-23475-28MNL-VUTJD-32956-AKF24");
+LPCXSTR lpszHWCode = _X("2FDWAD02JD2091");
+LPCXSTR lpszSerial = _X("XAUTH-XYRYS-JKG60-N510G-ZUFDH-54-V7I3H");
LPCXSTR lpszEmail = _X("486179@qq.com");
__int64x nPhoneNumber = 1366666666;
__int64x nIDNumber = 511025111111111111;
@@ -131,7 +132,7 @@ int AuthClient_Register()
#ifdef _PASS_ENCRYPT
XCHAR tszPassCodec[128] = {};
int nPLen = _tcsxlen(lpszPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPassCodec);
st_JsonUserInfo["tszUserPass"] = tszPassCodec;
@@ -145,7 +146,7 @@ int AuthClient_Register()
st_JsonUserInfo["nIDNumber"] = (Json::Value::Int64)nIDNumber;
st_JsonUserInfo["nUserLevel"] = ENUM_XENGINE_PROTOCOLHDR_LEVEL_TYPE_USER;
- st_JsonUserTable["tszHardCode"] = "2FDWAD02JD2091";
+ st_JsonUserTable["tszHardCode"] = lpszHWCode;
st_JsonUserTable["st_UserInfo"] = st_JsonUserInfo;
st_JsonRoot["st_UserTable"] = st_JsonUserTable;
@@ -257,25 +258,26 @@ int AuthClient_Login()
{
XCHAR tszMsgBuffer[2048];
XENGINE_PROTOCOLHDR st_ProtocolHdr; //协议头
- XENGINE_PROTOCOL_USERAUTH st_AuthUser;
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_AuthUser;
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
- memset(&st_AuthUser, '\0', sizeof(XENGINE_PROTOCOL_USERAUTH));
+ memset(&st_AuthUser, '\0', sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX));
st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH;
st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN;
- st_ProtocolHdr.unPacketSize = sizeof(XENGINE_PROTOCOL_USERAUTH);
+ st_ProtocolHdr.unPacketSize = sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX);
st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
st_AuthUser.enDeviceType = ENUM_PROTOCOL_FOR_DEVICE_TYPE_PC_WINDOWS;
strcpy(st_AuthUser.tszUserName, lpszUser);
strcpy(st_AuthUser.tszUserPass, lpszPass);
+ strcpy(st_AuthUser.tszHWCode, lpszHWCode);
#ifdef _PASS_ENCRYPT
int nPLen = _tcsxlen(st_AuthUser.tszUserPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(st_AuthUser.tszUserPass, byMD5Buffer, &nPLen);
memset(st_AuthUser.tszUserPass, '\0', sizeof(st_AuthUser.tszUserPass));
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_AuthUser.tszUserPass);
@@ -306,7 +308,7 @@ int AuthClient_Login()
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_AuthUser, st_ProtocolHdr.unPacketSize);
- nMsgLen = sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_USERAUTH);
+ nMsgLen = sizeof(XENGINE_PROTOCOLHDR) + sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX);
}
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nMsgLen))
@@ -322,7 +324,7 @@ int AuthClient_Login()
}
int AuthClient_Notice()
{
- XCHAR tszURLStr[MAX_PATH] = {};
+ XCHAR tszURLStr[XPATH_MAX] = {};
_xstprintf(tszURLStr, _X("http://127.0.0.1:5302/api?function=notice&token=%lld"), xhToken);
int nMsgLen = 0;
@@ -379,7 +381,7 @@ int AuthClient_GetPass()
#ifdef _PASS_ENCRYPT
XCHAR tszPASSCodec[128] = {};
int nPLen = _tcsxlen(lpszPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec);
st_JsonObject["tszUserPass"] = tszPASSCodec;
@@ -423,7 +425,7 @@ int AuthClient_GetTime()
{
Json::Value st_JsonRoot;
Json::Value st_JsonObject;
- XCHAR tszURLStr[MAX_PATH] = {};
+ XCHAR tszURLStr[XPATH_MAX] = {};
_xstprintf(tszURLStr, _X("http://127.0.0.1:5302/api?function=time&token=%lld"),xhToken);
st_JsonObject["tszUserName"] = lpszUser;
@@ -431,7 +433,7 @@ int AuthClient_GetTime()
#ifdef _PASS_ENCRYPT
XCHAR tszPASSCodec[128] = {};
int nPLen = _tcsxlen(lpszPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec);
st_JsonObject["tszUserPass"] = tszPASSCodec;
@@ -475,7 +477,7 @@ int AuthClient_Delete()
#ifdef _PASS_ENCRYPT
XCHAR tszPASSCodec[128] = {};
int nPLen = _tcsxlen(lpszPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszPASSCodec);
st_JsonObject["tszUserPass"] = tszPASSCodec;
diff --git a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.vcxproj b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.vcxproj
index 9511b05b6cd052baee4a8a964548930e62e01605..a1404cd6978004998e21eec4c6cc30f45335e85a 100644
--- a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.vcxproj
+++ b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.vcxproj
@@ -72,7 +72,7 @@
true
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
@@ -80,7 +80,7 @@
true
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);../../XEngine_Source/Debug;$(LibraryPath)
diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
index 548feec9202146f6ee4f381845231427b3e11e2f..23fad03009084687184d5e36bebbe77bccc01a15 100644
--- a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
+++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
@@ -33,9 +33,9 @@
//需要优先配置XEngine
//WINDOWS支持VS2022 x86 debug 编译调试
-//g++ -std=c++17 -Wall -g Authorize_APPLocal.cpp -o Authorize_APPLocal.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXEngine_Cryption -lXEngine_SystemApi -lAuthorizeModule_CDKey -ljsoncpp -Wl,-rpath=../../XEngine_Release
+//g++ -std=c++17 -Wall -g Authorize_APPLocal.cpp -o Authorize_APPLocal.exe -I ../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../../XEngine_Release -lXEngine_BaseLib -lXEngine_Cryption -lXEngine_SystemApi -lAuthorizeModule_CDKey -ljsoncpp -Wl,-rpath=../../XEngine_Release
-XCHAR tszSerialStr[MAX_PATH] = {};
+XCHAR tszSerialStr[XPATH_MAX] = {};
//1.创建CDKEY.或者由管理员创建.
bool Authorize_APPLocal_Create(LPCXSTR lpszKeyFile, LPCXSTR lpszPasswd)
{
diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj
index 2fbd4f42592163c2d374cd76d3bc4b8eadfe9d52..e9a4b8227cec2a74678a64d95955f1aa33a9c131 100644
--- a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj
+++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj
@@ -71,11 +71,11 @@
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);../../XEngine_Source/Debug;$(LibraryPath)
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);../../XEngine_Source/Debug;$(LibraryPath)
diff --git a/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.cpp b/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.cpp
index f3dc0b6eb386525e757a100b7781194ec4537831..1bc0f659621a8050950dc6aabb2870adb511a16b 100644
--- a/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.cpp
+++ b/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.cpp
@@ -35,7 +35,7 @@
//需要优先配置XEngine
//WINDOWS支持VS2022 x64 debug 编译调试
-//g++ -std=c++17 -Wall -g Authorize_CDKeyNetVer.cpp -o Authorize_CDKeyNetVer.exe -I ../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp -lXEngine_BaseLib -L ../../XEngine_Release -lXEngine_Cryption -lXClient_APIHelp -lXEngine_SystemConfig -lAuthorizeModule_CDKey -ljsoncpp -Wl,-rpath=../../XEngine_Release
+//g++ -std=c++17 -Wall -g Authorize_CDKeyNetVer.cpp -o Authorize_CDKeyNetVer.exe -I ../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp -lXEngine_BaseLib -L ../../XEngine_Release -lXEngine_Cryption -lXClient_APIHelp -lXEngine_SystemConfig -lAuthorizeModule_CDKey -ljsoncpp -Wl,-rpath=../../XEngine_Release
//#define XENGINE_AUTHORIZE_CDKEY_CRYPTO
diff --git a/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.vcxproj b/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.vcxproj
index 95fcd568416c0d1ae9c5d323a6de5f97bed66be7..fd661dbcbdbdf10b929cc20ed5b24a878084bf07 100644
--- a/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.vcxproj
+++ b/XEngine_Apps/Authorize_CDKeyNetVer/Authorize_CDKeyNetVer.vcxproj
@@ -71,11 +71,11 @@
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);../../XEngine_Source/Debug;$(LibraryPath)
- $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);../../XEngine_Source/x64/Debug;$(LibraryPath)
diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx
index ba57e4b09a3101cc1928d35eb729cac30fdd2b70..dc7d0543e19ec1ce7730625ca987bfbb1d3e48a8 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 98fe9004811e45da616823bbe08435181330ca26..d567a42930d37e93f60d7c241798bbc1f97be23f 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 1982d093a4d8f1824bdf6d170cedf39cf55a5132..448dde156a1460f44c501879dd241fedd5555f60 100644
--- a/XEngine_Release/XEngine_Config/XEngine_Config.json
+++ b/XEngine_Release/XEngine_Config/XEngine_Config.json
@@ -1,77 +1,86 @@
{
- "nTCPPort":5300,
- "nWSPort":5301,
- "nHTTPPort":5302,
- "bDeamon":false,
- "bTimeNotify":false,
- "XMax":{
- "nMaxClient":10000,
- "nMaxQueue":10000,
- "nIOThread":2,
- "nTCPThread":2,
- "nWSThread":2,
- "nHTTPThread":2
+ "nTCPPort": 5300,
+ "nWSPort": 5301,
+ "nHTTPPort": 5302,
+ "bDeamon": false,
+ "bTimeNotify": false,
+ "XMax": {
+ "nMaxClient": 10000,
+ "nMaxQueue": 10000,
+ "nIOThread": 2,
+ "nTCPThread": 2,
+ "nWSThread": 2,
+ "nHTTPThread": 2
},
- "XTime":{
- "nHeartCheck":3,
- "nTCPTime":5,
- "nWSTime":5,
- "nHTTPTime":5
+ "XTime": {
+ "nHeartCheck": 3,
+ "nTCPTime": 5,
+ "nWSTime": 5,
+ "nHTTPTime": 5
},
- "XVerification":{
- "nTokenTimeout":3600,
- "nDynamicTimeout":30,
- "nVerTime":5,
- "nVerMode":2,
- "nTryTime":30,
- "nTryMode":1,
- "st_XCDKey":{
- "tszKeyFile":"./APPVer.key",
- "tszKeyPass":"123123qa"
+ "XVerification": {
+ "nTokenTimeout": 3600,
+ "nDynamicTimeout": 30,
+ "nVerTime": 5,
+ "nVerMode": 2,
+ "nTryTime": 30,
+ "nTryMode": 1,
+ "st_XCDKey": {
+ "tszKeyFile": "./APPVer.key",
+ "tszKeyPass": "123123qa"
},
- "st_XToken":{
- "bAutoRenewal":false,
- "nRenewalTime":-1
- }
+ "st_XToken": {
+ "bAutoRenewal": false,
+ "nRenewalTime": -1
+ }
},
- "XLogin":{
- "bHTTPAuth":false,
- "bPassAuth":false,
- "nMultiMode":0,
- "st_PassUrl":{
- "tszPassLogin":"http://127.0.0.1:5303/auth/pass/login",
- "tszPassLogout":"http://127.0.0.1:5303/auth/pass/logout",
- "tszPassTimeout":"http://127.0.0.1:5303/auth/pass/timeout"
+ "XLogin": {
+ "bHTTPAuth": false,
+ "bPassAuth": false,
+ "nMultiMode": 0,
+ "st_PassUrl": {
+ "tszPassLogin": "http://127.0.0.1:5303/auth/pass/login",
+ "tszPassLogout": "http://127.0.0.1:5303/auth/pass/logout",
+ "tszPassTimeout": "http://127.0.0.1:5303/auth/pass/timeout"
},
- "st_MulitLogin":{
- "bSecond":true,
- "bTime":true,
- "bDay":true,
- "bCustom":false
+ "st_MulitLogin": {
+ "bSecond": true,
+ "bTime": true,
+ "bDay": true,
+ "bCustom": false
}
},
- "XCrypto":{
- "bEnable":false,
- "nPass":123123
+ "XCrypto": {
+ "bEnable": false,
+ "nPass": 123123
+ },
+ "XApiVer": {
+ "bEnable": false,
+ "tszUser": "xengine",
+ "tszPass": "123123aa",
+ "tszAPIUrl": "",
+ "nVerType": 2
},
- "XSql":{
- "nSQLType":0,
+ "XSql": {
+ "nSQLType": 0,
"SQLAddr": "127.0.0.1",
"SQLPort": 3306,
"SQLUser": "root",
"SQLPass": "123123",
- "SQLFile":"./XEngine_DataBase/SQL_User.db"
+ "SQLFile": "./XEngine_DataBase/SQL_User.db"
},
- "XLog":{
- "tszLogFile":"./XEngine_XLog/XEngine_Authorize.log",
- "MaxSize":1024000,
- "MaxCount":10,
- "LogLeave":32,
- "nLogType":17
+ "XLog": {
+ "tszLogFile": "./XEngine_XLog/XEngine_Authorize.log",
+ "tszKeyFile": "./XEngine_XLog/Storage/Key.log",
+ "MaxSize": 1024000,
+ "MaxCount": 10,
+ "LogLeave": 32,
+ "nLogType": 17,
+ "bLogStorage": true
},
- "XReport":{
- "bEnable":true,
- "tszServiceName":"XEngine_Authorize",
- "tszAPIUrl":"http://app.xyry.org:5501/api?function=machine"
+ "XReport": {
+ "bEnable": true,
+ "tszServiceName": "XEngine_Authorize",
+ "tszAPIUrl": "http://app.xyry.org:5501/api?function=machine"
}
-}
+}
\ No newline at end of file
diff --git a/XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json b/XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
index fd166010ece2088ca5c2206290e137e42d3fa466..241776a5577cbdfa5c318ed9057c1df294cac1fd 100644
--- a/XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
+++ b/XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
@@ -1,16 +1,17 @@
{
- "bSwitchDelete":true,
- "bSwitchRegister":true,
- "bSwitchLogin":true,
- "bSwitchPay":true,
- "bSwitchPass":true,
- "bSwitchTime":true,
- "bSwitchCDKey":true,
- "bSwitchNotice":true,
- "bSwitchDCode":false,
- "bSwitchMulti":true,
- "bSwitchTry":true,
- "bSwitchBanned":true,
- "bSwitchTokenLogin":true,
- "bSwitchHCLogin":true
+ "bSwitchDelete": true,
+ "bSwitchRegister": true,
+ "bSwitchLogin": true,
+ "bSwitchPay": true,
+ "bSwitchPass": true,
+ "bSwitchTime": true,
+ "bSwitchCDKey": true,
+ "bSwitchNotice": true,
+ "bSwitchDCode": false,
+ "bSwitchMulti": true,
+ "bSwitchTry": true,
+ "bSwitchBanned": true,
+ "bSwitchTokenLogin": true,
+ "bSwitchHCLogin": true,
+ "bSwitchHWBind": false
}
\ No newline at end of file
diff --git a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
index fe04ca9fdb93f71e86d90402082b78c8939b37f6..91c8a4c4245ca670b4f36e3983a145d1db0bac3d 100644
--- a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
+++ b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
@@ -1,5 +1,6 @@
{
"XVer":[
+ "V3.19.0.1001 Build20250821",
"V3.18.0.1001 Build20250510",
"V3.17.0.1001 Build20250305",
"V3.16.0.1001 Build20250113",
diff --git a/XEngine_Release/XEngine_XLog/Storage/keepfile b/XEngine_Release/XEngine_XLog/Storage/keepfile
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/XEngine_SQL/mysql.sql b/XEngine_SQL/mysql.sql
index 492ed2b02ef06a08d7358a85aa04f442deed3e0d..4944cb66ac593d10d1b0e866d2bb9310923a03ff 100644
--- a/XEngine_SQL/mysql.sql
+++ b/XEngine_SQL/mysql.sql
@@ -1,17 +1,17 @@
/*
Navicat Premium Dump SQL
- Source Server : mysql
+ Source Server : QQCloud
Source Server Type : MySQL
- Source Server Version : 80041 (8.0.41-0ubuntu0.24.04.1)
- Source Host : 10.0.2.6:3306
- Source Schema : XEngine_Authorize
+ Source Server Version : 80043 (8.0.43-0ubuntu0.24.04.1)
+ Source Host : 118.25.14.242:3306
+ Source Schema : authorize
Target Server Type : MySQL
- Target Server Version : 80041 (8.0.41-0ubuntu0.24.04.1)
+ Target Server Version : 80043 (8.0.43-0ubuntu0.24.04.1)
File Encoding : 65001
- Date: 26/02/2025 14:14:00
+ Date: 20/08/2025 11:17:20
*/
SET NAMES utf8mb4;
@@ -74,7 +74,7 @@ CREATE TABLE `Authorize_Login` (
`UserName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`UserAddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`UserTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of Authorize_Login
@@ -92,6 +92,7 @@ CREATE TABLE `Authorize_Serial` (
`CardSerialType` int NULL DEFAULT NULL,
`bIsUsed` tinyint(1) NULL DEFAULT NULL,
`CreateTime` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ `ExpiredTime` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC;
diff --git a/XEngine_SQL/sqlite.sql b/XEngine_SQL/sqlite.sql
index d0532cd8c9eed4ff9001dceb773f795e94bebe3b..d100110a7a4d2935ecc67826172607b23008b259 100644
--- a/XEngine_SQL/sqlite.sql
+++ b/XEngine_SQL/sqlite.sql
@@ -1,7 +1,7 @@
/*
Navicat Premium Dump SQL
- Source Server : Authorize
+ Source Server : auth
Source Server Type : SQLite
Source Server Version : 3045000 (3.45.0)
Source Schema : main
@@ -10,7 +10,7 @@
Target Server Version : 3045000 (3.45.0)
File Encoding : 65001
- Date: 26/02/2025 14:13:16
+ Date: 20/08/2025 11:10:20
*/
PRAGMA foreign_keys = false;
@@ -87,7 +87,8 @@ CREATE TABLE "Authorize_Serial" (
"MaxTime" TEXT,
"CardSerialType" integer,
"bIsUsed" boolean,
- "CreateTime" TEXT NOT NULL
+ "CreateTime" TEXT NOT NULL,
+ "ExpiredTime" DATE
);
-- ----------------------------
@@ -147,35 +148,35 @@ CREATE TABLE "sqlite_sequence" (
-- ----------------------------
-- Records of sqlite_sequence
-- ----------------------------
-INSERT INTO "sqlite_sequence" VALUES ('Authorize_BannedUser', 7);
-INSERT INTO "sqlite_sequence" VALUES ('Authorize_BannedAddr', 6);
-INSERT INTO "sqlite_sequence" VALUES ('Authorize_TempVer', 4);
-INSERT INTO "sqlite_sequence" VALUES ('Authorize_Serial', 22);
-INSERT INTO "sqlite_sequence" VALUES ('Authorize_User', 20);
+INSERT INTO "sqlite_sequence" VALUES ('Authorize_BannedUser', 0);
+INSERT INTO "sqlite_sequence" VALUES ('Authorize_BannedAddr', 0);
+INSERT INTO "sqlite_sequence" VALUES ('Authorize_TempVer', 0);
+INSERT INTO "sqlite_sequence" VALUES ('Authorize_User', 1);
+INSERT INTO "sqlite_sequence" VALUES ('Authorize_Serial', 0);
-- ----------------------------
-- Auto increment value for Authorize_BannedAddr
-- ----------------------------
-UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'Authorize_BannedAddr';
+UPDATE "sqlite_sequence" SET seq = 0 WHERE name = 'Authorize_BannedAddr';
-- ----------------------------
-- Auto increment value for Authorize_BannedUser
-- ----------------------------
-UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'Authorize_BannedUser';
+UPDATE "sqlite_sequence" SET seq = 0 WHERE name = 'Authorize_BannedUser';
-- ----------------------------
-- Auto increment value for Authorize_Serial
-- ----------------------------
-UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'Authorize_Serial';
+UPDATE "sqlite_sequence" SET seq = 0 WHERE name = 'Authorize_Serial';
-- ----------------------------
-- Auto increment value for Authorize_TempVer
-- ----------------------------
-UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'Authorize_TempVer';
+UPDATE "sqlite_sequence" SET seq = 0 WHERE name = 'Authorize_TempVer';
-- ----------------------------
-- Auto increment value for Authorize_User
-- ----------------------------
-UPDATE "sqlite_sequence" SET seq = 2 WHERE name = 'Authorize_User';
+UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'Authorize_User';
PRAGMA foreign_keys = true;
diff --git a/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp b/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp
index 4d57d3661659796b195882d766d8214e2152cf40..102927ba5de3e25ca7a5952faca5f36aab696b18 100644
--- a/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp
+++ b/XEngine_Source/AuthorizeModule_CDKey/Authorize_CDKey/Authorize_CDKey.cpp
@@ -1067,12 +1067,12 @@ bool CAuthorize_CDKey::Authorize_CDKey_WriteTime(LPCXSTR lpszFileKey, int nCount
Authorize_dwErrorCode = ERROR_AUTHORIZE_MODULE_CDKEY_OPENFILE;
return false;
}
- XCHAR tszMsgBuffer[MAX_PATH];
- memset(tszMsgBuffer, '\0', MAX_PATH);
+ XCHAR tszMsgBuffer[XPATH_MAX];
+ memset(tszMsgBuffer, '\0', XPATH_MAX);
//查找是否有时间列表字段
while (1)
{
- if (NULL == fgets(tszMsgBuffer, MAX_PATH, pSt_File))
+ if (NULL == fgets(tszMsgBuffer, XPATH_MAX, pSt_File))
{
break;
}
@@ -1211,12 +1211,12 @@ bool CAuthorize_CDKey::Authorize_CDKey_ReadTime(LPCXSTR lpszFileKey, XCHAR*** pp
Authorize_dwErrorCode = ERROR_AUTHORIZE_MODULE_CDKEY_OPENFILE;
return false;
}
- XCHAR tszMsgBuffer[MAX_PATH];
+ XCHAR tszMsgBuffer[XPATH_MAX];
//查找是否有时间列表字段
while (1)
{
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
- if (NULL == fgets(tszMsgBuffer, MAX_PATH, pSt_File))
+ if (NULL == fgets(tszMsgBuffer, XPATH_MAX, pSt_File))
{
break;
}
diff --git a/XEngine_Source/AuthorizeModule_CDKey/Authorize_Serial/Authorize_Serial.cpp b/XEngine_Source/AuthorizeModule_CDKey/Authorize_Serial/Authorize_Serial.cpp
index 256d976f5234974bd8ddb407447950f976589c2c..2dc41a4659235a12c747ef61cf4adf33b9cec1ea 100644
--- a/XEngine_Source/AuthorizeModule_CDKey/Authorize_Serial/Authorize_Serial.cpp
+++ b/XEngine_Source/AuthorizeModule_CDKey/Authorize_Serial/Authorize_Serial.cpp
@@ -79,13 +79,13 @@ bool CAuthorize_Serial::Authorize_Serial_Creator(XCHAR*** ppptszSerialNumber, LP
Authorize_dwErrorCode = ERROR_AUTHORIZE_MODULE_CDKEY_PARAMENT;
return false;
}
- BaseLib_Memory_Malloc((XPPPMEM)ppptszSerialNumber, nCardNumber, MAX_PATH);
+ BaseLib_Memory_Malloc((XPPPMEM)ppptszSerialNumber, nCardNumber, XPATH_MAX);
srand((unsigned int)time(NULL)); //取随机因子
for (int i = 0; i < nCardNumber; i++)
{
- XCHAR tszSerialNumber[MAX_PATH];
- memset(tszSerialNumber, '\0', MAX_PATH);
+ XCHAR tszSerialNumber[XPATH_MAX];
+ memset(tszSerialNumber, '\0', XPATH_MAX);
//检查生成类型
switch (enSerialType)
{
@@ -225,13 +225,13 @@ bool CAuthorize_Serial::Authorize_Serial_Create(XCHAR*** ppptszSerialNumber, LPC
Authorize_dwErrorCode = ERROR_AUTHORIZE_MODULE_CDKEY_PARAMENT;
return false;
}
- BaseLib_Memory_Malloc((XPPPMEM)ppptszSerialNumber, nCardNumber, MAX_PATH);
+ BaseLib_Memory_Malloc((XPPPMEM)ppptszSerialNumber, nCardNumber, XPATH_MAX);
srand((unsigned int)time(NULL)); //取随机因子
for (int i = 0; i < nCardNumber; i++)
{
- XCHAR tszSerialNumber[MAX_PATH];
- memset(tszSerialNumber, '\0', MAX_PATH);;
+ XCHAR tszSerialNumber[XPATH_MAX];
+ memset(tszSerialNumber, '\0', XPATH_MAX);;
_xstprintf(tszSerialNumber, _X("%s"), lpszUserHeader);
if (!Authorize_Serial_Fill(tszSerialNumber, nFieldNumber))
diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp
index ab57a938694993b6682fa9e235439b075077edfa..e0e957aa0bd41fea0b004513430710575c4cc1c1 100644
--- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp
+++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.cpp
@@ -130,17 +130,22 @@ bool CAuthClient_Connector::AuthClient_Connector_GetAuth(bool* pbAuth /* = NULL
类型:常量字符指针
可空:N
意思:输入密码
- 参数.三:nDYCode
+ 参数.三:lpszHWCode
+ In/Out:In
+ 类型:常量字符指针
+ 可空:Y
+ 意思:输入硬件码,如果服务器开启了硬件绑定
+ 参数.四:nDYCode
In/Out:In
类型:整数型
可空:Y
意思:输入动态码
- 参数.四:xhToken
+ 参数.五:xhToken
In/Out:In
类型:句柄型
可空:Y
意思:输入动态码绑定的句柄
- 参数.五:dwCryption
+ 参数.六:dwCryption
In/Out:In
类型:整数型
可空:Y
@@ -150,7 +155,7 @@ bool CAuthClient_Connector::AuthClient_Connector_GetAuth(bool* pbAuth /* = NULL
意思:是否成功
备注:
*********************************************************************/
-bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode /* = 0 */, XNETHANDLE xhToken /* = 0 */, XLONG dwCryption /* = 0 */)
+bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode /* = NULL */, XSHOT nDYCode /* = 0 */, XNETHANDLE xhToken /* = 0 */, XLONG dwCryption /* = 0 */)
{
AuthClient_IsErrorOccur = false;
@@ -163,12 +168,12 @@ bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR
#if (1 == _XAUTH_BUILD_SWITCH_CLIENT_TCP)
XCHAR tszMsgBuffer[2048] = {};
XENGINE_PROTOCOLHDR st_ProtocolHdr = {};
- XENGINE_PROTOCOL_USERAUTH st_AuthUser = {};
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_AuthUser = {};
//协议头
st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH;
st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN;
- st_ProtocolHdr.unPacketSize = sizeof(XENGINE_PROTOCOL_USERAUTH);
+ st_ProtocolHdr.unPacketSize = sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX);
st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
#ifdef _MSC_BUILD
@@ -179,11 +184,15 @@ 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);
-
+ if (NULL != lpszHWCode)
+ {
+ _tcsxcpy(st_AuthUser.tszHWCode, lpszHWCode);
+ }
+
if (dwCryption > 0)
{
int nPLen = _tcsxlen(lpszPass);
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(lpszPass, byMD5Buffer, &nPLen, false, dwCryption);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, st_AuthUser.tszUserPass);
}
@@ -216,7 +225,7 @@ bool CAuthClient_Connector::AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_AuthUser, st_ProtocolHdr.unPacketSize);
- nMsgLen = sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_USERAUTH);
+ nMsgLen = sizeof(XENGINE_PROTOCOLHDR) + sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX);
}
//发送数据
if (!XClient_TCPSelect_SendMsg(m_hSocket, tszMsgBuffer, nMsgLen))
@@ -293,7 +302,7 @@ bool CAuthClient_Connector::AuthClient_Connector_Heart(bool bEnable /* = true */
//////////////////////////////////////////////////////////////////////////
// 保护函数
//////////////////////////////////////////////////////////////////////////
-XHTHREAD CALLBACK CAuthClient_Connector::AuthClient_Connector_Thread(XPVOID lParam)
+XHTHREAD XCALLBACK CAuthClient_Connector::AuthClient_Connector_Thread(XPVOID lParam)
{
CAuthClient_Connector* pClass_This = (CAuthClient_Connector*)lParam;
diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h
index aaebe8923e7e580853403332b3eb734c7ae30860..b17f64f774ecdf7c93bd099e4bbfea3afc2ea877 100644
--- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h
+++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Connector/AuthClient_Connector.h
@@ -26,10 +26,10 @@ 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, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0);
+ bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode = NULL, 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);
+ static XHTHREAD XCALLBACK AuthClient_Connector_Thread(XPVOID lParam);
private:
bool m_bRun = false;
bool m_bLogin = false;
diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h b/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h
index b8a37622adb5f4a283f5e65887ee24fb9be32053..520d6e14d7b7091de4e9bf1d57f45ef864770a51 100644
--- a/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h
+++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_Define.h
@@ -77,17 +77,22 @@ extern "C" bool AuthClient_Connector_GetAuth(bool* pbAuth = NULL);
类型:常量字符指针
可空:N
意思:输入密码
- 参数.三:nDYCode
+ 参数.三:lpszHWCode
+ In/Out:In
+ 类型:常量字符指针
+ 可空:Y
+ 意思:输入硬件码,如果服务器开启了硬件绑定
+ 参数.四:nDYCode
In/Out:In
类型:整数型
可空:Y
意思:输入动态码
- 参数.四:xhToken
+ 参数.五:xhToken
In/Out:In
类型:句柄型
可空:Y
意思:输入动态码绑定的句柄
- 参数.五:dwCryption
+ 参数.六:dwCryption
In/Out:In
类型:整数型
可空:Y
@@ -97,7 +102,7 @@ extern "C" bool AuthClient_Connector_GetAuth(bool* pbAuth = NULL);
意思:是否成功
备注:
*********************************************************************/
-extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0);
+extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode = NULL, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0);
/********************************************************************
函数名称:AuthClient_Connector_Heart
函数功能:启用禁用客户端心跳
diff --git a/XEngine_Source/AuthorizeModule_Client/AuthClient_HTTPVer/AuthClient_HTTPVer.cpp b/XEngine_Source/AuthorizeModule_Client/AuthClient_HTTPVer/AuthClient_HTTPVer.cpp
index a670d58719a4bbfc9651101dcbf887db5c287d59..c1e8f1d5a31fc918a00530a029f503f878cd2bb6 100644
--- a/XEngine_Source/AuthorizeModule_Client/AuthClient_HTTPVer/AuthClient_HTTPVer.cpp
+++ b/XEngine_Source/AuthorizeModule_Client/AuthClient_HTTPVer/AuthClient_HTTPVer.cpp
@@ -50,7 +50,7 @@ bool CAuthClient_HTTPVer::AuthClient_HTTPVer_TryRequest(LPCXSTR lpszURLAddr, LPC
}
#if (1 == _XAUTH_BUILD_SWITCH_CLIENT_HTTP)
int nHTTPCode = 0;
- XCHAR tszJsonStr[MAX_PATH] = {};
+ XCHAR tszJsonStr[XPATH_MAX] = {};
Json::Value st_JsonRoot;
Json::Value st_JsonObject;
JSONCPP_STRING st_JsonError;
diff --git a/XEngine_Source/AuthorizeModule_Client/AuthorizeModule_Client.vcxproj b/XEngine_Source/AuthorizeModule_Client/AuthorizeModule_Client.vcxproj
index d1255bbcbd13b7cd97b7951873c57d623203c2ba..543131824086a245f229999f781a3abe050bd853 100644
--- a/XEngine_Source/AuthorizeModule_Client/AuthorizeModule_Client.vcxproj
+++ b/XEngine_Source/AuthorizeModule_Client/AuthorizeModule_Client.vcxproj
@@ -98,27 +98,27 @@
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
- $(XEngine_Include);..\AuthorizeModule_Client;../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);..\AuthorizeModule_Client;../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
diff --git a/XEngine_Source/AuthorizeModule_Client/Makefile b/XEngine_Source/AuthorizeModule_Client/Makefile
index 3f228543395dd73c27e4626bf94b776cea099340..310b153521aa29f774695de467e23c215d1b975c 100644
--- a/XEngine_Source/AuthorizeModule_Client/Makefile
+++ b/XEngine_Source/AuthorizeModule_Client/Makefile
@@ -2,8 +2,8 @@ CC = g++ -Wall -std=c++20 -fPIC
PLATVER =
FILEEXT =
LIBFLAG =
-LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp
-LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp
+LOADHDR = -I ./ -I ../XEngine_DependLibrary/XEngine_Module/jsoncpp
+LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp
LIB = -ljsoncpp -lXEngine_BaseLib -lXEngine_Cryption -lXClient_Socket -lXClient_APIHelp -lXEngine_SystemApi
LIBEX =
OBJECTS = AuthClient_Connector.o AuthClient_HTTPVer.o pch.o
diff --git a/XEngine_Source/AuthorizeModule_Client/pch.cpp b/XEngine_Source/AuthorizeModule_Client/pch.cpp
index 69b56a912fcae8f7b0cb9c79431326a481f20f19..743b2d8eee080f96e238f1b385cdf83d5bc51d2a 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, XSHOT nDYCode, XNETHANDLE xhToken, XLONG dwCryption)
+extern "C" bool AuthClient_Connector_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode, XSHOT nDYCode, XNETHANDLE xhToken, XLONG dwCryption)
{
- return m_Connector.AuthClient_Connector_Login(lpszUser, lpszPass, nDYCode, xhToken, dwCryption);
+ return m_Connector.AuthClient_Connector_Login(lpszUser, lpszPass, lpszHWCode, nDYCode, xhToken, dwCryption);
}
extern "C" bool AuthClient_Connector_Heart(bool bEnable)
{
diff --git a/XEngine_Source/AuthorizeModule_Configure/AuthorizeModule_Configure.vcxproj b/XEngine_Source/AuthorizeModule_Configure/AuthorizeModule_Configure.vcxproj
index e41937b517d4c0b67a1cdf07d01ab2061a791fb8..4fcbc8a7b5bcd19fc84805d560fd035bf391f9cf 100644
--- a/XEngine_Source/AuthorizeModule_Configure/AuthorizeModule_Configure.vcxproj
+++ b/XEngine_Source/AuthorizeModule_Configure/AuthorizeModule_Configure.vcxproj
@@ -99,32 +99,32 @@
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;..\AuthorizeModule_Configure;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;..\AuthorizeModule_Configure;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
diff --git a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
index 2cc0e8888dc510e37dcadd8d091307ca78749159..2f2ba8b4a7f85d4c80a49ef7ac48b6d60ae8055b 100644
--- a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
+++ b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
@@ -42,8 +42,8 @@ typedef struct
{
struct
{
- XCHAR tszKeyFile[MAX_PATH]; //本地CDKEY文件地址
- XCHAR tszKeyPass[MAX_PATH]; //本地CDKEY密码
+ XCHAR tszKeyFile[XPATH_MAX]; //本地CDKEY文件地址
+ XCHAR tszKeyPass[XPATH_MAX]; //本地CDKEY密码
}st_XCDKey;
struct
{
@@ -66,9 +66,9 @@ typedef struct
int nMultiMode; //多端登录模式,0按照平台(PC,WEB,PAD,PHONE 4种),1按照类型(每种都可以),2无限制
struct
{
- XCHAR tszPassLogin[MAX_PATH]; //三方认证登录验证
- XCHAR tszPassLogout[MAX_PATH]; //三方认证登出通知
- XCHAR tszPassTimeout[MAX_PATH]; //三方认证超时通知
+ XCHAR tszPassLogin[XPATH_MAX]; //三方认证登录验证
+ XCHAR tszPassLogout[XPATH_MAX]; //三方认证登出通知
+ XCHAR tszPassTimeout[XPATH_MAX]; //三方认证超时通知
}st_PassUrl;
//多端登录支持的计时方式
struct
@@ -84,6 +84,14 @@ typedef struct
bool bEnable; //是否启用加密传输
int nPassword; //密码
}st_XCrypto;
+ struct
+ {
+ XCHAR tszAPIUrl[XPATH_MID]; //验证API地址
+ XCHAR tszUserName[128]; //验证用户名
+ XCHAR tszUserPass[128]; //验证密码
+ int nVType; //验证方法,1 基本,2摘要
+ bool bEnable; //是否启用HTTP接口权限验证
+ }st_XApiVer;
struct
{
int nDBType;
@@ -97,21 +105,23 @@ typedef struct
}st_MYSQL;
struct
{
- XCHAR tszSQLite[MAX_PATH]; //数据库文件位置
+ XCHAR tszSQLite[XPATH_MAX]; //数据库文件位置
}st_SQLite;
}st_XSql;
struct
{
- XCHAR tszLogFile[MAX_PATH]; //日志文件
+ XCHAR tszLogFile[XPATH_MAX]; //日志文件
+ XCHAR tszKeyFile[XPATH_MAX];
int nMaxSize; //最大大小
int nMaxCount; //备份个数
int nLogLeave; //日志级别
int nLogType; //日志类型
+ bool bLogStorage; //强日志
}st_XLog;
struct
{
bool bEnable;
- XCHAR tszAPIUrl[MAX_PATH];
+ XCHAR tszAPIUrl[XPATH_MAX];
XCHAR tszServiceName[128];
}st_XReport;
struct
@@ -136,6 +146,7 @@ typedef struct
bool bSwitchBanned; //黑名单
bool bSwitchTokenLogin; //TOKEN开关
bool bSwitchHCLogin; //硬件码登录
+ bool bSwitchHWBind; //硬件码绑定
}XENGINE_FUNCTIONSWITCH;
//////////////////////////////////////////////////////////////////////////
// 导出的函数
diff --git a/XEngine_Source/AuthorizeModule_Configure/Config_Error.h b/XEngine_Source/AuthorizeModule_Configure/Config_Error.h
index 49404fadfbe64cadca06a80218d0beec85cc9228..25f1a8a34f6c56377ee5fa3e5ac8ecdc5c042320 100644
--- a/XEngine_Source/AuthorizeModule_Configure/Config_Error.h
+++ b/XEngine_Source/AuthorizeModule_Configure/Config_Error.h
@@ -20,4 +20,5 @@
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XLOG 0x0010008
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_MALLOC 0x0010009
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_REPORT 0x0010010
-#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XTIME 0x0010011
\ No newline at end of file
+#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XTIME 0x0010011
+#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XAPIVER 0x0010012
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Configure/Makefile b/XEngine_Source/AuthorizeModule_Configure/Makefile
index 923ca653dacf6b573a2db60f3a57194a013312b7..dd8ea3eeb56d6b2e892466d5cbf97ac10d148679 100644
--- a/XEngine_Source/AuthorizeModule_Configure/Makefile
+++ b/XEngine_Source/AuthorizeModule_Configure/Makefile
@@ -2,8 +2,8 @@ CC = g++ -Wall -std=c++20 -fPIC
PLATVER =
FILEEXT =
LIBFLAG =
-LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp
-LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp
+LOADHDR = -I ./ -I ../XEngine_DependLibrary/XEngine_Module/jsoncpp
+LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp
LIB = -ljsoncpp
LIBEX =
OBJECTS = ModuleConfigure_Json.o pch.o
diff --git a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
index c21f251335ec40f8345bfdcbb0ab0c8d8da019df..49a8b1242d5d23dd17959a804e69b368c927ff6d 100644
--- a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
+++ b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
@@ -61,21 +61,12 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_OPENFILE;
return false;
}
- size_t nCount = 0;
- XCHAR tszMsgBuffer[4096];
- while (1)
- {
- size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File);
- if (nRet <= 0)
- {
- break;
- }
- nCount += nRet;
- }
+ XCHAR tszMsgBuffer[8192] = {};
+ size_t nRet = fread(tszMsgBuffer, 1, sizeof(tszMsgBuffer), pSt_File);
fclose(pSt_File);
//开始解析配置文件
std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader());
- if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError))
+ if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nRet, &st_JsonRoot, &st_JsonError))
{
Config_IsErrorOccur = true;
Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_PARSE;
@@ -164,6 +155,19 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
Json::Value st_JsonXCrypto = st_JsonRoot["XCrypto"];
pSt_ServerConfig->st_XCrypto.bEnable = st_JsonXCrypto["bEnable"].asBool();
pSt_ServerConfig->st_XCrypto.nPassword = st_JsonXCrypto["nPass"].asInt();
+ //接口验证
+ if (st_JsonRoot["XApiVer"].empty() || (5 != st_JsonRoot["XApiVer"].size()))
+ {
+ Config_IsErrorOccur = true;
+ Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XAPIVER;
+ return false;
+ }
+ Json::Value st_JsonXAPIVer = st_JsonRoot["XApiVer"];
+ pSt_ServerConfig->st_XApiVer.bEnable = st_JsonXAPIVer["bEnable"].asBool();
+ pSt_ServerConfig->st_XApiVer.nVType = st_JsonXAPIVer["nVerType"].asInt();
+ _tcsxcpy(pSt_ServerConfig->st_XApiVer.tszUserName, st_JsonXAPIVer["tszUser"].asCString());
+ _tcsxcpy(pSt_ServerConfig->st_XApiVer.tszUserPass, st_JsonXAPIVer["tszPass"].asCString());
+ _tcsxcpy(pSt_ServerConfig->st_XApiVer.tszAPIUrl, st_JsonXAPIVer["tszAPIUrl"].asCString());
//数据库配置
if (st_JsonRoot["XSql"].empty() || (6 != st_JsonRoot["XSql"].size()))
{
@@ -182,7 +186,7 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
_tcsxcpy(pSt_ServerConfig->st_XSql.st_MYSQL.tszSQLUser, st_JsonXSql["SQLUser"].asCString());
_tcsxcpy(pSt_ServerConfig->st_XSql.st_MYSQL.tszSQLPass, st_JsonXSql["SQLPass"].asCString());
//日志配置
- if (st_JsonRoot["XLog"].empty() || (5 != st_JsonRoot["XLog"].size()))
+ if (st_JsonRoot["XLog"].empty() || (7 != st_JsonRoot["XLog"].size()))
{
Config_IsErrorOccur = true;
Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XLOG;
@@ -193,8 +197,10 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
pSt_ServerConfig->st_XLog.nMaxCount = st_JsonXLog["MaxCount"].asInt();
pSt_ServerConfig->st_XLog.nLogLeave = st_JsonXLog["LogLeave"].asInt();
pSt_ServerConfig->st_XLog.nLogType = st_JsonXLog["nLogType"].asInt();
+ pSt_ServerConfig->st_XLog.bLogStorage = st_JsonXLog["bLogStorage"].asBool();
_tcsxcpy(pSt_ServerConfig->st_XLog.tszLogFile, st_JsonXLog["tszLogFile"].asCString());
-
+ _tcsxcpy(pSt_ServerConfig->st_XLog.tszKeyFile, st_JsonXLog["tszKeyFile"].asCString());
+
if (st_JsonRoot["XReport"].empty() || (3 != st_JsonRoot["XReport"].size()))
{
Config_IsErrorOccur = true;
@@ -360,5 +366,6 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_Switch(LPCXSTR lpszConfigFile,
pSt_ServerConfig->bSwitchBanned = st_JsonRoot["bSwitchBanned"].asBool();
pSt_ServerConfig->bSwitchTokenLogin = st_JsonRoot["bSwitchTokenLogin"].asBool();
pSt_ServerConfig->bSwitchHCLogin = st_JsonRoot["bSwitchHCLogin"].asBool();
+ pSt_ServerConfig->bSwitchHWBind = st_JsonRoot["bSwitchHWBind"].asBool();
return true;
}
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp
index c2241c20c74e7824f00839a6598bdcac41155137..0992d0e07f34ed5643c2a6971f95e4df3e07072b 100644
--- a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp
+++ b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp
@@ -654,12 +654,17 @@ bool CDBModule_MySQL::DBModule_MySQL_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lp
类型:常量字符指针
可空:N
意思:要插入的序列号
+ 参数.二:lpszExpiredTime
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:过期日期
返回值
类型:逻辑型
意思:是否插入成功
备注:
*********************************************************************/
-bool CDBModule_MySQL::DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber)
+bool CDBModule_MySQL::DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime)
{
SQLPacket_IsErrorOccur = false;
@@ -682,26 +687,26 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber)
}
if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_SECOND == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wSecond, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW(),'%s')"), lpszSerialNumber, st_AuthTimer.wSecond, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_DAY == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wDay, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW(),'%s')"), lpszSerialNumber, st_AuthTimer.wDay, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_TIME == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wFlags, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%d','%d',0,NOW(),'%s')"), lpszSerialNumber, st_AuthTimer.wFlags, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_CUSTOM == enAuthSerialType)
{
- XCHAR tszLeftTime[MAX_PATH];
- memset(tszLeftTime, '\0', MAX_PATH);
+ XCHAR tszLeftTime[XPATH_MAX];
+ memset(tszLeftTime, '\0', XPATH_MAX);
_xstprintf(tszLeftTime, _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);
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%s','%d',0,NOW())"), lpszSerialNumber, tszLeftTime, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s','%s','%d',0,NOW(),'%s')"), lpszSerialNumber, tszLeftTime, enAuthSerialType, lpszExpiredTime);
}
else
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s',0,'%d',0,NOW())"), lpszSerialNumber, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'NOT','%s',0,'%d',0,NOW(),'%s')"), lpszSerialNumber, enAuthSerialType, lpszExpiredTime);
}
if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
@@ -809,6 +814,12 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUT
//超时时间
nFliedValue++;
_tcsxcpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]);
+ //过期时间
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ _tcsxcpy(pSt_SerialTable->tszExpiredTime, ppszResult[nFliedValue]);
+ }
}
DataBase_MySQL_FreeResult(xhData, xhTable);
@@ -898,6 +909,12 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt
//创建时间
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]);
nFliedValue++;
+ //过期时间
+ if (NULL != ppszResult[nFliedValue])
+ {
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, ppszResult[nFliedValue]);
+ }
+ nFliedValue++;
}
DataBase_MySQL_FreeResult(xhData, xhTable);
return true;
@@ -928,7 +945,7 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialT
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
return false;
}
- _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'%s','%s','%s',%d,%d,'%s','%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime, pSt_SerialTable->tszExpiredTime);
if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
{
diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h
index 1f0986b97a4ed4caf2001201b244aa8c5a3b0778..faed78593ed8735ff7a491d87ac47dd2598adbbf 100644
--- a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h
+++ b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h
@@ -33,7 +33,7 @@ public:
bool DBModule_MySQL_UserLogin(LPCXSTR lpszUserName, LPCXSTR lpszUserAddr);
bool DBModule_MySQL_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lpszUserAddr);
public:
- bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber); //插入序列卡
+ bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime); //插入序列卡
bool DBModule_MySQL_SerialDelete(LPCXSTR lpszSerialNumber); //删除一个序列号
bool DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //按照卡号或者用户查询
bool DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd);//查询所有序列卡
diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp
index 80d13c6b5a099fed6e2a249cd9de2b8f80006e94..81e7bd119bb03cc058ba48ba22592f34116add74 100644
--- a/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp
+++ b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp
@@ -605,12 +605,17 @@ bool CDBModule_SQLite::DBModule_SQLite_QueryLogin(LPCXSTR lpszUserName, LPCXSTR
类型:常量字符指针
可空:N
意思:要插入的序列号
+ 参数.二:lpszExpiredTime
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:过期日期
返回值
类型:逻辑型
意思:是否插入成功
备注:
*********************************************************************/
-bool CDBModule_SQLite::DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber)
+bool CDBModule_SQLite::DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime)
{
SQLPacket_IsErrorOccur = false;
@@ -633,26 +638,26 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber)
}
if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_SECOND == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, st_AuthTimer.wSecond, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'),'%s')"), lpszSerialNumber, st_AuthTimer.wSecond, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_DAY == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, st_AuthTimer.wDay, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'),'%s')"), lpszSerialNumber, st_AuthTimer.wDay, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_TIME == enAuthSerialType)
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, st_AuthTimer.wFlags, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,datetime('now', 'localtime'),'%s')"), lpszSerialNumber, st_AuthTimer.wFlags, enAuthSerialType, lpszExpiredTime);
}
else if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_CUSTOM == enAuthSerialType)
{
- XCHAR tszLeftTime[MAX_PATH];
- memset(tszLeftTime, '\0', MAX_PATH);
+ XCHAR tszLeftTime[XPATH_MAX];
+ memset(tszLeftTime, '\0', XPATH_MAX);
_xstprintf(tszLeftTime, _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);
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%s','%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, tszLeftTime, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%s','%d',0,datetime('now', 'localtime'),'%s')"), lpszSerialNumber, tszLeftTime, enAuthSerialType, lpszExpiredTime);
}
else
{
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s',0,'%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, enAuthSerialType);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s',0,'%d',0,datetime('now', 'localtime'),'%s')"), lpszSerialNumber, enAuthSerialType, lpszExpiredTime);
}
if (!DataBase_SQLite_Exec(xhData, tszSQLStatement))
@@ -755,6 +760,12 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPA
//超时时间
nFliedValue++;
_tcsxcpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]);
+ //过期时间
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ _tcsxcpy(pSt_SerialTable->tszExpiredTime, ppszResult[nFliedValue]);
+ }
}
DataBase_SQLite_FreeTable(ppszResult);
@@ -837,6 +848,12 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp
nFliedValue++;
//创建时间
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //过期时间
+ if (NULL != ppszResult[nFliedValue])
+ {
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, ppszResult[nFliedValue]);
+ }
nFliedValue++;
}
DataBase_SQLite_FreeTable(ppszResult);
@@ -868,7 +885,7 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_Seria
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
return false;
}
- _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s','%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime, pSt_SerialTable->tszExpiredTime);
if (!DataBase_SQLite_Exec(xhData, tszSQLStatement))
{
diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h
index bfc3ee718d3acf8d8533a14580e4e15ccd65e699..edf012717776c97ebe3151cfa8dc61ec60d4c463 100644
--- a/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h
+++ b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h
@@ -33,7 +33,7 @@ public:
bool DBModule_SQLite_UserLogin(LPCXSTR lpszUserName, LPCXSTR lpszUserAddr);
bool DBModule_SQLite_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lpszUserAddr);
public:
- bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); //插入序列卡
+ bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime); //插入序列卡
bool DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); //删除一个序列号
bool DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //按照卡号或者用户查询
bool DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE ***pppSt_SerialTable,int *pInt_ListCount, int nPosStart, int nPosEnd);//查询所有序列卡
diff --git a/XEngine_Source/AuthorizeModule_Database/Database_Define.h b/XEngine_Source/AuthorizeModule_Database/Database_Define.h
index b4b8dd08a605ed191cdc8f321be89aebbda8acda..b5d951c1b11a8d628157101e738027e813faada7 100644
--- a/XEngine_Source/AuthorizeModule_Database/Database_Define.h
+++ b/XEngine_Source/AuthorizeModule_Database/Database_Define.h
@@ -219,12 +219,17 @@ extern "C" bool DBModule_SQLite_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lpszUse
类型:常量字符指针
可空:N
意思:要插入的序列号
+ 参数.二:lpszExpiredTime
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:过期日期
返回值
类型:逻辑型
意思:是否插入成功
备注:
*********************************************************************/
-extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber);
+extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime);
/********************************************************************
函数名称:DBModule_SQLite_SerialDelete
函数功能:从数据库删除指定序列号
@@ -547,7 +552,6 @@ extern "C" bool DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Ann
备注:
*********************************************************************/
extern "C" bool DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount);
-
/************************************************************************/
/* MYSQL数据库服务导出函数 */
/************************************************************************/
@@ -713,12 +717,17 @@ extern "C" bool DBModule_MySQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int
类型:常量字符指针
可空:N
意思:要插入的序列号
+ 参数.二:lpszExpiredTime
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:过期日期
返回值
类型:逻辑型
意思:是否插入成功
备注:
*********************************************************************/
-extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber);
+extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime);
/********************************************************************
函数名称:DBModule_MySQL_SerialDelete
函数功能:从数据库删除指定序列号
diff --git a/XEngine_Source/AuthorizeModule_Database/pch.cpp b/XEngine_Source/AuthorizeModule_Database/pch.cpp
index 7fe6db08b8ab287c39cda053baab119b6957a2cf..3467a41bfd1301a6a4c6112e70a01012d193a68b 100644
--- a/XEngine_Source/AuthorizeModule_Database/pch.cpp
+++ b/XEngine_Source/AuthorizeModule_Database/pch.cpp
@@ -75,9 +75,9 @@ extern "C" bool DBModule_SQLite_QueryLogin(LPCXSTR lpszUserName, LPCXSTR lpszUse
{
return m_DBSQLite.DBModule_SQLite_QueryLogin(lpszUserName, lpszUserAddr);
}
-extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber)
+extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime)
{
- return m_DBSQLite.DBModule_SQLite_SerialInsert(lpszSerialNumber);
+ return m_DBSQLite.DBModule_SQLite_SerialInsert(lpszSerialNumber, lpszExpiredTime);
}
extern "C" bool DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber)
{
@@ -190,9 +190,9 @@ extern "C" bool DBModule_MySQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int
{
return m_DBMySQL.DBModule_MySQL_UserList(pppSt_UserInfo, pInt_ListCount, nPosStart, nPosEnd);
}
-extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber)
+extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber, LPCXSTR lpszExpiredTime)
{
- return m_DBMySQL.DBModule_MySQL_SerialInsert(lpszSerialNumber);
+ return m_DBMySQL.DBModule_MySQL_SerialInsert(lpszSerialNumber, lpszExpiredTime);
}
extern "C" bool DBModule_MySQL_SerialDelete(LPCXSTR lpszSerialNumber)
{
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.cpp b/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..60a1a4dceb9ac9d4c2ab3978d24fddfabdbcc7a8
--- /dev/null
+++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.cpp
@@ -0,0 +1,22 @@
+#include "pch.h"
+#include "AuthHelp_APIHelp.h"
+/********************************************************************
+// Created: 2025/08/18 16:05:26
+// File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Help\AuthHelp_APIHelp\AuthHelp_APIHelp.cpp
+// File Path: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Help\AuthHelp_APIHelp
+// File Base: AuthHelp_APIHelp
+// File Ext: cpp
+// Project: XEngine
+// Author: qyt
+// Purpose: 帮助函数
+// History:
+*********************************************************************/
+CAuthHelp_APIHelp::CAuthHelp_APIHelp()
+{
+}
+CAuthHelp_APIHelp::~CAuthHelp_APIHelp()
+{
+}
+//////////////////////////////////////////////////////////////////////////
+// 公有函数
+//////////////////////////////////////////////////////////////////////////
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.h b/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.h
new file mode 100644
index 0000000000000000000000000000000000000000..b54be64118ab97782f48d86be91bf949be998040
--- /dev/null
+++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_APIHelp/AuthHelp_APIHelp.h
@@ -0,0 +1,21 @@
+#pragma once
+/********************************************************************
+// Created: 2025/08/18 16:02:33
+// File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Help\AuthHelp_APIHelp\AuthHelp_APIHelp.h
+// File Path: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Help\AuthHelp_APIHelp
+// File Base: AuthHelp_APIHelp
+// File Ext: h
+// Project: XEngine
+// Author: qyt
+// Purpose: 帮助函数
+// History:
+*********************************************************************/
+
+class CAuthHelp_APIHelp
+{
+public:
+ CAuthHelp_APIHelp();
+ ~CAuthHelp_APIHelp();
+public:
+private:
+};
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp
index e52a239087f4b321e99563151e5a5d8bebbf192e..e56a21386e69433135e6a3c3d9de2157b3695512 100644
--- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp
+++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp
@@ -158,7 +158,7 @@ bool CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Get(XNETHANDLE xhToken, int nDy
//////////////////////////////////////////////////////////////////////////
// 保护函数
//////////////////////////////////////////////////////////////////////////
-XHTHREAD CALLBACK CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Thread(XPVOID lParam)
+XHTHREAD XCALLBACK CAuthHelp_DynamicCode::AuthHelp_DynamicCode_Thread(XPVOID lParam)
{
CAuthHelp_DynamicCode* pClass_This = (CAuthHelp_DynamicCode*)lParam;
//用于处理超时的token
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h
index 10be31ca15c99b6a1e10a1cf7a12e8a772f307ef..f4ba1c1725b6f2b0a92aa8d3020b412305eb42ee 100644
--- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h
+++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_DynamicCode/AuthHelp_DynamicCode.h
@@ -28,7 +28,7 @@ public:
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);
+ static XHTHREAD XCALLBACK AuthHelp_DynamicCode_Thread(XPVOID lParam);
private:
int m_nSescond = 0;
bool m_bRun = false;
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthHelp_Error.h b/XEngine_Source/AuthorizeModule_Help/AuthHelp_Error.h
index 22a82b738fad4b413e68e579ab136203acd47e5a..bfb3b8788f9849b23f36cd240a6f3b6b09667c73 100644
--- a/XEngine_Source/AuthorizeModule_Help/AuthHelp_Error.h
+++ b/XEngine_Source/AuthorizeModule_Help/AuthHelp_Error.h
@@ -38,4 +38,10 @@
/************************************************************************/
/* 多端登录 */
/************************************************************************/
-#define ERROR_AUTHORIZE_MODULE_HELP_MULTI_NOTSUPPORT 0x0050030 //不支持
\ No newline at end of file
+#define ERROR_AUTHORIZE_MODULE_HELP_MULTI_NOTSUPPORT 0x0050030 //不支持
+/************************************************************************/
+/* API帮助函数 */
+/************************************************************************/
+#define ERROR_AUTHORIZE_MODULE_HELP_APIHELP_NOTSUPPORT 0x0050040 //不支持
+#define ERROR_AUTHORIZE_MODULE_HELP_APIHELP_PARAMENT 0x0050041 //参数错误
+#define ERROR_AUTHORIZE_MODULE_HELP_APIHELP_FORMAT 0x0050042 //格式错误
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj b/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj
index a5d17b026fb996a6cef0b85e47458c028c2bb9dd..2d8e1b60dbe763414b82c0d735405c5eae2ed780 100644
--- a/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj
+++ b/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj
@@ -248,6 +248,7 @@
+
@@ -258,6 +259,7 @@
+
diff --git a/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj.filters b/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj.filters
index 3591ae8cdda879affe53f2dee554c8f8e1ddbfde..917464a387cb9e5dc3754314a5032afd6470764e 100644
--- a/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj.filters
+++ b/XEngine_Source/AuthorizeModule_Help/AuthorizeModule_Help.vcxproj.filters
@@ -37,6 +37,12 @@
{92e4cc9f-02d7-4e6d-92a1-86e433e38fd2}
+
+ {4d216925-f70a-4d9a-835c-4ff390e10949}
+
+
+ {f52e587f-431d-4520-a7ec-a79025363795}
+
@@ -63,6 +69,9 @@
头文件\AuthHelp_MultiLogin
+
+ 头文件\AuthHelp_APIHelp
+
@@ -83,6 +92,9 @@
源文件\AuthHelp_MultiLogin
+
+ 源文件\AuthHelp_APIHelp
+
diff --git a/XEngine_Source/AuthorizeModule_Help/Makefile b/XEngine_Source/AuthorizeModule_Help/Makefile
index 1649d0747165761bc183728cd5343e8705ad5e09..99ad40a234770a84e50ab24dabb53408ae8f7466 100644
--- a/XEngine_Source/AuthorizeModule_Help/Makefile
+++ b/XEngine_Source/AuthorizeModule_Help/Makefile
@@ -6,7 +6,7 @@ LOADHDR = -I ./
LOADSO = -L
LIB = -lXEngine_BaseLib
LIBEX =
-OBJECTS = AuthHelp_DynamicCode.o AuthHelp_MultiLogin.o pch.o
+OBJECTS = AuthHelp_DynamicCode.o AuthHelp_MultiLogin.o AuthHelp_APIHelp.o pch.o
ifeq ($(RELEASE),1)
FLAGS = -c -D _RELEASE
@@ -53,6 +53,8 @@ AuthHelp_DynamicCode.o:./AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./AuthHelp_DynamicCode/AuthHelp_DynamicCode.cpp
AuthHelp_MultiLogin.o:./AuthHelp_MultiLogin/AuthHelp_MultiLogin.cpp
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./AuthHelp_MultiLogin/AuthHelp_MultiLogin.cpp
+AuthHelp_APIHelp.o:./AuthHelp_APIHelp/AuthHelp_APIHelp.cpp
+ $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./AuthHelp_APIHelp/AuthHelp_APIHelp.cpp
pch.o:pch.cpp
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) pch.cpp
diff --git a/XEngine_Source/AuthorizeModule_Help/pch.cpp b/XEngine_Source/AuthorizeModule_Help/pch.cpp
index 2707ec15b97751a6ebc8e4996e4417a5e6e023e3..03d488819e7efea0b1bb81790e6e71282cbdf695 100644
--- a/XEngine_Source/AuthorizeModule_Help/pch.cpp
+++ b/XEngine_Source/AuthorizeModule_Help/pch.cpp
@@ -1,6 +1,7 @@
#include "pch.h"
#include "AuthHelp_DynamicCode/AuthHelp_DynamicCode.h"
#include "AuthHelp_MultiLogin/AuthHelp_MultiLogin.h"
+#include "AuthHelp_APIHelp/AuthHelp_APIHelp.h"
#ifdef _MSC_BUILD
#include "AuthHelp_ClipBoard/AuthHelp_ClipBoard.h"
#include "AuthHelp_Windows/AuthHelp_Windows.h"
@@ -21,6 +22,7 @@ XLONG Help_dwErrorCode = 0;
//////////////////////////////////////////////////////////////////////////
CAuthHelp_DynamicCode m_HelpDynamic;
CAuthHelp_MultiLogin m_HelpLogin;
+CAuthHelp_APIHelp m_APIHelp;
#ifdef _MSC_BUILD
CAuthHelp_ClipBoard m_HelpClipBoard;
CAuthHelp_Windows m_HelpWindow;
diff --git a/XEngine_Source/AuthorizeModule_Help/pch.h b/XEngine_Source/AuthorizeModule_Help/pch.h
index 15e6c8bf5d9ca614cd5d368c4a6e196c45689a83..642d52037a6e5dbdee95ac78076c9a02663e41d2 100644
--- a/XEngine_Source/AuthorizeModule_Help/pch.h
+++ b/XEngine_Source/AuthorizeModule_Help/pch.h
@@ -9,6 +9,7 @@
#ifdef _MSC_BUILD
// 添加要在此处预编译的标头
+#define _CRT_SECURE_NO_WARNINGS
#include "framework.h"
#include
#include
@@ -21,9 +22,15 @@
#include
using namespace std;
#include
+#include
#include
#include
#include
+#include
+#include
+#include
+#include
+#include
#include "../XAuth_BuildSwitch.h"
#include "AuthHelp_Define.h"
#include "AuthHelp_Error.h"
@@ -45,4 +52,6 @@ extern XLONG Help_dwErrorCode;
#ifdef _MSC_BUILD
#pragma comment(lib,"Comctl32.lib")
#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib")
+#pragma comment(lib,"XEngine_Core/XEngine_Cryption")
+#pragma comment(lib,"XEngine_RfcComponents/RfcComponents_HttpProtocol")
#endif
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.vcxproj b/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.vcxproj
index e03923049c37769f740fcdc342a1ed76a46790e4..693e0fd2956e85c64b9328188890209ec185321e 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.vcxproj
+++ b/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.vcxproj
@@ -99,32 +99,32 @@
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;..\AuthorizeModule_Protocol;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;..\AuthorizeModule_Protocol;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
true
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
false
- $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Makefile b/XEngine_Source/AuthorizeModule_Protocol/Makefile
index 63f4c3398f5bc27ce66b843bf348c0501111e33e..f06fc59e9f08782e57067193dd7e4cebee05e30c 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Makefile
+++ b/XEngine_Source/AuthorizeModule_Protocol/Makefile
@@ -2,8 +2,8 @@ CC = g++ -Wall -std=c++20 -fPIC
PLATVER =
FILEEXT =
LIBFLAG =
-LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp
-LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp
+LOADHDR = -I ./ -I ../XEngine_DependLibrary/XEngine_Module/jsoncpp
+LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp
LIB = -ljsoncpp -lXEngine_BaseLib
LIBEX =
OBJECTS = Protocol_Packet.o Protocol_Parse.o pch.o
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
index 1297585683b5801c5f6d38be4c2ebdcb7ec44328..dfb945b4cbe7a6eb98de9bc88e55c5e0c3e2f9c2 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
+++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
@@ -98,7 +98,7 @@ extern "C" bool Protocol_Packet_HttpComm(XCHAR* ptszMsgBuffer, int* pInt_MsgLen,
意思:是否成功
备注:
*********************************************************************/
-extern "C" bool Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PROTOCOL_USERAUTH* pSt_UserAuth);
+extern "C" bool Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth);
/********************************************************************
函数名称:Protocol_Packet_UserTime
函数功能:用户时间打包函数
@@ -473,7 +473,7 @@ extern "C" bool Protocol_Parse_HttpParseToken(LPCXSTR lpszMsgBuffer, int nMsgLen
意思:是否成功
备注:
*********************************************************************/
-extern "C" bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERAUTH * pSt_UserAuth);
+extern "C" bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth);
/********************************************************************
函数名称:Protocol_Parse_HttpParseUser
函数功能:解析用户信息
@@ -632,12 +632,17 @@ extern "C" bool Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int nMsgLe
类型:字符指针
可空:N
意思:导出拥有时间
+ 参数.七:ptszExpiredTime
+ In/Out:Out
+ 类型:字符指针
+ 可空:N
+ 意思:导出过期时间
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
-extern "C" bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE * penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR * ptszHasTime);
+extern "C" bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE * penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR * ptszHasTime, XCHAR* ptszExpiredTime);
/********************************************************************
函数名称:Protocol_Parse_HttpParseOnline
函数功能:解析在线列表
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
index 9e67289ed5d4ba2c5a89c79ff89410806c83f650..af12123fe3c79a2f5516a4d6b91b4cf398d50440 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
+++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
@@ -159,7 +159,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpComm(XCHAR* ptszMsgBuffer, int* pInt_
意思:是否成功
备注:
*********************************************************************/
-bool CProtocol_Packet::Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PROTOCOL_USERAUTH* pSt_UserAuth)
+bool CProtocol_Packet::Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth)
{
Protocol_IsErrorOccur = false;
@@ -174,6 +174,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* p
st_JsonUser["tszUserName"] = pSt_UserAuth->tszUserName;
st_JsonUser["tszUserPass"] = pSt_UserAuth->tszUserPass;
+ st_JsonUser["tszHWCode"] = pSt_UserAuth->tszHWCode;
st_JsonUser["enDeviceType"] = pSt_UserAuth->enDeviceType;
st_JsonUser["enClientType"] = pSt_UserAuth->enClientType;
@@ -532,6 +533,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpSerialList(XCHAR* ptszMsgBuffer, int*
st_JsonObject["enSerialType"] = (*pppSt_SerialList)[i]->enSerialType;
st_JsonObject["bIsUsed"] = (*pppSt_SerialList)[i]->bIsUsed;
st_JsonObject["tszCreateTime"] = (*pppSt_SerialList)[i]->tszCreateTime;
+ st_JsonObject["tszExpiredTime"] = (*pppSt_SerialList)[i]->tszExpiredTime;
st_JsonArray.append(st_JsonObject);
}
st_JsonRoot["msg"] = "success";
@@ -664,6 +666,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpSwitch(XCHAR* ptszMsgBuffer, int* pIn
st_JsonRoot["bSwitchBanned"] = pSt_FunSwitch->bSwitchBanned;
st_JsonRoot["bSwitchTokenLogin"] = pSt_FunSwitch->bSwitchTokenLogin;
st_JsonRoot["bSwitchHCLogin"] = pSt_FunSwitch->bSwitchHCLogin;
+ st_JsonRoot["bSwitchHWBind"] = pSt_FunSwitch->bSwitchHWBind;
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
index d2caf409948de115bbe9419f2c4494621e095ae8..229c446dbc334763a4dd1aea869de883fb6d7c77 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
+++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
@@ -20,7 +20,7 @@ public:
bool Protocol_Packet_HDRComm(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, int enDeviceType);
public:
bool Protocol_Packet_HttpComm(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL);
- bool Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PROTOCOL_USERAUTH* pSt_UserAuth);
+ bool Protocol_Packet_HttpUserPass(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth);
bool Protocol_Packet_UserTime(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHSESSION_NETCLIENT*** pppSt_ListClient, int nListCount);
bool Protocol_Packet_HttpUserTime(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_PROTOCOL_TIME* pSt_ProtocolTime);
bool Protocol_Packet_HttpClientInfo(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, AUTHREG_USERTABLE* pSt_UserTable);
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
index 50cad0f654825e50d6790979209f096655b8acfa..536774d0dc750d8c0d7f8dc5c984c3d5778d1e2e 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
+++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
@@ -154,7 +154,7 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseToken(LPCXSTR lpszMsgBuffer, int n
意思:是否成功
备注:
*********************************************************************/
-bool CProtocol_Parse::Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERAUTH* pSt_UserAuth)
+bool CProtocol_Parse::Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth)
{
Protocol_IsErrorOccur = false;
@@ -197,6 +197,10 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nM
{
pSt_UserAuth->enDeviceType = (ENUM_PROTOCOLDEVICE_TYPE)st_JsonProtocol["enDeviceType"].asInt();
}
+ if (!st_JsonProtocol["tszHWCode"].isNull())
+ {
+ _tcsxcpy(pSt_UserAuth->tszHWCode, st_JsonProtocol["tszHWCode"].asCString());
+ }
return true;
}
/********************************************************************
@@ -578,6 +582,10 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int
{
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, st_JsonArray[i]["tszCreateTime"].asCString());
}
+ if (!st_JsonArray[i]["tszExpiredTime"].isNull())
+ {
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, st_JsonArray[i]["tszExpiredTime"].asCString());
+ }
if (!st_JsonArray[i]["tszMaxTime"].isNull())
{
_tcsxcpy((*pppSt_SerialTable)[i]->tszMaxTime, st_JsonArray[i]["tszMaxTime"].asCString());
@@ -626,12 +634,17 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int
类型:字符指针
可空:N
意思:导出拥有时间
+ 参数.七:ptszExpiredTime
+ In/Out:Out
+ 类型:字符指针
+ 可空:N
+ 意思:导出过期时间
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
-bool CProtocol_Parse::Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE* penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR* ptszHasTime)
+bool CProtocol_Parse::Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE* penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR* ptszHasTime, XCHAR* ptszExpiredTime)
{
Protocol_IsErrorOccur = false;
@@ -658,6 +671,11 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int
*pInt_NumberCount = st_JsonObject["nNumberCount"].asInt();
*pInt_SerialCount = st_JsonObject["nSerialCount"].asInt();
_tcsxcpy(ptszHasTime, st_JsonObject["tszHasTime"].asCString());
+
+ if (!st_JsonObject["tszExpiredTime"].isNull())
+ {
+ _tcsxcpy(ptszExpiredTime, st_JsonObject["tszExpiredTime"].asCString());
+ }
return true;
}
/********************************************************************
@@ -847,6 +865,7 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseSwitch(LPCXSTR lpszMsgBuffer, int
pSt_FunSwitch->bSwitchBanned = st_JsonObject["bSwitchBanned"].asBool();
pSt_FunSwitch->bSwitchTokenLogin = st_JsonObject["bSwitchTokenLogin"].asBool();
pSt_FunSwitch->bSwitchHCLogin = st_JsonObject["bSwitchHCLogin"].asBool();
+ pSt_FunSwitch->bSwitchHWBind = st_JsonObject["bSwitchHWBind"].asBool();
return true;
}
/********************************************************************
diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
index e8a69b00db65b9f41c3e9567288f1699de1da3cc..b3ff682eb6292334e055ded3cfd44f02497da4f8 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
+++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
@@ -20,13 +20,13 @@ public:
bool Protocol_Parse_WSHdr(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr);
public:
bool Protocol_Parse_HttpParseToken(LPCXSTR lpszMsgBuffer, int nMsgLen, XNETHANDLE* pxhToken);
- bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERAUTH* pSt_UserAuth);
+ bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth);
bool Protocol_Parse_HttpParseUser(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);
bool Protocol_Parse_HttpParsePay(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHREG_PROTOCOL_USERPAY* pSt_UserPay);
bool Protocol_Parse_HttpParseTry(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHREG_TEMPVER* pSt_NETTry);
bool Protocol_Parse_HttpParseTable(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHREG_USERTABLE* pSt_UserTable);
bool Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount);
- bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE* penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR* ptszHasTime);
+ bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE* penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR* ptszHasTime, XCHAR* ptszExpiredTime);
bool Protocol_Parse_HttpParseOnline(LPCXSTR lpszMsgBuffer, int nMsgLen, bool* pbOnline);
bool Protocol_Parse_HttpParseTime(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHREG_PROTOCOL_TIME* pSt_ProtocolTime);
bool Protocol_Parse_HttpParseSwitch(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_FUNCTIONSWITCH* pSt_FunSwitch);
diff --git a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp
index 0b468218be23ac4785eaa8e1da5e4d6dcb33e1e1..fe2509930cbdb39bb7d9365c98ba2c3309d47074 100644
--- a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp
+++ b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp
@@ -39,7 +39,7 @@ extern "C" bool Protocol_Packet_HttpComm(XCHAR * ptszMsgBuffer, int* pInt_MsgLen
{
return m_ProtocolPacket.Protocol_Packet_HttpComm(ptszMsgBuffer, pInt_MsgLen, nCode, lpszMsgBuffer);
}
-extern "C" bool Protocol_Packet_HttpUserPass(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PROTOCOL_USERAUTH * pSt_UserAuth)
+extern "C" bool Protocol_Packet_HttpUserPass(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth)
{
return m_ProtocolPacket.Protocol_Packet_HttpUserPass(ptszMsgBuffer, pInt_MsgLen, pSt_UserAuth);
}
@@ -94,7 +94,7 @@ extern "C" bool Protocol_Parse_HttpParseToken(LPCXSTR lpszMsgBuffer, int nMsgLen
{
return m_ProtocolParse.Protocol_Parse_HttpParseToken(lpszMsgBuffer, nMsgLen, pxhToken);
}
-extern "C" bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERAUTH * pSt_UserAuth)
+extern "C" bool Protocol_Parse_HttpParseAuth(LPCXSTR lpszMsgBuffer, int nMsgLen, AUTHORIZE_PROTOCOL_USERAUTHEX* pSt_UserAuth)
{
return m_ProtocolParse.Protocol_Parse_HttpParseAuth(lpszMsgBuffer, nMsgLen, pSt_UserAuth);
}
@@ -118,9 +118,9 @@ extern "C" bool Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int nMsgLe
{
return m_ProtocolParse.Protocol_Parse_HttpParseSerial(lpszMsgBuffer, nMsgLen, pppSt_SerialTable, pInt_ListCount);
}
-extern "C" bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE * penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR * ptszHasTime)
+extern "C" bool Protocol_Parse_HttpParseSerial2(LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE * penSerialType, int* pInt_NumberCount, int* pInt_SerialCount, XCHAR * ptszHasTime, XCHAR* ptszExpiredTime)
{
- return m_ProtocolParse.Protocol_Parse_HttpParseSerial2(lpszMsgBuffer, nMsgLen, penSerialType, pInt_NumberCount, pInt_SerialCount, ptszHasTime);
+ return m_ProtocolParse.Protocol_Parse_HttpParseSerial2(lpszMsgBuffer, nMsgLen, penSerialType, pInt_NumberCount, pInt_SerialCount, ptszHasTime, ptszExpiredTime);
}
extern "C" bool Protocol_Parse_HttpParseOnline(LPCXSTR lpszMsgBuffer, int nMsgLen, bool * pbOnline)
{
diff --git a/XEngine_Source/AuthorizeModule_Session/Session_Define.h b/XEngine_Source/AuthorizeModule_Session/Session_Define.h
index e25adb93ed6e88b1fde37f6abc0686bbca8521be..0274311174dbd6c8f6f38c549465fbddad8f918e 100644
--- a/XEngine_Source/AuthorizeModule_Session/Session_Define.h
+++ b/XEngine_Source/AuthorizeModule_Session/Session_Define.h
@@ -25,8 +25,8 @@ typedef struct
// 导出的回调函数
//////////////////////////////////////////////////////////////////////////
//用户在线时间事件回调处理函数,用户名 在线时间 剩余时间(分,天) 注册的卡类型 自定义参数
-typedef void(CALLBACK* CALLBACK_XENGIEN_AUTHORIZE_SESSION_CLIENT_EVENTS)(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam);
-typedef void(CALLBACK* CALLBACK_XENGIEN_AUTHORIZE_SESSION_TOKEN_EVENTS)(XNETHANDLE xhToken, XPVOID lParam);
+typedef void(XCALLBACK* CALLBACK_XENGIEN_AUTHORIZE_SESSION_CLIENT_EVENTS)(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam);
+typedef void(XCALLBACK* CALLBACK_XENGIEN_AUTHORIZE_SESSION_TOKEN_EVENTS)(XNETHANDLE xhToken, XPVOID lParam);
//////////////////////////////////////////////////////////////////////////
// 导出的函数
//////////////////////////////////////////////////////////////////////////
diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile
index 3436b2c364c625c4b2f6f989d0c5ad4fdb10e4a6..6844f2416453ec00f1e1835964aa56783b504056 100644
--- a/XEngine_Source/Makefile
+++ b/XEngine_Source/Makefile
@@ -3,8 +3,9 @@ UNICODE = 0
PLATFORM=linux
FLAGS=
-DEPEND_JSONCPP_PATH = ./XEngine_Depend/XEngine_Module/jsoncpp
-DEPEND_REPORT_PATH = ./XEngine_Depend/XEngine_Module/XEngine_InfoReport
+DEPEND_JSONCPP_PATH = ./XEngine_DependLibrary/XEngine_Module/jsoncpp
+DEPEND_REPORT_PATH = ./XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport
+DEPEND_VERIFICATION_PATH = ./XEngine_DependLibrary/XEngine_Module/XEngine_Verification
AUTH_CDKEY_PATH = ./AuthorizeModule_CDKey
AUTH_SESSION_PATH = ./AuthorizeModule_Session
@@ -22,7 +23,7 @@ else ifeq ($(PLATFORM),mac)
FILEEXT = dylib
endif
-XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so \
+XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so libXEngine_Verification.so \
libAuthorizeModule_CDKey.so libAuthorizeModule_Session.so libAuthorizeModule_Database.so libAuthorizeModule_Protocol.so libAuthorizeModule_Configure.so libAuthorizeModule_Help.so libAuthorizeModule_Client.so \
XEngine_AuthorizeApp.exe
@@ -42,6 +43,12 @@ ifeq ($(FLAGS), InstallAll)
else
make -C $(DEPEND_REPORT_PATH) PLATFORM=$(PLATFORM) $(FLAGS)
endif
+libXEngine_Verification.so:
+ifeq ($(FLAGS), InstallAll)
+ cp $(DEPEND_VERIFICATION_PATH)/libXEngine_Verification.$(FILEEXT) ../XEngine_Release/
+else
+ make -C $(DEPEND_VERIFICATION_PATH) PLATFORM=$(PLATFORM) $(FLAGS)
+endif
libAuthorizeModule_CDKey.so:
make -C $(AUTH_CDKEY_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) $(FLAGS)
diff --git a/XEngine_Source/VSClean.bat b/XEngine_Source/VSClean.bat
index bf8eca312f152fb046525e2cb0588095fec84b08..1ca651dd525b7b4211e51a50b597fcfab8b1565b 100644
--- a/XEngine_Source/VSClean.bat
+++ b/XEngine_Source/VSClean.bat
@@ -5,6 +5,7 @@ FOR /R . %%d IN (.) DO rd /s /q "%%d\Release" 2>nul
FOR /R . %%d IN (.) DO rd /s /q "%%d\x64" 2>nul
FOR /R . %%d IN (.) DO rd /s /q "%%d\Debug" 2>nul
FOR /R . %%d IN (.) DO rd /s /q "%%d\ipch" 2>nul
+FOR /R . %%d IN (.) DO rd /s /q "%%d\ARM64" 2>nul
rem If the Properties directory is empty, remove it
FOR /R . %%d in (.) do rd /q "%%d\Properties" 2> nul
diff --git a/XEngine_Source/VSCopy_Arm64.bat b/XEngine_Source/VSCopy_Arm64.bat
index 9d58afb0b474cc5791ba2d213f1f59367ca665d7..b589fba0daefee51105b616e0e94e848e28725f9 100644
--- a/XEngine_Source/VSCopy_Arm64.bat
+++ b/XEngine_Source/VSCopy_Arm64.bat
@@ -7,6 +7,7 @@ copy /y "%XEngine_LibArm64%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./"
copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./"
+copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./"
copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./"
diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat
index 65b1df8b3b1d3242e1dd13704ba79d37d9461310..b813a8b7ad5aea7c0b603350d496fe3594afaf99 100644
--- a/XEngine_Source/VSCopy_Debug.bat
+++ b/XEngine_Source/VSCopy_Debug.bat
@@ -7,6 +7,7 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_Cryption.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIHelp.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIAddr.dll" "./"
+copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_XSocket.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_DataBase.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Packets.dll" "./"
diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat
index 449407a1d65ae4599f95b2460b83b33bbf30f3c2..af2923e220e1f3f27f60bf8fa2071682973c6731 100644
--- a/XEngine_Source/VSCopy_x64.bat
+++ b/XEngine_Source/VSCopy_x64.bat
@@ -7,6 +7,7 @@ copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./"
diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat
index c70e5a43f33cf9d8b2d41de1dec6831cb228f059..e37f3b1d63881b394fe476985eb3c13717e6eb75 100644
--- a/XEngine_Source/VSCopy_x86.bat
+++ b/XEngine_Source/VSCopy_x86.bat
@@ -7,6 +7,7 @@ copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./"
+copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./"
diff --git a/XEngine_Source/XAuth_Protocol.h b/XEngine_Source/XAuth_Protocol.h
index 3f7f969f80db7f2f30d3c6f9acf065c9d806ca6b..eb47b6f52f1d0f405d38f0054589c9dd8783d2f5 100644
--- a/XEngine_Source/XAuth_Protocol.h
+++ b/XEngine_Source/XAuth_Protocol.h
@@ -51,6 +51,7 @@
#define ERROR_AUTHORIZE_PROTOCOL_NOTMATCH 0x114 //数据不匹配
#define ERROR_AUTHORIZE_PROTOCOL_TIMEOUT 0x115 //超时
#define ERROR_AUTHORIZE_PROTOCOL_PERMISSION 0x116 //用户权限错误
+#define ERROR_AUTHORIZE_PROTOCOL_EXPIRED 0x117 //已经过期
#define ERROR_AUTHORIZE_PROTOCOL_SERVER 0x201 //服务端内部错误
#define ERROR_AUTHORIZE_PROTOCOL_LIMIT 0x202 //服务端内部限制,数据过大后者过小
@@ -105,7 +106,7 @@ typedef enum
//////////////////////////////////////////////////////////////////////////
typedef struct
{
- XCHAR tszAddr[MAX_PATH]; //服务器或者域名地址
+ XCHAR tszAddr[XPATH_MAX]; //服务器或者域名地址
int nPort; //端口号码,如果>0表示CDKEY验证失败后改为网络验证
//版本信息
struct
@@ -194,9 +195,10 @@ typedef struct tag_AuthReg_SerialTable
XCHAR tszUserName[XENGINE_AUTHREG_SERVICE_SQL_MAX_USERNAME]; //使用者是谁
XCHAR tszSerialNumber[128]; //序列号
XCHAR tszMaxTime[64]; //使用时间
- ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType; //充值卡类型
- int bIsUsed; //是否已经使用
+ ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType; //充值卡类型
+ int bIsUsed; //是否已经使用
XCHAR tszCreateTime[64]; //创建时间
+ XCHAR tszExpiredTime[64]; //过期时间
}AUTHREG_SERIALTABLE, * LPAUTHREG_SERIALTABLE;
//网络临时验证表
typedef struct
@@ -212,7 +214,7 @@ typedef struct
typedef struct
{
__int64x nID; //ID
- XCHAR tszUserName[MAX_PATH]; //用户名
+ XCHAR tszUserName[XPATH_MAX]; //用户名
XCHAR tszIPAddr[128]; //IP
XCHAR tszLeftTime[64]; //过期时间
XCHAR tszCreateTime[64]; //创建时间
@@ -224,4 +226,8 @@ typedef struct
XCHAR tszContext[4096]; //信息
XCHAR tszCreateTime[64]; //创建时间
__int64x nID; //ID
-}AUTHREG_ANNOUNCEMENT, * LPAUTHREG_ANNOUNCEMENT;
\ No newline at end of file
+}AUTHREG_ANNOUNCEMENT, * LPAUTHREG_ANNOUNCEMENT;
+//扩展登录协议
+struct AUTHORIZE_PROTOCOL_USERAUTHEX : public XENGINE_PROTOCOL_USERAUTH {
+ XCHAR tszHWCode[64];
+};
\ No newline at end of file
diff --git a/XEngine_Source/XEngine.sln b/XEngine_Source/XEngine.sln
index 7b92e0d9cf3b0af60134c942fcc64311635901e2..8ad426b00d77992dabae57b275cbbf6125a8f1ac 100644
--- a/XEngine_Source/XEngine.sln
+++ b/XEngine_Source/XEngine.sln
@@ -36,8 +36,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_AuthorizeService",
ProjectSection(ProjectDependencies) = postProject
{02A75BD0-416E-4AEF-BF34-BD85BD86384F} = {02A75BD0-416E-4AEF-BF34-BD85BD86384F}
{1391B739-713B-4A3A-9233-FEAB92E0566C} = {1391B739-713B-4A3A-9233-FEAB92E0566C}
+ {51DCBDC7-50CB-4A44-B10B-FCF90309914D} = {51DCBDC7-50CB-4A44-B10B-FCF90309914D}
{5FA1874A-32F4-4176-9C23-4E22BE183660} = {5FA1874A-32F4-4176-9C23-4E22BE183660}
{6B926D00-DCD2-49E3-86A9-3230C9872E65} = {6B926D00-DCD2-49E3-86A9-3230C9872E65}
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}
{AB3DB24C-E1B3-41CF-B2F4-6C12E13C2894} = {AB3DB24C-E1B3-41CF-B2F4-6C12E13C2894}
{CB9138DF-789D-459F-AD43-4095B22A487F} = {CB9138DF-789D-459F-AD43-4095B22A487F}
{DD8CB5F1-980F-48C3-BA2F-3CF534903B14} = {DD8CB5F1-980F-48C3-BA2F-3CF534903B14}
@@ -51,6 +53,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_AuthorizeApp", "XEn
{1391B739-713B-4A3A-9233-FEAB92E0566C} = {1391B739-713B-4A3A-9233-FEAB92E0566C}
{AB3DB24C-E1B3-41CF-B2F4-6C12E13C2894} = {AB3DB24C-E1B3-41CF-B2F4-6C12E13C2894}
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
+ {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AuthorizeModule_Help", "AuthorizeModule_Help\AuthorizeModule_Help.vcxproj", "{AB3DB24C-E1B3-41CF-B2F4-6C12E13C2894}"
@@ -63,20 +66,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AuthorizeModule_Client", "A
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_Depend", "XEngine_Depend", "{6444F125-63DE-4120-98B3-DF097A9758FA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsoncpp", "XEngine_Depend\XEngine_Module\jsoncpp\jsoncpp.vcxproj", "{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_DependLibrary", "XEngine_DependLibrary", "{6444F125-63DE-4120-98B3-DF097A9758FA}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngine_Depend\XEngine_Module\XEngine_InfoReport\XEngine_InfoReport.vcxproj", "{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AuthorizeModule_CDKey", "AuthorizeModule_CDKey\AuthorizeModule_CDKey.vcxproj", "{02A75BD0-416E-4AEF-BF34-BD85BD86384F}"
ProjectSection(ProjectDependencies) = postProject
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AuthorizeModule_CDKey", "AuthorizeModule_CDKey\AuthorizeModule_CDKey.vcxproj", "{02A75BD0-416E-4AEF-BF34-BD85BD86384F}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsoncpp", "XEngine_DependLibrary\XEngine_Module\jsoncpp\jsoncpp.vcxproj", "{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngine_DependLibrary\XEngine_Module\XEngine_InfoReport\XEngine_InfoReport.vcxproj", "{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}"
ProjectSection(ProjectDependencies) = postProject
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@@ -183,6 +188,18 @@ Global
{DD8CB5F1-980F-48C3-BA2F-3CF534903B14}.Release|x64.Build.0 = Release|x64
{DD8CB5F1-980F-48C3-BA2F-3CF534903B14}.Release|x86.ActiveCfg = Release|Win32
{DD8CB5F1-980F-48C3-BA2F-3CF534903B14}.Release|x86.Build.0 = Release|Win32
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x64.ActiveCfg = Debug|x64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x64.Build.0 = Debug|x64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x86.ActiveCfg = Debug|Win32
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x86.Build.0 = Debug|Win32
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|ARM64.ActiveCfg = Release|ARM64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|ARM64.Build.0 = Release|ARM64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x64.ActiveCfg = Release|x64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x64.Build.0 = Release|x64
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x86.ActiveCfg = Release|Win32
+ {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x86.Build.0 = Release|Win32
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.Build.0 = Debug|ARM64
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x64.ActiveCfg = Debug|x64
@@ -207,18 +224,18 @@ Global
{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x64.Build.0 = Release|x64
{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.ActiveCfg = Release|Win32
{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.Build.0 = Release|Win32
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|ARM64.Build.0 = Debug|ARM64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x64.ActiveCfg = Debug|x64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x64.Build.0 = Debug|x64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x86.ActiveCfg = Debug|Win32
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Debug|x86.Build.0 = Debug|Win32
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|ARM64.ActiveCfg = Release|ARM64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|ARM64.Build.0 = Release|ARM64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x64.ActiveCfg = Release|x64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x64.Build.0 = Release|x64
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x86.ActiveCfg = Release|Win32
- {02A75BD0-416E-4AEF-BF34-BD85BD86384F}.Release|x86.Build.0 = Release|Win32
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.Build.0 = Debug|ARM64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.ActiveCfg = Debug|x64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.Build.0 = Debug|x64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.ActiveCfg = Debug|Win32
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.Build.0 = Debug|Win32
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.ActiveCfg = Release|ARM64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.Build.0 = Release|ARM64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.ActiveCfg = Release|x64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.Build.0 = Release|x64
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.ActiveCfg = Release|Win32
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -228,6 +245,7 @@ Global
{51DCBDC7-50CB-4A44-B10B-FCF90309914D} = {2444CB54-6443-47F9-8D93-91237D0D05FB}
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {6444F125-63DE-4120-98B3-DF097A9758FA}
{F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {6444F125-63DE-4120-98B3-DF097A9758FA}
+ {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {6444F125-63DE-4120-98B3-DF097A9758FA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E1F1DDE3-8949-41AF-84D6-03CB7CAA03AB}
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
index f3b8bdfe37bc76aae90febbdcd8cc9ee169f29c3..6e8fc894537023ce27d3e8433f0d4ffe7b32e6fa 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
@@ -72,8 +72,8 @@ void CDialog_Announcement::OnBnClickedButton1()
AfxMessageBox(_T("内容不能小于1个字节"));
return;
}
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/notice/insert"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
@@ -169,8 +169,8 @@ void CDialog_Announcement::OnBnClickedButton2()
}
m_StrNotice = m_ListAnnouncement.GetItemText(nSelect, 0);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/notice/delete"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
int nMsgLen = 0;
@@ -249,8 +249,8 @@ void CDialog_Announcement::OnBnClickedButton3()
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/notice/list"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp
index a7a490628a4ae871d50656785362394443230473..9c1b3790067f3c076132f5a58c9af871075e7726 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp
@@ -78,17 +78,17 @@ BOOL CDialog_Banned::OnInitDialog()
m_RadioUser.SetCheck(BST_CHECKED);
m_ListAddr.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 80);
- m_ListAddr.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 60);
- m_ListAddr.InsertColumn(2, _T("IP地址"), LVCFMT_LEFT, 120);
- m_ListAddr.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 120);
- m_ListAddr.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 120);
+ m_ListAddr.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 80);
+ m_ListAddr.InsertColumn(2, _T("IP地址"), LVCFMT_LEFT, 250);
+ m_ListAddr.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 250);
+ m_ListAddr.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 250);
m_ListAddr.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_ListUser.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 80);
- m_ListUser.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 60);
- m_ListUser.InsertColumn(2, _T("用户名"), LVCFMT_LEFT, 120);
- m_ListUser.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 120);
- m_ListUser.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 120);
+ m_ListUser.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 80);
+ m_ListUser.InsertColumn(2, _T("用户名"), LVCFMT_LEFT, 250);
+ m_ListUser.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 250);
+ m_ListUser.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 250);
m_ListUser.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_EditPosStart.SetWindowText(_T("0"));
@@ -118,8 +118,8 @@ void CDialog_Banned::OnBnClickedButton2()
m_EditUser.GetWindowText(m_StrUser);
m_DataTime.GetWindowText(m_StrTime);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/banned/insert"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
int nMsgLen = 0;
@@ -223,8 +223,8 @@ void CDialog_Banned::OnBnClickedButton4()
m_EditPosStart.GetWindowText(m_StrPosStart);
m_EditPosEnd.GetWindowText(m_StrPosEnd);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/banned/list"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
@@ -352,10 +352,10 @@ void CDialog_Banned::OnBnClickedButton3()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -454,8 +454,8 @@ void CDialog_Banned::OnBnClickedButton5()
m_EditUser.GetWindowText(m_StrUser);
m_DataTime.GetWindowText(m_StrTime);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/banned/modify"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
int nMsgLen = 0;
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp
index afd2f1270090f554fdd30e46f2d29e9b539eb466..4a864168c12577c3aa3acf5315e6b8ad1c31394b 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp
@@ -106,8 +106,8 @@ void CDialog_Config::OnBnClickedButton1()
CString m_StrPass;
CString m_StrToken;
CString m_StrDCode;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
//组合请求URL
m_EditIPAddr.GetWindowText(m_StrIPAddr);
m_EditIPPort.GetWindowText(m_StrIPPort);
@@ -120,7 +120,7 @@ void CDialog_Config::OnBnClickedButton1()
if (m_RadioPassEnable.GetCheck() == BST_CHECKED)
{
int nPLen = m_StrPass.GetLength();
- XBYTE byMD5Buffer[MAX_PATH] = {};
+ XBYTE byMD5Buffer[XPATH_MAX] = {};
Cryption_Api_Digest(W2A(m_StrPass.GetBuffer()), byMD5Buffer, &nPLen, false, m_ComboPassCodec.GetCurSel() + 1);
BaseLib_String_StrToHex((LPCXSTR)byMD5Buffer, nPLen, tszMDBuffer);
}
@@ -195,8 +195,8 @@ void CDialog_Config::OnBnClickedButton2()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
//组合请求URL
m_EditIPAddr.GetWindowText(m_StrIPAddr);
m_EditIPPort.GetWindowText(m_StrIPPort);
@@ -257,8 +257,8 @@ void CDialog_Config::OnBnClickedButton5()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
//组合请求URL
m_EditIPAddr.GetWindowText(m_StrIPAddr);
m_EditIPPort.GetWindowText(m_StrIPPort);
@@ -329,8 +329,8 @@ void CDialog_Config::OnBnClickedButton8()
// TODO: 在此添加控件通知处理程序代码
CString m_StrIPAddr;
CString m_StrIPPort;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
//组合请求URL
m_EditIPAddr.GetWindowText(m_StrIPAddr);
m_EditIPPort.GetWindowText(m_StrIPPort);
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 759d9d399ceb82ec721c471d5264680e1a3d1eb9..8e2050e4dd6f1e756d7ade729426c8e43af712d7 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
@@ -83,8 +83,8 @@ BOOL CDialog_Modify::OnInitDialog()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
//组合请求URL
pConfigWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pConfigWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
@@ -225,8 +225,8 @@ void CDialog_Modify::OnBnClickedButton2()
CString m_StrToken;
CString m_StrBtnModify;
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
m_BtnModify.GetWindowText(m_StrBtnModify);
//组合请求URL
CDialog_Config* pConfigWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp
index 49b6fa1f9251b20bf98c53d49c336ce5357871fc..e95fec338dd32a9209d29c1bac1137f64f95f6e2 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp
@@ -31,6 +31,7 @@ void CDialog_Serial::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_EDIT2, m_EditHasTime);
DDX_Control(pDX, IDC_EDIT3, m_EditPosStart);
DDX_Control(pDX, IDC_EDIT7, m_EditPosEnd);
+ DDX_Control(pDX, IDC_EDIT8, m_EditExpiredTime);
}
@@ -52,12 +53,13 @@ BOOL CDialog_Serial::OnInitDialog()
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
- m_ListSerial.InsertColumn(0, _T("使用者"), LVCFMT_LEFT, 80);
- m_ListSerial.InsertColumn(1, _T("序列号"), LVCFMT_LEFT, 180);
+ m_ListSerial.InsertColumn(0, _T("使用者"), LVCFMT_LEFT, 100);
+ m_ListSerial.InsertColumn(1, _T("序列号"), LVCFMT_LEFT, 450);
m_ListSerial.InsertColumn(2, _T("时间/次数"), LVCFMT_LEFT, 90);
m_ListSerial.InsertColumn(3, _T("卡类型"), LVCFMT_LEFT, 80);
- m_ListSerial.InsertColumn(4, _T("是否使用"), LVCFMT_LEFT, 60);
+ m_ListSerial.InsertColumn(4, _T("是否使用"), LVCFMT_LEFT, 80);
m_ListSerial.InsertColumn(5, _T("创建日期"), LVCFMT_LEFT, 120);
+ m_ListSerial.InsertColumn(6, _T("过期日期"), LVCFMT_LEFT, 120);
m_ListSerial.SetExtendedStyle(LVS_EX_FULLROWSELECT);
for (int i = 0; i < 5; i++)
@@ -101,8 +103,8 @@ void CDialog_Serial::OnBnClickedButton1()
m_EditPosStart.GetWindowText(m_StrPosStart);
m_EditPosEnd.GetWindowText(m_StrPosEnd);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/serial/list"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
int nMsgLen = 0;
@@ -175,6 +177,7 @@ void CDialog_Serial::OnBnClickedButton1()
m_ListSerial.SetItemText(i, 4, _T("未使用"));
}
m_ListSerial.SetItemText(i, 5, A2W(st_JsonArray["tszCreateTime"].asCString()));
+ m_ListSerial.SetItemText(i, 6, A2W(st_JsonArray["tszExpiredTime"].asCString()));
}
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
}
@@ -186,10 +189,10 @@ void CDialog_Serial::OnBnClickedButton2()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -197,9 +200,11 @@ void CDialog_Serial::OnBnClickedButton2()
CString m_StrHasTime;
CString m_StrSerialCount;
CString m_StrNumberCount;
+ CString m_StrExpiredTime;
Json::Value st_JsonRoot;
Json::Value st_JsonObject;
+ m_EditExpiredTime.GetWindowText(m_StrExpiredTime);
m_EditHasTime.GetWindowText(m_StrHasTime);
m_EditSerialCount.GetWindowText(m_StrSerialCount);
m_ComboNumber.GetLBText(m_ComboNumber.GetCurSel(), m_StrNumberCount);
@@ -209,6 +214,7 @@ void CDialog_Serial::OnBnClickedButton2()
st_JsonObject["nNumberCount"] = _ttoi(m_StrNumberCount.GetBuffer());
st_JsonObject["nSerialCount"] = _ttoi(m_StrSerialCount.GetBuffer());
st_JsonObject["tszHasTime"] = W2A(m_StrHasTime.GetBuffer());
+ st_JsonObject["tszExpiredTime"] = W2A(m_StrExpiredTime.GetBuffer());
st_JsonRoot["st_SerialInfo"] = st_JsonObject;
st_JsonRoot["xhToken"] = _ttoll(m_StrToken.GetBuffer());
@@ -279,7 +285,7 @@ void CDialog_Serial::OnBnClickedButton4()
int nSelect = m_ListSerial.GetNextSelectedItem(pSt_Sition);
if (nSelect < 0)
{
- Authorize_Help_LogPrint(_T("你没有选择任何客户!"));
+ Authorize_Help_LogPrint(_T("你没有选择任何序列号!"));
return;
}
CString m_StrSerial = m_ListSerial.GetItemText(nSelect, 1);
@@ -287,10 +293,10 @@ void CDialog_Serial::OnBnClickedButton4()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -403,9 +409,9 @@ void CDialog_Serial::OnBnClickedButton6()
}
FILE* pSt_File = _tfopen(m_FileDlg.GetPathName(), _T("rb"));
- XCHAR tszMsgBuffer[MAX_PATH];
+ XCHAR tszMsgBuffer[XPATH_MAX];
//跳过第一行
- if (NULL == fgets(tszMsgBuffer, MAX_PATH, pSt_File))
+ if (NULL == fgets(tszMsgBuffer, XPATH_MAX, pSt_File))
{
//没有数据
AfxMessageBox(_T("没有数据"));
@@ -414,9 +420,9 @@ void CDialog_Serial::OnBnClickedButton6()
list stl_ListSerial;
while (true)
{
- memset(tszMsgBuffer, '\0', MAX_PATH);
+ memset(tszMsgBuffer, '\0', XPATH_MAX);
//一行一行读取
- if (NULL == fgets(tszMsgBuffer, MAX_PATH, pSt_File))
+ if (NULL == fgets(tszMsgBuffer, XPATH_MAX, pSt_File))
{
break;
}
@@ -425,8 +431,7 @@ void CDialog_Serial::OnBnClickedButton6()
AUTHREG_SERIALTABLE st_SerialTable;
memset(&st_SerialTable, '\0', sizeof(AUTHREG_SERIALTABLE));
- int nRet = _stxscanf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s"), &nID, st_SerialTable.tszUserName, st_SerialTable.tszSerialNumber, st_SerialTable.tszMaxTime, &st_SerialTable.enSerialType, &st_SerialTable.bIsUsed, st_SerialTable.tszCreateTime, (st_SerialTable.tszCreateTime + 11));
- st_SerialTable.tszCreateTime[10] = ' ';
+ int nRet = _stxscanf(tszMsgBuffer, _X("%d %s %s %s %d %d %19c %19c"), &nID, st_SerialTable.tszUserName, st_SerialTable.tszSerialNumber, st_SerialTable.tszMaxTime, &st_SerialTable.enSerialType, &st_SerialTable.bIsUsed, st_SerialTable.tszCreateTime, st_SerialTable.tszExpiredTime);
stl_ListSerial.push_back(st_SerialTable);
}
fclose(pSt_File);
@@ -434,10 +439,10 @@ void CDialog_Serial::OnBnClickedButton6()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -458,6 +463,7 @@ void CDialog_Serial::OnBnClickedButton6()
st_JsonObject["bIsUsed"] = stl_ListIterator->bIsUsed;
st_JsonObject["enSerialType"] = stl_ListIterator->enSerialType;
st_JsonObject["tszCreateTime"] = stl_ListIterator->tszCreateTime;
+ st_JsonObject["tszExpiredTime"] = stl_ListIterator->tszExpiredTime;
st_JsonObject["tszMaxTime"] = stl_ListIterator->tszMaxTime;
st_JsonObject["tszSerialNumber"] = stl_ListIterator->tszSerialNumber;
st_JsonObject["tszUserName"] = stl_ListIterator->tszUserName;
@@ -539,17 +545,17 @@ void CDialog_Serial::OnBnClickedButton7()
}
FILE* pSt_File = _tfopen(m_FileDlg.GetPathName(), _T("wb"));
- XCHAR tszMsgBuffer[MAX_PATH];
- memset(tszMsgBuffer, '\0', MAX_PATH);
+ XCHAR tszMsgBuffer[XPATH_MAX];
+ memset(tszMsgBuffer, '\0', XPATH_MAX);
//写字段头
- int nRet = _xstprintf(tszMsgBuffer, _X("ID UserName SerialNumber MaxTime CardSerialType bIsUsed CreateTime\r\n"));
+ int nRet = _xstprintf(tszMsgBuffer, _X("ID UserName SerialNumber MaxTime CardSerialType bIsUsed CreateTime ExpiredTime\r\n"));
fwrite(tszMsgBuffer, 1, nRet, pSt_File);
for (int i = 0; i < m_ListSerial.GetItemCount(); i++)
{
int nSerialType = 0;
int nUsedType = 0;
- memset(tszMsgBuffer, '\0', MAX_PATH);
+ memset(tszMsgBuffer, '\0', XPATH_MAX);
USES_CONVERSION;
for (int j = 0; j < sizeof(lpszXSerialType) - 1; j++)
@@ -564,7 +570,7 @@ void CDialog_Serial::OnBnClickedButton7()
{
nUsedType = 0;
}
- nRet = _xstprintf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s\r\n"), i, W2A(m_ListSerial.GetItemText(i, 0).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 1).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 2).GetBuffer()), nSerialType, nUsedType, W2A(m_ListSerial.GetItemText(i, 5).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 6).GetBuffer()));
+ nRet = _xstprintf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s %s\r\n"), i, W2A(m_ListSerial.GetItemText(i, 0).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 1).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 2).GetBuffer()), nSerialType, nUsedType, W2A(m_ListSerial.GetItemText(i, 5).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 6).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 7).GetBuffer()));
fwrite(tszMsgBuffer, 1, nRet, pSt_File);
}
fclose(pSt_File);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.h
index d632363cb04b12e265f2fa55cbde687ade3c5bfb..e07e1be42f05af8c48558dbfb12290183bf7faaa 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.h
@@ -36,4 +36,5 @@ public:
afx_msg void OnBnClickedButton7();
CEdit m_EditPosStart;
CEdit m_EditPosEnd;
+ CEdit m_EditExpiredTime;
};
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
index 106c3ee52b1b3a36bc45ce810e70967e41cc30e2..92b423438ef30ee2778673cffdd0a3d4034437c0 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
@@ -52,6 +52,8 @@ void CDialog_Switch::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_RADIO24, m_RadioTokenClose);
DDX_Control(pDX, IDC_RADIO25, m_RadioHCLoginOPen);
DDX_Control(pDX, IDC_RADIO26, m_RadioHCLoginClose);
+ DDX_Control(pDX, IDC_RADIO27, m_RadioHWBindOPen);
+ DDX_Control(pDX, IDC_RADIO28, m_RadioHWBindClose);
}
@@ -70,10 +72,10 @@ void CDialog_Switch::OnBnClickedButton1()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -269,6 +271,16 @@ void CDialog_Switch::OnBnClickedButton1()
m_RadioHCLoginOPen.SetCheck(BST_UNCHECKED);
m_RadioHCLoginClose.SetCheck(BST_CHECKED);
}
+ if (st_JsonRoot["bSwitchHWBind"].asBool())
+ {
+ m_RadioHWBindOPen.SetCheck(BST_CHECKED);
+ m_RadioHWBindClose.SetCheck(BST_UNCHECKED);
+ }
+ else
+ {
+ m_RadioHWBindOPen.SetCheck(BST_UNCHECKED);
+ m_RadioHWBindClose.SetCheck(BST_CHECKED);
+ }
m_BtnSetConfigure.EnableWindow(true);
}
else
@@ -285,10 +297,10 @@ void CDialog_Switch::OnBnClickedButton2()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
- XCHAR tszUrlAddr[MAX_PATH];
+ XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
@@ -411,6 +423,14 @@ void CDialog_Switch::OnBnClickedButton2()
{
st_JsonObject["bSwitchHCLogin"] = false;
}
+ if (BST_CHECKED == m_RadioHWBindOPen.GetCheck())
+ {
+ st_JsonObject["bSwitchHWBind"] = true;
+ }
+ else
+ {
+ st_JsonObject["bSwitchHWBind"] = false;
+ }
st_JsonRoot["st_SwitchInfo"] = st_JsonObject;
st_JsonRoot["xhToken"] = _ttoll(m_StrToken.GetBuffer());
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
index 46638233ba2a93ecb7428311d8485bd60b116261..57d7d628f3336c34ea1025023e39e1ff4a01110a 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
@@ -53,4 +53,6 @@ public:
CButton m_RadioTokenClose;
CButton m_RadioHCLoginOPen;
CButton m_RadioHCLoginClose;
+ CButton m_RadioHWBindOPen;
+ CButton m_RadioHWBindClose;
};
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Try.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Try.cpp
index db29df88e035f12ddc4c361754b5ce12103a7bb1..7ae7440b39fefa32ceeef35883577b675c974e15 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Try.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Try.cpp
@@ -53,7 +53,7 @@ BOOL CDialog_Try::OnInitDialog()
m_ListTry.InsertColumn(0, _T("ID"), LVCFMT_LEFT, 40);
m_ListTry.InsertColumn(1, _T("序列号"), LVCFMT_LEFT, 120);
m_ListTry.InsertColumn(2, _T("试用类型"), LVCFMT_LEFT, 100);
- m_ListTry.InsertColumn(3, _T("试用时间"), LVCFMT_LEFT, 70);
+ m_ListTry.InsertColumn(3, _T("试用时间"), LVCFMT_LEFT, 100);
m_ListTry.InsertColumn(4, _T("剩余时间"), LVCFMT_LEFT, 100);
m_ListTry.InsertColumn(5, _T("创建时间"), LVCFMT_LEFT, 120);
m_ListTry.SetExtendedStyle(LVS_EX_FULLROWSELECT);
@@ -74,23 +74,23 @@ void CDialog_Try::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_ListTry.DeleteAllItems();
- TCHAR tszIPAddr[MAX_PATH];
- TCHAR tszIPPort[MAX_PATH];
- TCHAR tszToken[MAX_PATH];
- XCHAR tszUrlAddr[MAX_PATH];
+ TCHAR tszIPAddr[XPATH_MAX];
+ TCHAR tszIPPort[XPATH_MAX];
+ TCHAR tszToken[XPATH_MAX];
+ XCHAR tszUrlAddr[XPATH_MAX];
CString m_StrPosStart;
CString m_StrPosEnd;
- memset(tszIPAddr, '\0', MAX_PATH);
- memset(tszIPPort, '\0', MAX_PATH);
- memset(tszToken, '\0', MAX_PATH);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszIPAddr, '\0', XPATH_MAX);
+ memset(tszIPPort, '\0', XPATH_MAX);
+ memset(tszToken, '\0', XPATH_MAX);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
m_EditPosStart.GetWindowText(m_StrPosStart);
m_EditPosEnd.GetWindowText(m_StrPosEnd);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT1), tszIPAddr, MAX_PATH);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT2), tszIPPort, MAX_PATH);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT9), tszToken, MAX_PATH);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT1), tszIPAddr, XPATH_MAX);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT2), tszIPPort, XPATH_MAX);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT9), tszToken, XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/try/list"), W2A(tszIPAddr), W2A(tszIPPort));
@@ -184,8 +184,8 @@ void CDialog_Try::OnBnClickedButton2()
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/try/delete"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
@@ -309,8 +309,8 @@ void CDialog_Try::OnBnClickedButton3()
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/try/modify"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp
index acf2d949bfc0921634dc7957037bb3894771c9e4..50c9c297b7e915d7846d6e1bd9bb605e6891b6a3 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp
@@ -54,14 +54,14 @@ BOOL CDialog_User::OnInitDialog()
// TODO: 在此添加额外的初始化
m_ListCtrlClient.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 40);
- m_ListCtrlClient.InsertColumn(1, _T("用户名"), LVCFMT_LEFT, 85);
+ m_ListCtrlClient.InsertColumn(1, _T("用户名"), LVCFMT_LEFT, 120);
m_ListCtrlClient.InsertColumn(2, _T("IP地址"), LVCFMT_LEFT, 100);
- m_ListCtrlClient.InsertColumn(3, _T("级别"), LVCFMT_LEFT, 70);
- m_ListCtrlClient.InsertColumn(4, _T("在线时间(秒钟)"), LVCFMT_LEFT, 100);
- m_ListCtrlClient.InsertColumn(5, _T("剩余时间/过期时间"), LVCFMT_LEFT, 120);
+ m_ListCtrlClient.InsertColumn(3, _T("级别"), LVCFMT_LEFT, 80);
+ m_ListCtrlClient.InsertColumn(4, _T("在线时间(秒钟)"), LVCFMT_LEFT, 150);
+ m_ListCtrlClient.InsertColumn(5, _T("剩余时间/过期时间"), LVCFMT_LEFT, 150);
m_ListCtrlClient.InsertColumn(6, _T("充值类型"), LVCFMT_LEFT, 80);
- m_ListCtrlClient.InsertColumn(7, _T("设备类型"), LVCFMT_LEFT, 60);
- m_ListCtrlClient.InsertColumn(8, _T("是否在线"), LVCFMT_LEFT, 60);
+ m_ListCtrlClient.InsertColumn(7, _T("设备类型"), LVCFMT_LEFT, 80);
+ m_ListCtrlClient.InsertColumn(8, _T("是否在线"), LVCFMT_LEFT, 80);
m_ListCtrlClient.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_EditFlushTime.SetWindowText(_T("10"));
@@ -77,23 +77,23 @@ void CDialog_User::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_ListCtrlClient.DeleteAllItems();
- TCHAR tszIPAddr[MAX_PATH];
- TCHAR tszIPPort[MAX_PATH];
- TCHAR tszToken[MAX_PATH];
- XCHAR tszUrlAddr[MAX_PATH];
+ TCHAR tszIPAddr[XPATH_MAX];
+ TCHAR tszIPPort[XPATH_MAX];
+ TCHAR tszToken[XPATH_MAX];
+ XCHAR tszUrlAddr[XPATH_MAX];
CString m_StrPosStart;
CString m_StrPosEnd;
- memset(tszIPAddr, '\0', MAX_PATH);
- memset(tszIPPort, '\0', MAX_PATH);
- memset(tszToken, '\0', MAX_PATH);
- memset(tszUrlAddr, '\0', MAX_PATH);
+ memset(tszIPAddr, '\0', XPATH_MAX);
+ memset(tszIPPort, '\0', XPATH_MAX);
+ memset(tszToken, '\0', XPATH_MAX);
+ memset(tszUrlAddr, '\0', XPATH_MAX);
m_EditPosStart.GetWindowText(m_StrPosStart);
m_EditPosEnd.GetWindowText(m_StrPosEnd);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT1), tszIPAddr, MAX_PATH);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT2), tszIPPort, MAX_PATH);
- ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT9), tszToken, MAX_PATH);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT1), tszIPAddr, XPATH_MAX);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT2), tszIPPort, XPATH_MAX);
+ ::GetWindowText(::GetDlgItem(hConfigWnd, IDC_EDIT9), tszToken, XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/client/list"), W2A(tszIPAddr), W2A(tszIPPort));
int nMsgLen = 0;
@@ -210,8 +210,8 @@ void CDialog_User::OnBnClickedButton2()
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/client/close"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
@@ -301,8 +301,8 @@ void CDialog_User::OnBnClickedButton3()
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
- XCHAR tszUrlAddr[MAX_PATH];
- memset(tszUrlAddr, '\0', MAX_PATH);
+ XCHAR tszUrlAddr[XPATH_MAX];
+ memset(tszUrlAddr, '\0', XPATH_MAX);
USES_CONVERSION;
_xstprintf(tszUrlAddr, _X("http://%s:%s/auth/client/delete"), W2A(m_StrIPAddr.GetBuffer()), W2A(m_StrIPPort.GetBuffer()));
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc
index 94012f1fd42f838aed991632b0db167d8039c57d..d13598135be86f0a8fda3f11ec8af72dcb4b0854 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_AuthorizeApp.vcxproj b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
index 9b6343584d3b9a6be4c259fb22f9a5d1d62b7bb6..16cc6b90309fefa7408b529d845244781f1e5ba4 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
@@ -105,32 +105,32 @@
true
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;..\XEngine_AuthorizeApp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;..\XEngine_AuthorizeApp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
true
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
true
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
false
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib32);$(LibraryPath)
false
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_Lib64);$(LibraryPath)
false
- $(XEngine_Include);../../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath)
+ $(XEngine_Include);../../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath)
$(XEngine_LibArm64);$(LibraryPath)
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
index c8df52f30a484d1a65fd770894c8a1a011ba9125..aed7a9283752f86ff4617b4560a6f1981ced005d 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
@@ -43,7 +43,7 @@ END_MESSAGE_MAP()
LONG WINAPI Coredump_ExceptionFilter(EXCEPTION_POINTERS* pExceptionPointers)
{
static int i = 0;
- XCHAR tszFileStr[MAX_PATH] = {};
+ XCHAR tszFileStr[XPATH_MAX] = {};
XCHAR tszTimeStr[128] = {};
BaseLib_Time_TimeToStr(tszTimeStr);
_xstprintf(tszFileStr, _X("./XEngine_Coredump/dumpfile_%s_%d.dmp"), tszTimeStr, i++);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
index b3be7d630f7048b2920469eeb0784e0f572a21c2..2968d3f7463707f69d00d5239e8f86b9cd0ffaf3 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
@@ -96,6 +96,8 @@
#define IDC_RADIO24 1038
#define IDC_RADIO25 1039
#define IDC_RADIO26 1040
+#define IDC_RADIO27 1041
+#define IDC_RADIO28 1042
// Next default values for new objects
//
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 5a243477771f170b474b456d1f459cff31920126..244dcf8e32c5d42b6b760d4ddf21da1f315aecfd 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
@@ -12,10 +12,10 @@ bool XEngine_AuthorizeHTTP_Pass(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
if (0 == _tcsxnicmp(lpszAPIName, lpszAPILogin, _tcsxlen(lpszAPIName)))
{
- XENGINE_PROTOCOL_USERAUTH st_UserAuth;
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_UserAuth;
AUTHREG_USERTABLE st_UserTable;
- memset(&st_UserAuth, '\0', sizeof(XENGINE_PROTOCOL_USERAUTH));
+ memset(&st_UserAuth, '\0', sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX));
memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE));
Protocol_Parse_HttpParseAuth(lpszMsgBuffer, nMsgLen, &st_UserAuth);
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 4510318064763fc281d406caf205468e010a4a97..9bb881b090e7bded7b796a3a7552fca2b7562713 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
@@ -49,14 +49,12 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
{
int nNumberCount = 0;
int nSerialCount = 0;
- XCHAR tszHasTime[128];
- XENGINE_LIBTIME st_AuthTimer;
- ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType;
+ XCHAR tszHasTime[128] = {};
+ XCHAR tszExpiredTime[128] = {};
+ XENGINE_LIBTIME st_AuthTimer = {};
+ ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType = {};
- memset(&st_AuthTimer, '\0', sizeof(st_AuthTimer));
- memset(tszHasTime, '\0', sizeof(tszHasTime));
-
- Protocol_Parse_HttpParseSerial2(lpszMsgBuffer, nMsgLen, &enSerialType, &nNumberCount, &nSerialCount, tszHasTime);
+ Protocol_Parse_HttpParseSerial2(lpszMsgBuffer, nMsgLen, &enSerialType, &nNumberCount, &nSerialCount, tszHasTime, tszExpiredTime);
//解析类型
if (ENUM_AUTHORIZE_MODULE_SERIAL_TYPE_SECOND == enSerialType)
{
@@ -102,14 +100,14 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
{
for (int i = 0; i < nSerialCount; i++) //导入序列卡
{
- DBModule_SQLite_SerialInsert(pptszSerialNumber[i]);
+ DBModule_SQLite_SerialInsert(pptszSerialNumber[i], tszExpiredTime);
}
}
else
{
for (int i = 0; i < nSerialCount; i++)
{
- DBModule_MySQL_SerialInsert(pptszSerialNumber[i]);
+ DBModule_MySQL_SerialInsert(pptszSerialNumber[i], tszExpiredTime);
}
}
BaseLib_Memory_Free((XPPPMEM)&pptszSerialNumber, nSerialCount);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
index d9eceda70423bb56e04b803e2d66213b90aef33f..8303c7c4effdce0b7bfb7db131e0b0a81222c3da 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
@@ -13,14 +13,14 @@ bool XEngine_AuthorizeHTTP_Switch(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
{
Protocol_Packet_HttpSwitch(tszSDBuffer, &nSDLen, &st_FunSwitch);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求获取功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,多端登录:%d,临时试用:%d,普通Token:%d,硬件码登录:%d"), lpszClientAddr, st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求获取功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,多端登录:%d,临时试用:%d,普通Token:%d,硬件码登录:%d,硬件码绑定:%d"), lpszClientAddr, st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin, st_FunSwitch.bSwitchHWBind);
}
else if (0 == _tcsxnicmp(lpszAPISet, lpszAPIName, _tcsxlen(lpszAPISet)))
{
Protocol_Parse_HttpParseSwitch(lpszMsgBuffer, nMsgLen, &st_FunSwitch);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,多端登录:%d,临时试用:%d,普通Token:%d,硬件码登录:%d"), lpszClientAddr, st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求设置功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,多端登录:%d,临时试用:%d,普通Token:%d,硬件码登录:%d,硬件码绑定:%d"), lpszClientAddr, st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry, st_FunSwitch.bSwitchTokenLogin, st_FunSwitch.bSwitchHCLogin, st_FunSwitch.bSwitchHWBind);
}
return true;
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 df6bcd750b9474aef5998cdd3106ac2725214b86..ed41d86d100c515e1bfd6dcb5ef3b3d2f4d86c5a 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
@@ -117,9 +117,9 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
//禁止权限0和1注册
if (st_UserTable.st_UserInfo.nUserLevel < 10)
{
- Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PERMISSION, "user and pass does not set");
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PERMISSION, "user permission level incorrect");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,没有设置用户和密码"), lpszClientAddr);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,配置的用户权限错误"), lpszClientAddr);
return false;
}
//默认普通用户
@@ -131,6 +131,16 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,没有设置用户和密码"), lpszClientAddr);
return false;
}
+ if (st_FunSwitch.bSwitchHWBind)
+ {
+ if (_tcsxlen(st_UserTable.tszHardCode) <= 0)
+ {
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_REQUEST, "not set hardware code");
+ 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 (0 == st_AuthConfig.st_XSql.nDBType)
{
@@ -167,6 +177,30 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
return false;
}
Protocol_Parse_HttpParsePay(lpszMsgBuffer, nMsgLen, &st_UserPay);
+ //判断序列号是否过期
+ AUTHREG_SERIALTABLE st_SerialTable = {};
+ if (!DBModule_SQLite_SerialQuery(st_UserPay.tszSerialNumber, &st_SerialTable))
+ {
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "serial number 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_SerialTable.tszSerialNumber);
+ return false;
+ }
+ if (_tcsxlen(st_SerialTable.tszExpiredTime) > 1)
+ {
+ __int64x nTimeValue = 0;
+ XCHAR tszTimeStr[128] = {};
+ BaseLib_Time_TimeToStr(tszTimeStr);
+ BaseLib_TimeSpan_GetForStr(tszTimeStr, st_SerialTable.tszExpiredTime, &nTimeValue, 3);
+ if (nTimeValue < 0)
+ {
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_EXPIRED, "serial was expired");
+ 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_SerialTable.tszSerialNumber);
+ return false;
+ }
+ }
+
bool bSuccess = false;
if (0 == st_AuthConfig.st_XSql.nDBType)
{
@@ -180,7 +214,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
{
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());
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE, _X("HTTP客户端:%s,用户名:%s,充值失败,序列号:%s,无法继续,错误:%X"), lpszClientAddr, st_UserPay.tszUserName, st_UserPay.tszSerialNumber, DBModule_GetLastError());
return false;
}
if (0 == st_AuthConfig.st_XSql.nDBType)
@@ -194,7 +228,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
Session_Authorize_SetUser(&st_UserInfo);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,用户名:%s,充值成功,序列号:%s"), lpszClientAddr, st_UserPay.tszUserName, st_UserPay.tszSerialNumber);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE, _X("HTTP客户端:%s,用户名:%s,充值成功,序列号:%s"), lpszClientAddr, st_UserPay.tszUserName, st_UserPay.tszSerialNumber);
}
else if (0 == _tcsxnicmp(lpszAPIName, lpszAPIPass, _tcsxlen(lpszAPIName)))
{
@@ -254,7 +288,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
return false;
}
- XENGINE_PROTOCOL_USERAUTH st_AuthProtocol = {};
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_AuthProtocol = {};
_tcsxcpy(st_AuthProtocol.tszUserName, st_UserTable.st_UserInfo.tszUserName);
_tcsxcpy(st_AuthProtocol.tszUserPass, st_UserTable.st_UserInfo.tszUserPass);
Protocol_Packet_HttpUserPass(tszSDBuffer, &nSDLen, &st_AuthProtocol);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Config.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Config.cpp
index 7563dd04d632553b29144d46fa6d671171cead45..136993728aaa8eedc876f6bbf3de2f322f230671 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Config.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Config.cpp
@@ -24,38 +24,50 @@ bool Authorize_Service_Parament(int argc, char** argv)
for (int i = 0;i < argc;i++)
{
- if ((0 == _tcsxcmp("-h", argv[i])) || (0 == _tcsxcmp("-H", argv[i])))
+ if (0 == _tcsxicmp("-h", argv[i]))
{
Authorize_Service_ParamentHelp();
return false;
}
- else if (0 == _tcsxcmp("-d", argv[i]))
+ else if (0 == _tcsxicmp("-d", argv[i]))
{
st_AuthConfig.bDeamon = _ttxoi(argv[++i]);
}
- else if (0 == _tcsxcmp("-TP", argv[i]))
+ else if (0 == _tcsxicmp("-tp", argv[i]))
{
st_AuthConfig.nTCPPort = _ttxoi(argv[++i]);
}
- else if (0 == _tcsxcmp("-WP", argv[i]))
+ else if (0 == _tcsxicmp("-wp", argv[i]))
{
st_AuthConfig.nWSPort = _ttxoi(argv[++i]);
}
- else if (0 == _tcsxcmp("-HP", argv[i]))
+ else if (0 == _tcsxicmp("-hp", argv[i]))
{
st_AuthConfig.nHTTPPort = _ttxoi(argv[++i]);
}
- else if (0 == _tcsxcmp("-LL", argv[i]))
+ else if (0 == _tcsxicmp("-t", argv[i]))
{
- st_AuthConfig.st_XLog.nLogLeave = _ttxoi(argv[++i]);
+ bIsTest = true;
}
- else if (0 == _tcsxcmp("-LT", argv[i]))
+ else if (0 == _tcsxicmp("-lt", argv[i]))
{
st_AuthConfig.st_XLog.nLogType = _ttxoi(argv[++i]);
}
- else if (0 == _tcsxcmp("-t", argv[i]))
+ else if (0 == _tcsxicmp("-l", argv[i]))
{
- bIsTest = true;
+ LPCXSTR lpszLogLevel = argv[++i];
+ if (0 == _tcsxicmp("debug", lpszLogLevel))
+ {
+ st_AuthConfig.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG;
+ }
+ else if (0 == _tcsxicmp("detail", lpszLogLevel))
+ {
+ st_AuthConfig.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL;
+ }
+ else if (0 == _tcsxicmp("info", lpszLogLevel))
+ {
+ st_AuthConfig.st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO;
+ }
}
}
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
index 025ac4efe5e219365143aa70e1f238da30b7a0b5..c7a1964e95b115c209ed8566c49dc669819f255e 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
@@ -58,8 +58,10 @@ using namespace std;
#include "../../AuthorizeModule_Help/AuthHelp_Error.h"
#include "../../AuthorizeModule_CDKey/CDKey_Define.h"
#include "../../AuthorizeModule_CDKey/CDKey_Error.h"
-#include "../../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h"
-#include "../../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h"
+#include "../../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h"
+#include "../../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h"
+#include "../../XEngine_DependLibrary/XEngine_Module/XEngine_Verification/Verification_Define.h"
+#include "../../XEngine_DependLibrary/XEngine_Module/XEngine_Verification/Verification_Error.h"
extern bool bIsRun;
extern bool bIsTest;
@@ -129,6 +131,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../x64/Debug/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../x64/Debug/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../x64/Debug/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../x64/Debug/XEngine_Verification.lib")
#elif _M_ARM64
#pragma comment(lib,"../../ARM64/Debug/AuthorizeModule_Configure.lib")
#pragma comment(lib,"../../ARM64/Debug/AuthorizeModule_Protocol.lib")
@@ -137,6 +140,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../ARM64/Debug/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../ARM64/Debug/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../ARM64/Debug/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../ARM64/Debug/XEngine_Verification.lib")
#elif _M_IX86
#pragma comment(lib,"../../Debug/AuthorizeModule_Configure.lib")
#pragma comment(lib,"../../Debug/AuthorizeModule_Protocol.lib")
@@ -145,6 +149,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../Debug/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../Debug/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../Debug/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../Debug/XEngine_Verification.lib")
#endif
#else
#ifdef _M_X64
@@ -155,6 +160,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../x64/Release/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../x64/Release/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../x64/Release/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../x64/Release/XEngine_Verification.lib")
#elif _M_ARM64
#pragma comment(lib,"../../ARM64/Release/AuthorizeModule_Configure.lib")
#pragma comment(lib,"../../ARM64/Release/AuthorizeModule_Protocol.lib")
@@ -163,6 +169,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../ARM64/Release/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../ARM64/Release/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../ARM64/Release/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../ARM64/Release/XEngine_Verification.lib")
#elif _M_IX86
#pragma comment(lib,"../../Release/AuthorizeModule_Configure.lib")
#pragma comment(lib,"../../Release/AuthorizeModule_Protocol.lib")
@@ -171,6 +178,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#pragma comment(lib,"../../Release/AuthorizeModule_Help.lib")
#pragma comment(lib,"../../Release/AuthorizeModule_CDKey.lib")
#pragma comment(lib,"../../Release/XEngine_InfoReport.lib")
+#pragma comment(lib,"../../Release/XEngine_Verification.lib")
#endif
#endif
#endif
\ 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 9aa7a4509742ac737c75a20ba868e732abef82a2..77c2bebefc490b5546cd447682e456a97b405f02 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
@@ -1,6 +1,6 @@
#include "Authorize_Hdr.h"
-XHTHREAD CALLBACK XEngine_AuthService_HttpThread(XPVOID lParam)
+XHTHREAD XCALLBACK XEngine_AuthService_HttpThread(XPVOID lParam)
{
int nPoolIndex = *(int*)lParam;
int nThreadPos = nPoolIndex + 1;
@@ -17,12 +17,12 @@ XHTHREAD CALLBACK XEngine_AuthService_HttpThread(XPVOID lParam)
for (int i = 0; i < nListCount; i++)
{
int nMsgLen = 0;
+ int nHdrCount = 0;
+ XCHAR** ppszListHdr = NULL;
XCHAR* ptszMsgBuffer = NULL;
- RFCCOMPONENTS_HTTP_REQPARAM st_HTTPParament;
+ RFCCOMPONENTS_HTTP_REQPARAM st_HTTPParament = {};
- memset(&st_HTTPParament, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM));
-
- if (HttpProtocol_Server_GetMemoryEx(xhHttpPacket, ppSt_ListClient[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPParament))
+ if (HttpProtocol_Server_GetMemoryEx(xhHttpPacket, ppSt_ListClient[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPParament, &ppszListHdr, &nHdrCount))
{
if (st_AuthConfig.st_XCrypto.bEnable)
{
@@ -34,21 +34,22 @@ XHTHREAD CALLBACK XEngine_AuthService_HttpThread(XPVOID lParam)
_xstprintf(tszPassword, _X("%d"), st_AuthConfig.st_XCrypto.nPassword);
Cryption_XCrypto_Decoder(ptszMsgBuffer, &nMsgLen, tszDeBuffer, tszPassword);
- XEngine_Client_HttpTask(ppSt_ListClient[i]->tszClientAddr, tszDeBuffer, nMsgLen, &st_HTTPParament);
+ XEngine_Client_HttpTask(ppSt_ListClient[i]->tszClientAddr, tszDeBuffer, nMsgLen, &st_HTTPParament, ppszListHdr, nHdrCount);
}
else
{
- XEngine_Client_HttpTask(ppSt_ListClient[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &st_HTTPParament);
+ XEngine_Client_HttpTask(ppSt_ListClient[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &st_HTTPParament, ppszListHdr, nHdrCount);
}
}
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_Free((XPPPMEM)&ppszListHdr, nHdrCount);
}
BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nListCount);
}
return 0;
}
-bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParament)
+bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParament, XCHAR** pptszListHdr, int nHdrCount)
{
int nSDLen = 4096;
XCHAR tszSDBuffer[4096];
@@ -80,6 +81,111 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录连接被阻止,用户名或IP地址被禁用!"), lpszClientAddr);
return false;
}
+ //HTTP验证
+ if (st_AuthConfig.st_XApiVer.bEnable)
+ {
+ int nVType = 0;
+ RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {};
+
+ st_HDRParam.nHttpCode = 401;
+ st_HDRParam.bIsClose = true;
+ st_HDRParam.bAuth = true;
+ //打包验证信息
+ int nHDRLen = 0;
+ XCHAR tszHDRBuffer[XPATH_MAX] = {};
+ if (1 == st_AuthConfig.st_XApiVer.nVType)
+ {
+ Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen);
+ }
+ else
+ {
+ XCHAR tszNonceStr[64] = {};
+ XCHAR tszOpaqueStr[64] = {};
+ Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr);
+ }
+ //后去验证方法
+ if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType))
+ {
+ HttpProtocol_Server_SendMsgEx(xhHttpPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
+ NetCore_TCPXCore_SendEx(xhHttpSocket, lpszClientAddr, tszSDBuffer, nSDLen);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_AuthConfig.st_XApiVer.nVType, Verification_GetLastError());
+ return false;
+ }
+ //验证方式是否一致
+ if (st_AuthConfig.st_XApiVer.nVType != nVType)
+ {
+ HttpProtocol_Server_SendMsgEx(xhHttpPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
+ NetCore_TCPXCore_SendEx(xhHttpSocket, lpszClientAddr, tszSDBuffer, nSDLen);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_AuthConfig.st_XApiVer.nVType);
+ return false;
+ }
+ bool bRet = false;
+ //通过什么方法获得用户密码
+ if (_tcsxlen(st_AuthConfig.st_XApiVer.tszAPIUrl) > 0)
+ {
+ int nHTTPCode = 0;
+ int nMSGLen = 0;
+ XCLIENT_APIHTTP st_APIHttp = {};
+ XCHAR* ptszMSGBuffer = NULL;
+ if (!APIClient_Http_Request(_X("GET"), st_AuthConfig.st_XApiVer.tszAPIUrl, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp))
+ {
+ st_HDRParam.nHttpCode = 500;
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "api server is down,cant verification");
+ XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_AuthConfig.st_XApiVer.tszAPIUrl, APIClient_GetLastError());
+ return false;
+ }
+ if (200 != nHTTPCode)
+ {
+ st_HDRParam.nHttpCode = 500;
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "api server is down,cant verification");
+ XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_AuthConfig.st_XApiVer.tszAPIUrl, nHTTPCode);
+ return false;
+ }
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_UserAuth = {};
+ if (!Protocol_Parse_HttpParseAuth(ptszMSGBuffer, nMsgLen, &st_UserAuth))
+ {
+ st_HDRParam.nHttpCode = 500;
+ Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, "api server reply failure,cant verification");
+ 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, ptszMSGBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer);
+ return false;
+ }
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer);
+
+ if (1 == nVType)
+ {
+ bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount);
+ }
+ else if (2 == nVType)
+ {
+ bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParament->tszHttpMethod, pptszListHdr, nHdrCount);
+ }
+ }
+ else
+ {
+ if (1 == nVType)
+ {
+ bRet = Verification_HTTP_Basic(st_AuthConfig.st_XApiVer.tszUserName, st_AuthConfig.st_XApiVer.tszUserPass, pptszListHdr, nHdrCount);
+ }
+ else if (2 == nVType)
+ {
+ bRet = Verification_HTTP_Digest(st_AuthConfig.st_XApiVer.tszUserName, st_AuthConfig.st_XApiVer.tszUserPass, pSt_HTTPParament->tszHttpMethod, pptszListHdr, nHdrCount);
+ }
+ }
+
+ if (!bRet)
+ {
+ HttpProtocol_Server_SendMsgEx(xhHttpPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
+ NetCore_TCPXCore_SendEx(xhHttpSocket, lpszClientAddr, tszSDBuffer, nSDLen);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType);
+ return false;
+ }
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType);
+ }
+
if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParament->tszHttpMethod, _tcsxlen(lpszMethodPost)))
{
XCHAR tszAPIType[64];
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.h
index 80a560cc4df052a53adcd2c8682d8df961d4508d..1ab9d6f7ce70192c5e1d2a04ecc369146fe33622 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.h
@@ -1,4 +1,4 @@
#pragma once
-XHTHREAD CALLBACK XEngine_AuthService_HttpThread(XPVOID lParam);
-bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParament);
\ No newline at end of file
+XHTHREAD XCALLBACK XEngine_AuthService_HttpThread(XPVOID lParam);
+bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParament, XCHAR** pptszListHdr, int nHdrCount);
\ No newline at end of file
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
index 20c0092c311033413eee84a4e3e7aa5caa8e200d..f3e40a267c709e7af09f6454767ca7ee89d6e3f4 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
@@ -1,13 +1,13 @@
#include "Authorize_Hdr.h"
//////////////////////////////////////////////////////////////////////////
-bool CALLBACK XEngine_Client_TCPAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+bool XCALLBACK XEngine_Client_TCPAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
HelpComponents_Datas_CreateEx(xhTCPPacket, lpszClientAddr, 0);
SocketOpt_HeartBeat_InsertAddrEx(xhTCPHeart, lpszClientAddr);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("TCP客户端:%s,进入服务器"), lpszClientAddr);
return true;
}
-void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
+void XCALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
{
if (!HelpComponents_Datas_PostEx(xhTCPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen))
{
@@ -15,23 +15,23 @@ void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LP
}
SocketOpt_HeartBeat_ActiveAddrEx(xhTCPHeart, lpszClientAddr);
}
-void CALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+void XCALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 1);
}
-void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
+void XCALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 2);
}
//////////////////////////////////////////////////////////////////////////
-bool CALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+bool XCALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
RfcComponents_WSPacket_CreateEx(xhWSPacket, lpszClientAddr, 0);
SocketOpt_HeartBeat_InsertAddrEx(xhWSHeart, lpszClientAddr);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WS客户端:%s,进入服务器"), lpszClientAddr);
return true;
}
-void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
+void XCALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
{
bool bLogin = false;
RfcComponents_WSPacket_GetLoginEx(xhWSPacket, lpszClientAddr, &bLogin);
@@ -55,23 +55,23 @@ void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPC
}
SocketOpt_HeartBeat_ActiveAddrEx(xhWSHeart, lpszClientAddr);
}
-void CALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+void XCALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 1);
}
-void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
+void XCALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 2);
}
//////////////////////////////////////////////////////////////////////////
-bool CALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+bool XCALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
HttpProtocol_Server_CreateClientEx(xhHttpPacket, lpszClientAddr, 0);
SocketOpt_HeartBeat_InsertAddrEx(xhHTTPHeart, lpszClientAddr);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,进入服务器"), lpszClientAddr);
return true;
}
-void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
+void XCALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam)
{
if (!HttpProtocol_Server_InserQueueEx(xhHttpPacket, lpszClientAddr, lpszRecvMsg, nMsgLen))
{
@@ -79,11 +79,11 @@ void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, L
}
SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr);
}
-void CALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
+void XCALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 1);
}
-void CALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
+void XCALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
{
XEngine_CloseClient(lpszClientAddr, 2);
}
@@ -138,8 +138,8 @@ bool XEngine_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType)
if (st_AuthConfig.st_XLogin.bPassAuth)
{
int nSDLen = 0;
- XCHAR tszSDBuffer[MAX_PATH];
- memset(tszSDBuffer, '\0', MAX_PATH);
+ XCHAR tszSDBuffer[XPATH_MAX];
+ memset(tszSDBuffer, '\0', XPATH_MAX);
Protocol_Packet_HttpUserTime(tszSDBuffer, &nSDLen, &st_AuthTime);
APIClient_Http_Request(_X("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
index 143ae7ae8a9af6affd75ad03fe32f9ffb810e32c..3e7e53d19c8d108455c89620e836010c70ede352 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
@@ -1,19 +1,19 @@
#pragma once
-bool CALLBACK XEngine_Client_TCPAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
-void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
-void CALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
-void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
+bool XCALLBACK XEngine_Client_TCPAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
+void XCALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
-bool CALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
-void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
-void CALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
-void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
+bool XCALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
+void XCALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
-bool CALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
-void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
-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 XCALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
+void XCALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
+void XCALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
bool XEngine_CloseClient(LPCXSTR lpszClientAddr, int nLeaveType = 0);
bool XEngine_Client_TaskSend(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
index 842bcd93f8cc1dff8fadad59d373aaca027ef3b3..3ddbfd287bc93818cde216e386483d9ca5e09fac 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
@@ -1,6 +1,6 @@
#include "Authorize_Hdr.h"
-XHTHREAD CALLBACK XEngine_AuthService_TCPThread(XPVOID lParam)
+XHTHREAD XCALLBACK XEngine_AuthService_TCPThread(XPVOID lParam)
{
int nPoolIndex = *(int*)lParam;
int nThreadPos = nPoolIndex + 1;
@@ -73,12 +73,18 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN == pSt_ProtocolHdr->unOperatorCode)
{
AUTHREG_USERTABLE st_UserTable;
- XENGINE_PROTOCOL_USERAUTH st_AuthProtocol;
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_AuthProtocol;
memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE));
- memset(&st_AuthProtocol, '\0', sizeof(XENGINE_PROTOCOL_USERAUTH));
- memcpy(&st_AuthProtocol, lpszMsgBuffer, sizeof(XENGINE_PROTOCOL_USERAUTH));
-
+ memset(&st_AuthProtocol, '\0', sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX));
+ if (nMsgLen == sizeof(XENGINE_PROTOCOL_USERAUTH))
+ {
+ memcpy(&st_AuthProtocol, lpszMsgBuffer, sizeof(XENGINE_PROTOCOL_USERAUTH));
+ }
+ else
+ {
+ memcpy(&st_AuthProtocol, lpszMsgBuffer, sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX));
+ }
_tcsxcpy(st_Banned.tszIPAddr, lpszClientAddr);
_tcsxcpy(st_Banned.tszUserName, st_AuthProtocol.tszUserName);
APIAddr_IPAddr_SegAddr(st_Banned.tszIPAddr);
@@ -183,6 +189,17 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,密码错误"), lpszClientAddr, st_AuthProtocol.tszUserName);
return false;
}
+ if (st_FunSwitch.bSwitchHWBind)
+ {
+ if (0 != _tcsxnicmp(st_UserTable.tszHardCode, st_AuthProtocol.tszHWCode, _tcsxlen(st_UserTable.tszHardCode)))
+ {
+ 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,硬件码:%s 错误"), lpszClientAddr, st_AuthProtocol.tszUserName, st_AuthProtocol.tszHWCode);
+ return false;
+ }
+ }
}
else
{
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.h
index c9ef91f25a71d3b883be0ec6f60e162ad58cd916..87b185e2373bea0ef2193cbe9516fb695b91fc04 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.h
@@ -1,4 +1,4 @@
#pragma once
-XHTHREAD CALLBACK XEngine_AuthService_TCPThread(XPVOID lParam);
+XHTHREAD XCALLBACK XEngine_AuthService_TCPThread(XPVOID lParam);
bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, int nNetType);
\ No newline at end of file
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
index 6b1208cc1693c5186122c94e787c698a122ec7de..751971ff60467bf1213f24a54ebcb8a5ff09b093 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
@@ -1,6 +1,6 @@
#include "Authorize_Hdr.h"
-void CALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam)
+void XCALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam)
{
if (nLeftTimer <= 0)
{
@@ -61,7 +61,7 @@ void CALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserNam
DBModule_MySQL_UserLeave(&st_AuthTime);
}
}
-void CALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam)
+void XCALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam)
{
bool bRemove = true;
AUTHREG_USERTABLE st_UserTable;
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h
index 3217c2488aea8429b54467ba79450c3f6f3d00f5..61d4ba074c517bfafc882c709e3f2b0e5fe3f24b 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h
@@ -1,4 +1,4 @@
#pragma once
-void CALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam);
-void CALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam);
\ No newline at end of file
+void XCALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserName, __int64x nOnlineTimer, __int64x nLeftTimer, LPCXSTR lpszLeftDate, ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType, ENUM_PROTOCOLDEVICE_TYPE enDeviceType, int nNetType, XPVOID lParam);
+void XCALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam);
\ No newline at end of file
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.cpp
index 87b9cb9a5cff1c0c605142158503034e29a8d0c8..e1f7caf7374364b2a48bea773deb63a7f07fd767 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.cpp
@@ -1,6 +1,6 @@
#include "Authorize_Hdr.h"
-XHTHREAD CALLBACK XEngine_AuthService_WSThread(XPVOID lParam)
+XHTHREAD XCALLBACK XEngine_AuthService_WSThread(XPVOID lParam)
{
int nPoolIndex = *(int*)lParam;
int nThreadPos = nPoolIndex + 1;
@@ -55,14 +55,14 @@ bool XEngine_Client_WSTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nM
if (ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_CLOSE == enOPCode)
{
int nSDLen = 0;
- XCHAR tszMSGBuffer[MAX_PATH] = {};
+ XCHAR tszMSGBuffer[XPATH_MAX] = {};
RfcComponents_WSCodec_EncodeMsg(NULL, tszMSGBuffer, &nSDLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_CLOSE);
NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, tszMSGBuffer, nSDLen);
}
else if (ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_PING == enOPCode)
{
int nSDLen = 0;
- XCHAR tszMSGBuffer[MAX_PATH] = {};
+ XCHAR tszMSGBuffer[XPATH_MAX] = {};
RfcComponents_WSCodec_EncodeMsg(NULL, tszMSGBuffer, &nSDLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_PONG);
NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, tszMSGBuffer, nSDLen);
}
@@ -76,11 +76,11 @@ bool XEngine_Client_WSTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nM
if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN == st_ProtocolHdr.unOperatorCode)
{
- XENGINE_PROTOCOL_USERAUTH st_UserAuth;
- memset(&st_UserAuth, '\0', sizeof(XENGINE_PROTOCOL_USERAUTH));
+ AUTHORIZE_PROTOCOL_USERAUTHEX st_UserAuth;
+ memset(&st_UserAuth, '\0', sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX));
Protocol_Parse_HttpParseAuth(lpszMsgBuffer, nMsgLen, &st_UserAuth);
- XEngine_Client_TCPTask(lpszClientAddr, (LPCXSTR)&st_UserAuth, sizeof(XENGINE_PROTOCOL_USERAUTH), &st_ProtocolHdr, XENGINE_AUTH_APP_NETTYPE_WS);
+ XEngine_Client_TCPTask(lpszClientAddr, (LPCXSTR)&st_UserAuth, sizeof(AUTHORIZE_PROTOCOL_USERAUTHEX), &st_ProtocolHdr, XENGINE_AUTH_APP_NETTYPE_WS);
}
if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_HB_SYN == st_ProtocolHdr.unOperatorCode)
{
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.h
index b2d203d1ae8a6500c6a9a99e61ff4d813ac1a67b..bbaabcbf7838c9a7d330409b308e15e0f24ce616 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_WSTask.h
@@ -1,4 +1,4 @@
#pragma once
-XHTHREAD CALLBACK XEngine_AuthService_WSThread(XPVOID lParam);
+XHTHREAD XCALLBACK XEngine_AuthService_WSThread(XPVOID lParam);
bool XEngine_Client_WSTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE enOPCode);
\ No newline at end of file
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile
index 72c6ec948ab319820ce4013bd3e74b15991c01fd..9422394cc9811847ee7075d60df2474e90196138 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile
@@ -3,9 +3,9 @@ PLATVER =
FILEEXT =
LIBFLAG =
LOADHDR = -I ./
-LOADSO = -L ../../XEngine_Depend/XEngine_Module/jsoncpp -L ../../XEngine_Depend/XEngine_Module/XEngine_InfoReport \
+LOADSO = -L ../../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../../XEngine_DependLibrary/XEngine_Module/XEngine_Verification \
-L ../../AuthorizeModule_Session -L ../../AuthorizeModule_Database -L ../../AuthorizeModule_Protocol -L ../../AuthorizeModule_Configure -L ../../AuthorizeModule_Help -L ../../AuthorizeModule_CDKey
-LIB = -lXEngine_InfoReport -ljsoncpp \
+LIB = -lXEngine_InfoReport -ljsoncpp -lXEngine_Verification \
-lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_Cryption -lXClient_APIHelp -lNetHelp_APIAddr -lHelpComponents_Packets -lHelpComponents_DataBase -lHelpComponents_XLog -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lXEngine_ProcFile -lXEngine_SystemApi \
-lAuthorizeModule_Session -lAuthorizeModule_Database -lAuthorizeModule_Protocol -lAuthorizeModule_Configure -lAuthorizeModule_Help -lAuthorizeModule_CDKey
LIBEX =
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
index 604bb36659820cb80d87d0d4044a2d73ff6ba653..6f4c645bf1520e76a4d447afa286a608099d5488 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
@@ -48,6 +48,7 @@ void ServiceApp_Stop(int signo)
ManagePool_Thread_NQDestroy(xhHttpPool);
ManagePool_Memory_Destory(xhMemPool);
+ HelpComponents_XLog_StrongClose(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE);
HelpComponents_XLog_Destroy(xhLog);
Session_Authorize_Destroy();
Session_Token_Destroy();
@@ -98,7 +99,7 @@ static int ServiceApp_Deamon(int wait)
LONG WINAPI Coredump_ExceptionFilter(EXCEPTION_POINTERS* pExceptionPointers)
{
static int i = 0;
- XCHAR tszFileStr[MAX_PATH] = {};
+ XCHAR tszFileStr[XPATH_MAX] = {};
XCHAR tszTimeStr[128] = {};
BaseLib_Time_TimeToStr(tszTimeStr);
_xstprintf(tszFileStr, _X("./XEngine_Coredump/dumpfile_%s_%d.dmp"), tszTimeStr, i++);
@@ -163,7 +164,16 @@ int main(int argc, char** argv)
}
HelpComponents_XLog_SetLogPriority(xhLog, st_AuthConfig.st_XLog.nLogLeave);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化日志系统成功,日志文件:%s"), st_AuthConfig.st_XLog.tszLogFile);
+ if (st_AuthConfig.st_XLog.bLogStorage)
+ {
+ HelpComponents_XLog_StrongOPen(xhLog, st_AuthConfig.st_XLog.tszKeyFile, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化关键日志存储功能成功..."));
+ HELPCOMPONENTS_XLOG_COLOR st_XLogColor = {};
+ st_XLogColor.wNotice = XENGINE_HELPCOMPONENTS_XLOG_TEXT_RED;
+ HelpComponents_XLog_SetLogColor(xhLog, &st_XLogColor);
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化关键日志输出颜色成功..."));
+ }
if (st_AuthConfig.bDeamon)
{
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,使用守护进程启动服务..."));
@@ -432,7 +442,7 @@ int main(int argc, char** argv)
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("启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,动态验证:%d,多端登录:%d,临时试用:%d,黑名单功能:%d,普通TOKEN:%d,硬件码登录:%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, st_FunSwitch.bSwitchHWBind);
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)
@@ -476,6 +486,7 @@ XENGINE_EXITAPP:
ManagePool_Thread_NQDestroy(xhHttpPool);
ManagePool_Memory_Destory(xhMemPool);
+ HelpComponents_XLog_StrongClose(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE);
HelpComponents_XLog_Destroy(xhLog);
Session_Authorize_Destroy();
Session_Token_Destroy();
diff --git a/XEngine_Source/XEngine_Depend b/XEngine_Source/XEngine_Depend
deleted file mode 160000
index 2dd56facd7c93dfd3810d1db4341fff469e0786b..0000000000000000000000000000000000000000
--- a/XEngine_Source/XEngine_Depend
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2dd56facd7c93dfd3810d1db4341fff469e0786b
diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary
new file mode 160000
index 0000000000000000000000000000000000000000..8970bcc172a44e943e01921ffd398594e58c8d6f
--- /dev/null
+++ b/XEngine_Source/XEngine_DependLibrary
@@ -0,0 +1 @@
+Subproject commit 8970bcc172a44e943e01921ffd398594e58c8d6f