- if (IO->HttpReq.httpcode != 200)
- {
- StrBuf *ErrMsg;
- long lens[2];
- const char *strs[2];
-
- ErrMsg = NewStrBuf();
- EVRSSC_syslog(LOG_ALERT, "need a 200, got a %ld !\n",
- IO->HttpReq.httpcode);
-
- strs[0] = ChrPtr(Ctx->Url);
- lens[0] = StrLength(Ctx->Url);
-
- strs[1] = ChrPtr(Ctx->rooms);
- lens[1] = StrLength(Ctx->rooms);
- StrBufPrintf(ErrMsg,
- "Error while RSS-Aggregation Run of %s\n"
- " need a 200, got a %ld !\n"
- " Response text was: \n"
- " \n %s\n",
- ChrPtr(Ctx->Url),
- IO->HttpReq.httpcode,
- ChrPtr(IO->HttpReq.ReplyData));
- CtdlAideFPMessage(
- ChrPtr(ErrMsg),
- "RSS Aggregation run failure",
- 2, strs, (long*) &lens,
- IO->Now,
- IO->ID, CCID);
- FreeStrBuf(&ErrMsg);
- return eAbort;
- }
-
- MD5Init(&md5context);
-
- MD5Update(&md5context,
- (const unsigned char*)SKEY(IO->HttpReq.ReplyData));
-
- MD5Update(&md5context,
- (const unsigned char*)SKEY(Ctx->Url));
-
- MD5Final(rawdigest, &md5context);
- guid = NewStrBufPlain(NULL,
- MD5_DIGEST_LEN * 2 + 12 /* _rss2ctdl*/);
- StrBufHexEscAppend(guid, NULL, rawdigest, MD5_DIGEST_LEN);
- StrBufAppendBufPlain(guid, HKEY("_rssFM"), 0);
- if (StrLength(guid) > 40)
- StrBufCutAt(guid, 40, NULL);
- /* Find out if we've already seen this item */
-
-#ifndef DEBUG_RSS
-
- if (CheckIfAlreadySeen("RSS Whole",
- guid,
- IO->Now,
- IO->Now - USETABLE_ANTIEXPIRE,
- eCheckUpdate,
- IO->ID, CCID)
- != 0)
- {
- FreeStrBuf(&guid);
-
- return eAbort;
+ while (rsstodo != NULL) {
+ rss_pull_one_feed(rsstodo);
+ r = rsstodo;
+ rsstodo = rsstodo->next;
+ while (r->rooms != NULL) {
+ rr = r->rooms;
+ r->rooms = r->rooms->next;
+ free(rr->room);
+ free(rr);
+ }
+ free(r->url);
+ free(r);