X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpqueue.c;h=c4b46142a250eef6e7653c256bf0b4d9117ecd9a;hb=9167a0462f67a85ecfb6c46fb96d765e2f2f0b02;hp=2d406f2e348f71b8e84c113f56ccb80e15e50eb1;hpb=c27c0d1314f188cc534b2c572bf4497ec75fa3f2;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index 2d406f2e3..c4b46142a 100644 --- a/citadel/modules/smtp/serv_smtpqueue.c +++ b/citadel/modules/smtp/serv_smtpqueue.c @@ -170,6 +170,7 @@ void FreeQueItem(OneQueItem **Item) DeleteHash(&(*Item)->MailQEntries); FreeStrBuf(&(*Item)->EnvelopeFrom); FreeStrBuf(&(*Item)->BounceTo); + FreeStrBuf(&(*Item)->SenderRoom); FreeURL(&(*Item)->URL); free(*Item); Item = NULL; @@ -296,6 +297,11 @@ StrBuf *SerializeQueueItem(OneQueItem *MyQItem) StrBufAppendBuf(QMessage, MyQItem->EnvelopeFrom, 0); } + if (StrLength(MyQItem->SenderRoom) > 0) { + StrBufAppendBufPlain(QMessage, HKEY("\nsource_room|"), 0); + StrBufAppendBuf(QMessage, MyQItem->SenderRoom, 0); + } + StrBufAppendBufPlain(QMessage, HKEY("\nretry|"), 0); StrBufAppendPrintf(QMessage, "%ld", MyQItem->Retry); @@ -364,6 +370,13 @@ void QItem_Handle_BounceTo(OneQueItem *Item, StrBuf *Line, const char **Pos) StrBufExtract_NextToken(Item->BounceTo, Line, Pos, '|'); } +void QItem_Handle_SenderRoom(OneQueItem *Item, StrBuf *Line, const char **Pos) +{ + if (Item->SenderRoom == NULL) + Item->SenderRoom = NewStrBufPlain(NULL, StrLength(Line)); + StrBufExtract_NextToken(Item->SenderRoom, Line, Pos, '|'); +} + void QItem_Handle_Recipient(OneQueItem *Item, StrBuf *Line, const char **Pos) { if (Item->Current == NULL) @@ -555,6 +568,17 @@ void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt) StrBufAppendBuf(BounceMB, Msg, 0); FreeStrBuf(&Msg); + if (StrLength(MyQItem->SenderRoom) > 0) + { + StrBufAppendBufPlain( + BounceMB, + HKEY("The message was originaly posted in: "), 0); + StrBufAppendBuf(BounceMB, MyQItem->SenderRoom, 0); + StrBufAppendBufPlain( + BounceMB, + HKEY("\n"), 0); + } + /* Attach the original message */ StrBufAppendBufPlain(BounceMB, HKEY("--"), 0); StrBufAppendBuf(BounceMB, boundary, 0); @@ -1033,8 +1057,8 @@ CTDL_MODULE_INIT(smtp_queu) Put(QItemHandlers, HKEY("attempted"), QItem_Handle_Attempted, reference_free_handler); Put(QItemHandlers, HKEY("remote"), QItem_Handle_Recipient, reference_free_handler); Put(QItemHandlers, HKEY("bounceto"), QItem_Handle_BounceTo, reference_free_handler); + Put(QItemHandlers, HKEY("source_room"), QItem_Handle_SenderRoom, reference_free_handler); Put(QItemHandlers, HKEY("submitted"), QItem_Handle_Submitted, reference_free_handler); - smtp_init_spoolout(); CtdlRegisterCleanupHook(smtp_evq_cleanup);