Work on evented RSS client & libev+libcurl integration
[citadel.git] / citadel / modules / rssclient / rss_atom_parser.c
index d60d35ae2b0c1644ea51b4a77aa00a5afb5ab120..9bbeb8a1ffe26b4d5749f5f3a5fa9b52663eab67 100644 (file)
@@ -617,10 +617,17 @@ eNextState ParseRSSReply(AsyncIO *IO)
        long len;
        const char *Key;
 
+
+       if (IO->HttpReq.httpcode != 200)
+       {
+
+               EV_syslog(LOG_DEBUG, "need a 200, got a %ld !\n",
+                         IO->HttpReq.httpcode);
+// TODO: aide error message with rate limit
+               return eAbort;
+       }
+
        rssc = IO->Data;
-       pthread_mutex_lock(&RSSQueueMutex);
-       rssc->RefCount ++;
-       pthread_mutex_unlock(&RSSQueueMutex);
        ri = rssc->Item;
        rssc->CData = NewStrBufPlain(NULL, SIZ);
        rssc->Key = NewStrBuf();
@@ -649,10 +656,7 @@ eNextState ParseRSSReply(AsyncIO *IO)
        rssc->xp = XML_ParserCreateNS(ptr, ':');
        if (!rssc->xp) {
                syslog(LOG_DEBUG, "Cannot create XML parser!\n");
-               pthread_mutex_lock(&RSSQueueMutex);
-               rssc->RefCount --;
-               pthread_mutex_unlock(&RSSQueueMutex);
-               return eTerminateConnection;
+               return eAbort;
        }
        FlushStrBuf(rssc->Key);