⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read-ok-from-nag.c

📁 MANTIS是由科罗拉多大学开发的传感器网络嵌入式操作系统。 这是mantis的0.9.5版本的源码。
💻 C
字号:
#include <errno.h>#include <string.h>#include <sys/time.h>#include <libxml/tree.h>#include <glib.h>#include "libbionet-internal.h"// FIXME: this treats timeouts and network errors and Nag error messages all the same: return -1...int libbionet_read_ok_from_nag(void) {    int r;    xmlDoc *xml;    xmlNode *reply;    r = bionet_connect_to_nag();    if (r < 0) {        g_log(BIONET_LOG_DOMAIN, G_LOG_LEVEL_WARNING, "error connecting to NAG");        return -1;    }    {        const char *accept[] = { "ok", "error", NULL };        struct timeval timeout;        timeout.tv_sec = libbionet_nag_timeout;        timeout.tv_usec = 0;        r = bionet_nxio_read_acceptable(libbionet_nag_nxio, &timeout, &xml, accept, &libbionet_queued_messages_from_nag);        if (r < 0) {            return -1;        }        if (xml == NULL) {            // timeout            return -1;        }    }    reply = xmlDocGetRootElement(xml);    if (strcmp(reply->name, "error") == 0) {        libbionet_handle_error_message(xml);        return -1;    }    // "ok" message, perfect, just what we wanted    free(libbionet_nag_error);    libbionet_nag_error = NULL;    xmlFreeDoc(xml);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -