[LBBS-70] mod_smtp_delivery_external: Use SRS for externally forwarded messages
MailScript rule to forward messages to a local mailbox somewhere external triggers an assertion:
[2024-07-12 22:46:47.384] DEBUG[3050298]: net_smtp.c:1820 duplicate_loop_avoidance: Processing delivery to REDACTED
[2024-07-12 22:46:47.384] DEBUG[3050298]: mod_mail.c:112 mail_domain_is_local: Domain REDACTED is not local
[2024-07-12 22:46:47.384] ERROR[3050298]: mod_smtp_delivery_external.c:1614 external_delivery: Failed assertion fromlocal
[2024-07-12 22:46:47.385] ERROR[3050298]: backtrace.c:263 bbs_log_backtrace: Got 10 backtrace records
[2024-07-12 22:46:47.574] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 0: lbbs bbs_log_backtrace()
[2024-07-12 22:46:47.574] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 1: lbbs __bbs_assert_fatal()
[2024-07-12 22:46:47.574] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 2: [0x7fd0c831c272] mod_smtp_delivery_external.so bbs.h:440 ???()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 3: [0x7fd0c8a7f43e] net_smtp.so net_smtp.c:1955 expand_and_deliver()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 4: [0x7fd0c8a81472] net_smtp.so net_smtp.c:2443 do_deliver()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:283 bbs_log_backtrace: 5: [0x7fd0c8a8479e] net_smtp.so net_smtp.c:2665 handle_data()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:283 bbs_log_backtrace: 5: [ inlined] net_smtp.so net_smtp.c:2819 smtp_process()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:283 bbs_log_backtrace: 5: [ inlined] net_smtp.so net_smtp.c:2872 handle_client()
[2024-07-12 22:46:47.575] ERROR[3050298]: backtrace.c:283 bbs_log_backtrace: 5: [ inlined] net_smtp.so net_smtp.c:2923 smtp_handler()
[2024-07-12 22:46:47.576] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 6: [0x7fd0c8a84f77] net_smtp.so net_smtp.c:2945 __smtp_handler()
[2024-07-12 22:46:47.576] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 7: lbbs <unknown>()
[2024-07-12 22:46:47.576] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 8: [0x7fd0c9da7134] libc.so.6 pthread_create.c:442 start_thread()
[2024-07-12 22:46:47.576] ERROR[3050298]: backtrace.c:287 bbs_log_backtrace: 9: [0x7fd0c9e277dc] libc.so.6 clone3.S:83 clone3()
BBS server disconnected
#5 0x00007fd0c831c272 in __bbs_assert (function=<optimized out>, line=<optimized out>, file=<optimized out>, condition_str=<optimized out>, condition=<optimized out>) at ../include/bbs.h:440
res = <optimized out>
__func__ = "external_delivery"
#6 external_delivery (smtp=0x7fd09d704f90, resp=0x7fd09d704640, from=0x7fd0bc025ca0 "REDACTED", recipient=0x7fd0bc0efea0 "REDACTED", domain=0x7fd0bc22098c "REDACTED>... ) at mod_smtp_delivery_external.c:1626
res = <optimized out>
__func__ = "external_delivery"
#7 0x00007fd0c8a7f43e in expand_and_deliver (smtp=smtp@entry=0x7fd09d704f90, filename=filename@entry=0x7fd09d705740 "/tmp/smtpm8S7rt", datalen=2243, datalen@entry=1778) at net_smtp.c:1955
#8 0x00007fd0c8a81472 in do_deliver (smtp=smtp@entry=0x7fd09d704f90, filename=filename@entry=0x7fd09d705740 "/tmp/smtpm8S7rt", datalen=<optimized out>) at net_smtp.c:2442
#9 0x00007fd0c8a8479e in handle_data (rldata=0x7fd09d704e30, s=<optimized out>, smtp=0x7fd09d704f90) at net_smtp.c:2664
Additionally, when the mail is forwarded (with assertion solved for), the wrong MAIL FROM is used, i.e. the original MAIL FROM is used rather than the mailbox of the user forwarding the message, which is not allowed!
You must be
9/13/2024 8:08 PM — InterLinked
Autoresolved by code commit on GitHub:
mod_smtp_delivery_external, net_smtp: Allow external forwarding.
https://github.com/InterLinked1/lbbs/commit/9b04c80efea3237136d9891c5e01115efd69d5f4