SMTP-client: when serializing, make next now+Retry
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 27 Feb 2012 23:44:07 +0000 (00:44 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 27 Feb 2012 23:44:07 +0000 (00:44 +0100)
citadel/modules/smtp/serv_smtpqueue.c

index 0d1073558e4d32414e1102016783643858131fbf..b2c0ea2338af6ada31000619b344bb59d3091104 100644 (file)
@@ -341,7 +341,7 @@ StrBuf *SerializeQueueItem(OneQueItem *MyQItem)
 
        StrBufAppendBufPlain(QMessage, HKEY("\nattempted|"), 0);
        StrBufAppendPrintf(QMessage, "%ld",
-                          MyQItem->ReattemptWhen);
+                          ctdl_ev_now() + MyQItem->Retry);
 
        It = GetNewHashPos(MyQItem->MailQEntries, 0);
        while (GetNextHashPos(MyQItem->MailQEntries, It, &len, &Key, &vQE))
@@ -422,7 +422,10 @@ void QItem_Handle_retry(OneQueItem *Item, StrBuf *Line, const char **Pos)
 {
        Item->Retry =
                StrBufExtractNext_int(Line, Pos, '|');
-       Item->Retry *= 2;
+       if (Item->Retry == 0)
+               Item->Retry = SMTP_RETRY_INTERVAL;
+       else
+               Item->Retry *= 2;
 }