diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml
index 9e982e2..90f8ae9 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 d73e183..736d591 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 1716d18..75bb2a8 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 3a31b94..c2be054 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 0000000..608d9f8
--- /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 6cdbbd3..71f0537 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 d09fa5f..03cc0ee 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 1cc1974..3949a92 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 e4f183a..ab2bd72 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 1c4e905..91ffc1c 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 80882e3..cd904d7 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 d6ecdc7..c161059 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 9511b05..a1404cd 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 548feec..23fad03 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 2fbd4f4..e9a4b82 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 f3dc0b6..1bc0f65 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 95fcd56..fd661db 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 ba57e4b..dc7d054 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 98fe900..d567a42 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 1982d09..448dde1 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 fd16601..241776a 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 fe04ca9..91c8a4c 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 0000000..e69de29
diff --git a/XEngine_SQL/mysql.sql b/XEngine_SQL/mysql.sql
index 492ed2b..4944cb6 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 d0532cd..d100110 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 4d57d36..102927b 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 256d976..2dc41a4 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 ab57a93..e0e957a 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 aaebe89..b17f64f 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 @@ class CAuthClient_Connector
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 b8a3762..520d6e1 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 a670d58..c1e8f1d 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 d1255bb..5431318 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 3f22854..310b153 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 69b56a9..743b2d8 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 e41937b..4fcbc8a 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 2cc0e88..2f2ba8b 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 49404fa..25f1a8a 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 923ca65..dd8ea3e 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 c21f251..49a8b12 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 c2241c2..0992d0e 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 1f0986b..faed785 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 @@ class CDBModule_MySQL
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 80d13c6..81e7bd1 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 bfc3ee7..edf0127 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 @@ class CDBModule_SQLite
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 b4b8dd0..b5d951c 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 7fe6db0..3467a41 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 0000000..60a1a4d
--- /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 0000000..b54be64
--- /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 e52a239..e56a213 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 10be31c..f4ba1c1 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 @@ class CAuthHelp_DynamicCode
bool AuthHelp_DynamicCode_Create(XNETHANDLE* pxhToken, XSHOT* pInt_DynamicCode);
bool AuthHelp_DynamicCode_Get(XNETHANDLE xhToken, int nDynamicCode);
protected:
- static XHTHREAD CALLBACK AuthHelp_DynamicCode_Thread(XPVOID lParam);
+ 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 22a82b7..bfb3b87 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 a5d17b0..2d8e1b6 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 3591ae8..917464a 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 1649d07..99ad40a 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 2707ec1..03d4888 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 15e6c8b..642d520 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 e039230..693e0fd 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 63f4c33..f06fc59 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 1297585..dfb945b 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 9e67289..af12123 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 d2caf40..229c446 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 @@ class CProtocol_Packet
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 50cad0f..536774d 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 e8a69b0..b3ff682 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 @@ class CProtocol_Parse
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 0b46821..fe25099 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 e25adb9..0274311 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 3436b2c..6844f24 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 bf8eca3..1ca651d 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 9d58afb..b589fba 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 65b1df8..b813a8b 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 449407a..af2923e 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 c70e5a4..e37f3b1 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 3f7f969..eb47b6f 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 7b92e0d..8ad426b 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 f3b8bdf..6e8fc89 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 a7a4906..9c1b379 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 afd2f12..4a86416 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 759d9d3..8e2050e 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 49b6fa1..e95fec3 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 d632363..e07e1be 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 @@ class CDialog_Serial : public CDialogEx
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 106c3ee..92b4234 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 4663823..57d7d62 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 @@ class CDialog_Switch : public CDialogEx
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 db29df8..7ae7440 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 acf2d94..50c9c29 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 94012f1..d135981 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 9b63435..16cc6b9 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 c8df52f..aed7a92 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 b3be7d6..2968d3f 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 5a24347..244dcf8 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 4510318..9bb881b 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 d9eceda..8303c7c 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 df6bcd7..ed41d86 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 7563dd0..1369937 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 025ac4e..c7a1964 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 9aa7a45..0f47080 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,107 @@ 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;
+ //打包验证信息
+ 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))
+ {
+ 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)
+ {
+ 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))
+ {
+ 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 80a560c..1ab9d6f 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 20c0092..f3e40a2 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 143ae7a..3e7e53d 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 842bcd9..3ddbfd2 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 c9ef91f..87b185e 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 6b1208c..751971f 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 3217c24..61d4ba0 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 87b9cb9..e1f7caf 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 b2d203d..bbaabcb 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 72c6ec9..9422394 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 604bb36..6f4c645 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 @@ int main(int argc, char** argv)
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 2dd56fa..0000000
--- 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 0000000..8970bcc
--- /dev/null
+++ b/XEngine_Source/XEngine_DependLibrary
@@ -0,0 +1 @@
+Subproject commit 8970bcc172a44e943e01921ffd398594e58c8d6f