wifidog報(bào)錯(cuò): Auth server did NOT say pong!

在wifidog啟動(dòng)過程中,我們可能會(huì)經(jīng)常看到這種log:

Auth server did NOT say pong!

這個(gè)debug信息是再告訴我們,wifidog的ping協(xié)議沒有收到來自auth server 的pong 回應(yīng)。

首先解釋下什么是ping協(xié)議。這種協(xié)議是路由器用來告訴auth server 路由器當(dāng)前的狀態(tài),協(xié)議格式:

http://auth_server/ping/?gw_id=xxx&sys_uptime=xxx&sys_memfree&sys_load=xxx&wifidog_uptime=xxx

gw_id是路由器的標(biāo)識符,sys_uptime是路由器啟動(dòng)時(shí)間,sys_memfree是路由器的內(nèi)存剩余,sys_load是系統(tǒng)負(fù)載,wifidog_uptime是wifidog啟動(dòng)時(shí)間,路由器將這些信息發(fā)送給auth server,server 回"Pong" 來表示server知道這臺路由器還在工作。

下面是出現(xiàn)上述log的代碼:

do {

FD_ZERO(&readfds);

FD_SET(sockfd, &readfds);

timeout.tv_sec = 30; /* XXX magic... 30 second */

timeout.tv_usec = 0;

nfds = sockfd + 1;

nfds = select(nfds, &readfds, NULL, NULL, &timeout);

if (nfds > 0) {

/** We don't have to use FD_ISSET() because there

*? was only one fd. */

numbytes = read(sockfd, request + totalbytes, MAX_BUF - (totalbytes + 1));

if (numbytes < 0) {

debug(LOG_ERR, "An error occurred while reading from auth server: %s", strerror(errno));

/* FIXME */

close(sockfd);

return;

}

else if (numbytes == 0) {

done = 1;

}

else {

totalbytes += numbytes;

debug(LOG_DEBUG, "Read %d bytes, total now %d", numbytes, totalbytes);

}

}

else if (nfds == 0) {

debug(LOG_ERR, "Timed out reading data via select() from auth server");

/* FIXME */

close(sockfd);

return;

}

else if (nfds < 0) {

debug(LOG_ERR, "Error reading data via select() from auth server: %s", strerror(errno));

/* FIXME */

close(sockfd);

return;

}

} while (!done);

close(sockfd);

debug(LOG_DEBUG, "Done reading reply, total %d bytes", totalbytes);

request[totalbytes] = '\0';

debug(LOG_DEBUG, "HTTP Response from Server: [%s]", request);

if (strstr(request, "Pong") == 0) {

debug(LOG_WARNING, "Auth server did NOT say pong!");

/* FIXME */

}

else {

debug(LOG_DEBUG, "Auth Server Says: Pong");

}

這段log 出現(xiàn)在wifidog 在接收server 的響應(yīng)包里沒有出現(xiàn)Pong字符串。

本文章由?http://www.wifidog.pro/2015/02/25/wifidog%E7%9A%84ping%E5%8D%8F%E8%AE%AE.html?整理編輯,轉(zhuǎn)載請注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容