X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fsmtpqueue.h;h=2bd4c2700f4921fbf3a61cb46c89386aee073f1e;hb=9e07e8e851dcb5758feacb349cbb94b15799d632;hp=be14ea5b568ffb4b2d55c8d0c56c4173239baa5c;hpb=ded2dfcfba9d0b30ff8f31086d03833d9bd75457;p=citadel.git diff --git a/citadel/modules/smtp/smtpqueue.h b/citadel/modules/smtp/smtpqueue.h index be14ea5b5..2bd4c2700 100644 --- a/citadel/modules/smtp/smtpqueue.h +++ b/citadel/modules/smtp/smtpqueue.h @@ -22,10 +22,12 @@ /*****************************************************************************/ #define MaxAttempts 15 +extern const unsigned short DefaultMXPort; typedef struct _mailq_entry { StrBuf *Recipient; StrBuf *StatusMessage; + StrBuf *AllStatusMessages; int Status; /**< * 0 = No delivery has yet been attempted @@ -39,6 +41,8 @@ typedef struct _mailq_entry { int n; int Active; + int StillActive; + int nAttempt; }MailQEntry; typedef struct queueitem { @@ -56,19 +60,27 @@ typedef struct queueitem { time_t Retry; long ActiveDeliveries; + long NotYetShutdownDeliveries; StrBuf *EnvelopeFrom; StrBuf *BounceTo; StrBuf *SenderRoom; ParsedURL *URL; ParsedURL *FallBackHost; + int HaveRelay; } OneQueItem; typedef void (*QItemHandler)(OneQueItem *Item, StrBuf *Line, const char **Pos); + +typedef struct __QItemHandlerStruct { + QItemHandler H; +} QItemHandlerStruct; int DecreaseQReference(OneQueItem *MyQItem); +void DecreaseShutdownDeliveries(OneQueItem *MyQItem); +int GetShutdownDeliveries(OneQueItem *MyQItem); void RemoveQItem(OneQueItem *MyQItem); -int CountActiveQueueEntries(OneQueItem *MyQItem); +int CountActiveQueueEntries(OneQueItem *MyQItem, int before); StrBuf *SerializeQueueItem(OneQueItem *MyQItem); -void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt); +void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt, ParsedURL *Relay); int CheckQEntryIsBounce(MailQEntry *ThisItem);