]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/pop3client/serv_pop3client.c
Removed the "filter" parameter from CtdlForEachNetCfgRoom().
[citadel.git] / citadel / modules / pop3client / serv_pop3client.c
index f7587b7f27a9c95c9012fec225f84f59183805ab..221d3bb5680cfdff2bee1293372b3712d67a970d 100644 (file)
@@ -414,6 +414,7 @@ eNextState POP3_FetchNetworkUsetableEntry(AsyncIO *IO)
        const char *HKey;
        void *vData;
        pop3aggr *RecvMsg = (pop3aggr *) IO->Data;
+       time_t seenstamp = 0;
 
        SetPOP3State(IO, eUseTable);
 
@@ -427,13 +428,15 @@ eNextState POP3_FetchNetworkUsetableEntry(AsyncIO *IO)
                if (server_shutting_down)
                        return eAbort;
 
-               if (CheckIfAlreadySeen("POP3 Item Seen",
-                                      RecvMsg->CurrMsg->MsgUID,
-                                      EvGetNow(IO),
-                                      EvGetNow(IO) - USETABLE_ANTIEXPIRE,
-                                      eCheckUpdate,
-                                      IO->ID, CCID)
-                   != 0)
+               RecvMsg->CurrMsg = (FetchItem*)vData;
+
+               seenstamp = CheckIfAlreadySeen("POP3 Item Seen",
+                                              RecvMsg->CurrMsg->MsgUID,
+                                              EvGetNow(IO),
+                                              EvGetNow(IO) - USETABLE_ANTIEXPIRE,
+                                              eCheckUpdate,
+                                              IO->ID, CCID);
+               if (seenstamp != 0)
                {
                        /* Item has already been seen */
                        RecvMsg->CurrMsg->NeedFetch = 0;
@@ -535,6 +538,8 @@ eNextState POP3C_SendGetOneMsg(pop3aggr *RecvMsg)
 
        SetPOP3State(IO, eGetMsg);
 
+       EVP3CM_syslog(LOG_DEBUG, "fast forwarding to the next unknown message");
+
        RecvMsg->CurrMsg = NULL;
        while ((RecvMsg->Pos != NULL) && 
               GetNextHashPos(RecvMsg->MsgNumbers,
@@ -547,6 +552,7 @@ eNextState POP3C_SendGetOneMsg(pop3aggr *RecvMsg)
 
        if ((RecvMsg->CurrMsg != NULL ) && (RecvMsg->CurrMsg->NeedFetch == 1))
        {
+               EVP3CM_syslog(LOG_DEBUG, "fetching next");
                /* Message has not been seen.
                 * Tell the server to fetch the message... */
                StrBufPrintf(RecvMsg->IO.SendBuf.Buf,
@@ -555,6 +561,7 @@ eNextState POP3C_SendGetOneMsg(pop3aggr *RecvMsg)
                return eReadMessage;
        }
        else {
+               EVP3CM_syslog(LOG_DEBUG, "no more messages to fetch.");
                RecvMsg->State = ReadQuitState;
                return POP3_C_DispatchWriteDone(&RecvMsg->IO);
        }
@@ -648,7 +655,7 @@ eNextState POP3C_ReadDeleteState(pop3aggr *RecvMsg)
        AsyncIO *IO = &RecvMsg->IO;
        POP3C_DBG_READ();
        RecvMsg->State = GetOneMessageIDState;
-       return eReadMessage;
+       return POP3_C_DispatchWriteDone(&RecvMsg->IO);
 }
 
 eNextState POP3C_SendQuit(pop3aggr *RecvMsg)
@@ -1166,7 +1173,7 @@ void pop3client_scan(void) {
        doing_pop3client = 1;
 
        EVP3CQM_syslog(LOG_DEBUG, "pop3client started");
-       CtdlForEachNetCfgRoom(pop3client_scan_room, NULL, pop3client);
+       CtdlForEachNetCfgRoom(pop3client_scan_room, NULL);
 
        pthread_mutex_lock(&POP3QueueMutex);
        it = GetNewHashPos(POP3FetchUrls, 0);