RSSClient: refresh per message UT-Entries after one day
[citadel.git] / citadel / modules / rssclient / serv_rssclient.c
index b2a069fd6a2ecabe0ccc172e84a9dcc86d0145f8..648d02d0b4c40353e879fd1dc7a85343764eb829 100644 (file)
@@ -418,7 +418,7 @@ eNextState RSS_FetchNetworkUsetableEntry(AsyncIO *IO)
        if (CheckIfAlreadySeen("RSS Item Seen",
                               Ctx->ThisMsg->MsgGUID,
                               IO->Now,
-                              IO->Now - USETABLE_ANTIEXPIRE,
+                              IO->Now - USETABLE_ANTIEXPIRE_HIRES,
                               eCheckUpdate,
                               IO->ID, CCID)
            != 0)
@@ -464,7 +464,7 @@ void UpdateLastKnownGood(pRSSConfig *pCfg, time_t now)
                        if (RSSCfg == pCfg->pCfg)
                                break;
 
-                       RSSCfg = RSSCfg->Next;
+                       RSSCfg = RSSCfg->next;
                }
                if (RSSCfg != NULL)
                {
@@ -539,8 +539,10 @@ eNextState RSSAggregator_AnalyseReply(AsyncIO *IO)
                if (it != NULL)
                {
                        void *vptr;
-                       GetNextHashPos(Ctx->OtherQRnumbers, it, &len, &Key, &vptr);
-                       pCfg = vptr;
+                       if (GetNextHashPos(Ctx->OtherQRnumbers, it, &len, &Key, &vptr))
+                               pCfg = vptr;
+                       else
+                               pCfg = NULL;
                }
                else 
                        pCfg = NULL;
@@ -589,7 +591,8 @@ eNextState RSSAggregator_AnalyseReply(AsyncIO *IO)
 
 eNextState RSSAggregator_FinishHttp(AsyncIO *IO)
 {
-       return QueueDBOperation(IO, RSSAggregator_AnalyseReply);
+       StopCurlWatchers(IO);
+       return CurlQueueDBOperation(IO, RSSAggregator_AnalyseReply);
 }
 
 /*
@@ -695,7 +698,7 @@ void rssclient_scan_room(struct ctdlroom *qrbuf, void *data, OneRoomNetCfg *OneR
 
                        pthread_mutex_unlock(&RSSQueueMutex);
 
-                       RSSCfg = RSSCfg->Next;
+                       RSSCfg = RSSCfg->next;
                        continue;
                }
                pthread_mutex_unlock(&RSSQueueMutex);
@@ -722,7 +725,7 @@ void rssclient_scan_room(struct ctdlroom *qrbuf, void *data, OneRoomNetCfg *OneR
                    DeleteRssCfg);
 
                pthread_mutex_unlock(&RSSQueueMutex);
-               RSSCfg = RSSCfg->Next;
+               RSSCfg = RSSCfg->next;
        }
 }
 
@@ -830,7 +833,7 @@ void rssclient_veto_scan_room(struct ctdlroom *qrbuf, void *data, OneRoomNetCfg
                        StrBufAppendBuf(Info->ErrMsg, RSSCfg->Url, 0);
                        StrBufAppendBufPlain(Info->ErrMsg, HKEY(">\n"), 0);
                }
-               RSSCfg = RSSCfg->Next;
+               RSSCfg = RSSCfg->next;
        }
 }
 
@@ -862,7 +865,7 @@ void ParseRSSClientCfgLine(const CfgLineType *ThisOne, StrBuf *Line, const char
        RSSCfg->last_known_good = StrBufExtractNext_long(Line, &LinePos, '|');
 
 
-       RSSCfg->Next = (RSSCfgLine *)OneRNCFG->NetConfigs[ThisOne->C];
+       RSSCfg->next = (RSSCfgLine *)OneRNCFG->NetConfigs[ThisOne->C];
        OneRNCFG->NetConfigs[ThisOne->C] = (RoomNetCfgLine*) RSSCfg;
 }
 
@@ -878,7 +881,7 @@ void SerializeRSSClientCfgLine(const CfgLineType *ThisOne, StrBuf *OutputBuffer,
 
 void DeleteRSSClientCfgLine(const CfgLineType *ThisOne, RoomNetCfgLine **data)
 {
-       RSSCfgLine *RSSCfg = (RSSCfgLine*) data;
+       RSSCfgLine *RSSCfg = (RSSCfgLine*) *data;
 
        FreeStrBuf(&RSSCfg->Url);
        free(*data);