Add xoap error handler to weather-forecast too
authorCesare Tirabassi <norsetto@ubuntu.com>
Wed, 5 Aug 2009 15:50:24 +0000 (17:50 +0200)
committerCesare Tirabassi <norsetto@ubuntu.com>
Wed, 5 Aug 2009 15:50:24 +0000 (17:50 +0200)
src/weather.c

index 157f38e..4265a25 100644 (file)
@@ -108,6 +108,17 @@ static void parse_df(PWEATHER_FORECAST *res, xmlXPathContextPtr xpathCtx)
        char *content;
        xmlXPathObjectPtr xpathObj;
 
+       xpathObj = xmlXPathEvalExpression((const xmlChar *)"/error/err", xpathCtx);
+       if (xpathObj && xpathObj->nodesetval && xpathObj->nodesetval->nodeNr > 0 &&
+                       xpathObj->nodesetval->nodeTab[0]->type == XML_ELEMENT_NODE) {
+               content = (char *)xmlNodeGetContent(xpathObj->nodesetval->nodeTab[0]);
+               NORM_ERR("XOAP error: %s", content);
+               xmlFree(content);
+               xmlXPathFreeObject(xpathObj);
+               return;
+       }
+       xmlXPathFreeObject(xpathObj);
+
        for (i = 0; i < NUM_XPATH_EXPRESSIONS_DF; i++) {
                xpathObj = xmlXPathEvalExpression((const xmlChar *)xpath_expression_df[i], xpathCtx);
                if (xpathObj != NULL) {