Commit 8154c61f authored by 957dd's avatar 957dd

修改了验证1s一次,减少了部分bug

parent 8cd573f4
No preview for this file type
......@@ -6,7 +6,7 @@ int mylog_init();
#ifdef LOG_PRODUCTION
#define my_zlog_debug(...) ((void)0)
#define my_zlog_info(...) ((void)0)
#define my_zlog _info(...) ((void)0)
#else
void my_zlog_debug(const char *format, ...) ;
void my_zlog_info(const char *format, ...) ;
......
......@@ -29,7 +29,9 @@ static bool s_secret_key_index = TRUE;//用于判断是否对比topic
static char s_pending_verify_token[1024];
static char s_last_seen_token[1024]; /* 用于判断token是否变化(首次启动默认全0) */
static int s_verify_retry_count = 0;
static time_t s_verify_retry_after_time = 0; /* 允许发起重试的时间戳,0 表示无待重试 */
#define VERIFY_RETRY_MAX 3
#define VERIFY_RETRY_INTERVAL_SEC 1
int g_verify_index =0;//判断是否验证成功
pthread_mutex_t g_verify_mutex = PTHREAD_MUTEX_INITIALIZER;//线程锁
......@@ -111,6 +113,14 @@ int receive_jwt(cJSON *body) {
return 1;
}
/* 有待重试且已过 1s:等有消息进来时再发重试,不阻塞 */
if (s_verify_retry_count > 0 && s_verify_retry_count < VERIFY_RETRY_MAX
&& s_verify_retry_after_time > 0 && time(NULL) >= s_verify_retry_after_time) {
s_verify_retry_after_time = 0;
send_jwtser(s_pending_verify_token);
my_zlog_notice("距上次失败已过%d秒,发起第%d次重试验证", VERIFY_RETRY_INTERVAL_SEC, s_verify_retry_count + 1);
}
/*
* token 变化触发验证策略:
* - 首次启动(s_last_seen_token 为空)只保存,不验证,确保下一次必定“有变化”再验证
......@@ -208,13 +218,14 @@ int message2006_verify(cJSON *body){
strcpy(s_secret_key, s_pending_verify_token);
s_secret_key_index = FALSE;
s_verify_retry_count = 0;
s_verify_retry_after_time = 0;
} else {
/* 仅当 onlyid 匹配时视为本次验证的回复,否则可能是旧包 */
if (strcmp(onlyid, s_only_id_middle) == 0) {
s_verify_retry_count++;
if (s_verify_retry_count < VERIFY_RETRY_MAX) {
my_zlog_notice("验证不通过,第%d次重试", s_verify_retry_count);
send_jwtser(s_pending_verify_token);
my_zlog_notice("验证不通过,第%d次,将在下次收到消息且距本次超过%ds后重试", s_verify_retry_count, VERIFY_RETRY_INTERVAL_SEC);
s_verify_retry_after_time = time(NULL) + VERIFY_RETRY_INTERVAL_SEC;
} else {
my_zlog_warn("topic验证超过%d次不通过,禁止使用", VERIFY_RETRY_MAX);
g_verify_index = 1;
......
......@@ -9,4 +9,4 @@ file perms = 600
millisecond = "%d(%Y-%m-%d %H:%M:%S).%ms [%V] %m%n"
[rules]
my_log.* "/home/orangepi/car/master/log/log_2026-03-14.log"; millisecond
my_log.* "/home/orangepi/car/master/log/log_2026-03-16.log"; millisecond
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