Commit 4e780248 authored by captainwong's avatar captainwong

release 1.3.0

parent d630422f
# Ademco Change Log
## 1.3.0
- add `file` for parse error
- fix `struct tm not initilized` on parse
- fix parsing pointer on parse timestamp failed
## 1.2.0
- add config
......
......@@ -991,6 +991,7 @@ AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len,
if (len < 9) {
ADEMCO_FILL_PARSE_ERROR(err, 0, "RESULT_NOT_ENOUGH");
return RESULT_NOT_ENOUGH;
}
......@@ -1023,6 +1024,7 @@ AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len,
}
len_needed = 9 + pkt->len + 1;
if (len < len_needed) {
ADEMCO_FILL_PARSE_ERROR(err, p - buff, "RESULT_NOT_ENOUGH");
return RESULT_NOT_ENOUGH;
} else if (len_needed >= ADEMCO_PACKET_MAX_LEN) {
dline;
......@@ -1141,7 +1143,7 @@ AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len,
dline;
ADEMCO_FILL_PARSE_ERROR(err, p - buff, "acct too long");
return RESULT_ERROR;
}
}
strncpy(pkt->acct, (const char*)pacct, p - pacct);
pkt->acct[p - pacct] = '\0';
......@@ -1200,7 +1202,7 @@ AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len,
// timestamp, _%02d:%02d:%02d,%02d-%02d-%04d
// only check lengh, if format is incorrect, use local time instead
if (pend - p == ADEMCO_PACKET_TIMESTAMP_LEN) {
struct tm tm;
struct tm tm = { 0 };
do {
if (*p++ != '_') {
break;
......@@ -1247,6 +1249,7 @@ AdemcoParseResult ademcoPacketParse(const ademco_char_t* buff, size_t len,
pkt->timestamp = mktime(&tm);
if (pkt->timestamp <= 0) { // use local time instead
pkt->timestamp = time(NULL);
p = pend;
}
} else {
dline;
......
......@@ -194,6 +194,7 @@ typedef enum AdemcoParseResult {
// 安定宝协议解析错误信息
typedef struct AdemcoParseError {
const char* file; // user do not free
int line; // line number in ademco.c
size_t offset; // error offset
const char* msg; // user do not free
......
......@@ -37,6 +37,7 @@
#define ADEMCO_FILL_PARSE_ERROR(err, offset_, msg_) \
do { \
if (err) { \
err->file = __FILE__; \
err->line = __LINE__; \
err->offset = (offset_); \
err->msg = (msg_); \
......
......@@ -7,7 +7,7 @@
*/
#define ADEMCO_VERSION_MAJOR 1
#define ADEMCO_VERSION_MINOR 2
#define ADEMCO_VERSION_MINOR 3
#define ADEMCO_VERSION_PATCH 0
#define ADEMCO_VERSION_IS_RELEASE 1
#define ADEMCO_VERSION_SUFFIX ""
......
xcopy /i /s /y G:\dev_libs\ademco\hb\ademco.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\ademco.c ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\hb_com.c ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\ademco_version.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\ademco_config.h ..\
xcopy /i /s /y G:\dev_libs\ademco\hb\CHANGELOG.md ..\
#!/bin/bash
set -e
CURRENT_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd $CURRENT_DIR
cp -f /g/dev_libs/ademco/hb/ademco.h ../
cp -f /g/dev_libs/ademco/hb/ademco.c ../
cp -f /g/dev_libs/ademco/hb/hb_com.h ../
cp -f /g/dev_libs/ademco/hb/hb_com.c ../
cp -f /g/dev_libs/ademco/hb/ademco_version.h ../
cp -f /g/dev_libs/ademco/hb/ademco_config.h ../
cp -f /g/dev_libs/ademco/hb/CHANGELOG.md ../
......@@ -9,7 +9,7 @@ cd $CURRENT_DIR
./examples.bat
mkdir -p dist/examples/x86
cp "/h/dev/AlarmCenterTestTools/Release/直连型主机模拟器V1.16.exe" dist/examples/x86/
cp "/h/dev/AlarmCenterTestTools/Release/直连型主机模拟器V1.17.exe" dist/examples/x86/
cp "/g/dev_libs/curl-7.87.0/builds/libcurl-vc14-x86-release-dll-ipv6-sspi-schannel/bin/libcurl.dll" dist/examples/x86/
cp ../examples/Win32/Release/server_demo.exe dist/examples/x86/
cp ../examples/Release/httprelay.exe dist/examples/x86/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment