mirror of https://github.com/cppla/ServerStatus
Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
41ec81bed3 | |
![]() |
1557673db2 | |
![]() |
565f8c7ce0 |
|
@ -153,11 +153,13 @@ names_done:
|
|||
}
|
||||
// alarm logic
|
||||
if(cert->m_aExpireTS>0){
|
||||
int days = (int)((cert->m_aExpireTS - nowt)/86400);
|
||||
int64_t *lastAlarm = NULL; int need=0; int target=0;
|
||||
if(days <=7 && days >3){ lastAlarm=&cert->m_aLastAlarm7; target=7; }
|
||||
else if(days <=3 && days >1){ lastAlarm=&cert->m_aLastAlarm3; target=3; }
|
||||
else if(days <=1){ lastAlarm=&cert->m_aLastAlarm1; target=1; }
|
||||
// 剩余天数: 向下取整 (floor) —— 与 JSON expire_days 保持一致,用于阈值分桶和消息显示
|
||||
int64_t secsLeft = cert->m_aExpireTS - nowt;
|
||||
int days = (int)(secsLeft/86400);
|
||||
int64_t *lastAlarm = NULL; int need=0;
|
||||
if(days <=7 && days >3){ lastAlarm=&cert->m_aLastAlarm7; }
|
||||
else if(days <=3 && days >1){ lastAlarm=&cert->m_aLastAlarm3; }
|
||||
else if(days <=1){ lastAlarm=&cert->m_aLastAlarm1; }
|
||||
if(lastAlarm && (*lastAlarm==0 || nowt - *lastAlarm > 20*3600)) need=1; // avoid spam, 20h
|
||||
if(need && strlen(cert->m_aCallback)>0){
|
||||
CURL *curl = curl_easy_init();
|
||||
|
@ -166,7 +168,8 @@ names_done:
|
|||
char timebuf[32];
|
||||
time_t expt = (time_t)cert->m_aExpireTS;
|
||||
strftime(timebuf,sizeof(timebuf),"%Y-%m-%d %H:%M:%S", gmtime(&expt));
|
||||
snprintf(msg,sizeof(msg),"【SSL证书提醒】%s(%s) 将在 %d 天后(%s UTC) 到期", cert->m_aName, cert->m_aDomain, target, timebuf);
|
||||
// 使用 floor(days)
|
||||
snprintf(msg,sizeof(msg),"【SSL证书提醒】%s(%s) 将在 %d 天后(%s UTC) 到期", cert->m_aName, cert->m_aDomain, days, timebuf);
|
||||
char *enc = curl_easy_escape(curl,msg,0);
|
||||
char url[1500]; snprintf(url,sizeof(url),"%s%s", cert->m_aCallback, enc?enc:"");
|
||||
curl_easy_setopt(curl, CURLOPT_POST, 1L);
|
||||
|
|
Loading…
Reference in New Issue