X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Frssclient%2Frss_atom_parser.c;h=9bbeb8a1ffe26b4d5749f5f3a5fa9b52663eab67;hp=d60d35ae2b0c1644ea51b4a77aa00a5afb5ab120;hb=f6877197c739711b051826923760edec66006376;hpb=5ec1b7756ba201839aac2dfbf9165a1888f93a0d diff --git a/citadel/modules/rssclient/rss_atom_parser.c b/citadel/modules/rssclient/rss_atom_parser.c index d60d35ae2..9bbeb8a1f 100644 --- a/citadel/modules/rssclient/rss_atom_parser.c +++ b/citadel/modules/rssclient/rss_atom_parser.c @@ -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);