DBGLOG(LEVEL) syslog(LEVEL, "IO[%ld][%ld]RSS" FORMAT, \
IO->ID, N)
+typedef enum _RSSState {
+ eRSSCreated,
+ eRSSFetching,
+ eRSSFailure,
+ eRSSParsing,
+ eRSSUT
+} RSSState;
+ConstStr RSSStates[] = {
+ {HKEY("Aggregator created")},
+ {HKEY("Fetching content")},
+ {HKEY("Failed")},
+ {HKEY("parsing content")},
+ {HKEY("checking usetable")}
+};
+
+static void SetRSSState(AsyncIO *IO, RSSState State)
+{
+ CitContext* CCC = IO->CitContext;
+ memcpy(CCC->cs_clientname, RSSStates[State].Key, RSSStates[State].len + 1);
+}
+
void DeleteRoomReference(long QRnumber)
{
HashPos *At;
/* Find out if we've already seen this item */
// todo: expiry?
#ifndef DEBUG_RSS
+ SetRSSState(IO, eRSSUT);
if (CheckIfAlreadySeen("RSS Item Seen",
Ctx->ThisMsg->MsgGUID,
IO->Now,
EVRSSC_syslog(LOG_DEBUG,
"%s has already been seen\n",
ChrPtr(Ctx->ThisMsg->MsgGUID));
+ SetRSSState(IO, eRSSParsing);
if (GetNextHashPos(Ctx->Messages,
Ctx->Pos,
else
#endif
{
+ SetRSSState(IO, eRSSParsing);
+
NextDBOperation(IO, RSSSaveMessage);
return eSendMore;
}
long lens[2];
const char *strs[2];
+ SetRSSState(IO, eRSSFailure);
ErrMsg = NewStrBuf();
EVRSSC_syslog(LOG_ALERT, "need a 200, got a %ld !\n",
IO->HttpReq.httpcode);
IO->HttpReq.httpcode);
return eAbort;
}
+ SetRSSState(IO, eRSSUT);
MD5Init(&md5context);
}
FreeStrBuf(&guid);
#endif
+ SetRSSState(IO, eRSSParsing);
return RSSAggregator_ParseReply(IO);
}
EVRSSCM_syslog(LOG_ALERT, "Unable to initialize libcurl.\n");
return 0;
}
+ SetRSSState(IO, eRSSCreated);
safestrncpy(((CitContext*)RSSAggr->IO.CitContext)->cs_host,
ChrPtr(RSSAggr->Url),
ParseURL(&RSSAggr->IO.ConnectMe, RSSAggr->Url, 80);
CurlPrepareURL(RSSAggr->IO.ConnectMe);
+ SetRSSState(IO, eRSSFetching);
QueueCurlContext(&RSSAggr->IO);
return 1;
}