aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/messagewall/Makefile16
-rw-r--r--mail/messagewall/files/allow-multiple-recipients.patch33
-rw-r--r--mail/messagewall/files/patch-exchange-server20
3 files changed, 69 insertions, 0 deletions
diff --git a/mail/messagewall/Makefile b/mail/messagewall/Makefile
index ddab0e6dc6ea..d06f9664f460 100644
--- a/mail/messagewall/Makefile
+++ b/mail/messagewall/Makefile
@@ -7,6 +7,7 @@
PORTNAME= messagewall
PORTVERSION= 1.0.8
+PORTREVISION= 1
CATEGORIES= mail
MASTER_SITES= http://www.messagewall.org/download/
DISTNAME= messagewall-${PORTVERSION}
@@ -25,6 +26,21 @@ WRKSRC= ${WRKDIR}/messagewall
GNU_CONFIGURE= yes
USE_REINPLACE= yes
+pre-fetch:
+ @${ECHO} ""
+ @${ECHO} "You may use the following build options:"
+ @${ECHO} ""
+ @${ECHO} " -DMESSAGEWALL_ALLOW_MULT_RCPT to allow multiple recipients"
+ @${ECHO} " The profile for the first recipient will be applied to all"
+ @${ECHO} " recipients of the message."
+ @${ECHO} ""
+
+# Patch from "Quentin Guernsey" <quentin@wingateweb.com>
+# for details see http://www.messagewall.org/cgi-bin/ezmlm-browse.cgi?command=showmsg&list=messagewall-discuss&month=200303&msgnum=921&threadid=lcjcimckfmdphlhpjjhn
+.if defined(MESSAGEWALL_ALLOW_MULT_RCPT)
+EXTRA_PATCHES+= ${PATCHDIR}/allow-multiple-recipients.patch
+.endif
+
post-patch:
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/firemake.cflags \
diff --git a/mail/messagewall/files/allow-multiple-recipients.patch b/mail/messagewall/files/allow-multiple-recipients.patch
new file mode 100644
index 000000000000..4166015e3a9f
--- /dev/null
+++ b/mail/messagewall/files/allow-multiple-recipients.patch
@@ -0,0 +1,33 @@
+--- smtp.c-orig Fri Oct 18 10:24:16 2002
++++ smtp.c Tue Mar 25 13:57:37 2003
+@@ -629,20 +629,17 @@
+
+ /*
+ * check that we have recipient space
++ * Patch from Quentin Guernsey <quentin@wingateweb.com>
++ * Applied by Douglas K. Rand <rand@meridian-enviro.com>
++ * Which allows multiple recipients, but applies the profile of
++ * the first recipient to all recipients.
++ * See http://www.messagewall.org/cgi-bin/ezmlm-browse.cgi?command=showthread&list=messagewall-discuss&month=200303&threadid=lcjcimckfmdphlhpjjhn
+ */
+- if (clients[client].can_relay == 1) {
+- if (clients[client].num_to == max_rcpt) {
+- fprintf(stderr,"{%d} (%d) SMTP/REJECT: too many RCPT\n",process,client);
+- SMTP_RESET
+- tls_client_write(client,SMTP_MAXRCPT,sizeof(SMTP_MAXRCPT) - 1);
+- return 0;
+- }
+- } else {
+- if (clients[client].num_to == 1) {
+- fprintf(stderr,"{%d} (%d) SMTP/TEMPORARY: external host attempted multiple recipient delivery, asked for one at a time\n",process,client);
+- tls_client_write(client,SMTP_ONLYONE,sizeof(SMTP_ONLYONE) - 1);
+- return 0;
+- }
++ if (clients[client].num_to == max_rcpt) {
++ fprintf(stderr,"{%d} (%d) SMTP/REJECT: too many RCPT\n",process,client);
++ SMTP_RESET
++ tls_client_write(client,SMTP_MAXRCPT,sizeof(SMTP_MAXRCPT) - 1);
++ return 0;
+ }
+
+ /*
diff --git a/mail/messagewall/files/patch-exchange-server b/mail/messagewall/files/patch-exchange-server
new file mode 100644
index 000000000000..f497cc898ba4
--- /dev/null
+++ b/mail/messagewall/files/patch-exchange-server
@@ -0,0 +1,20 @@
+--- client.c-orig Sat Sep 28 12:21:02 2002
++++ client.c Tue Mar 25 13:57:37 2003
+@@ -384,8 +384,15 @@
+ line = client_get_line(n);
+ if (line == NULL)
+ return 0;
+- tls_client_write(backends[n].client,line->s,line->l);
+- tls_client_write(backends[n].client,"\r\n",2);
++ /*
++ * Patch from Russell Vincent <rv2@sanger.ac.uk>
++ * Applied by Douglas K. Rand <rand@meridian-enviro.com>
++ * Works around problem with MS Exchange servers not liking
++ * the \r\n showing up in a seperate packet.
++ * See http://messagewall.org/cgi-bin/ezmlm-browse.cgi?command=showthread&list=messagewall-discuss&month=200302&threadid=nnoiaogojliciagmgpbk
++ */
++ firestring_estr_sprintf(&outline,"%e\r\n", line);
++ tls_client_write(backends[n].client,outline.s,outline.l);
+ firestring_estr_0(line);
+ fprintf(stderr,"{%d} [%d] BACKEND/ACCEPT: accepted message responsibility: '%s'\n",process,n,line->s);
+ if (line->l >= 4 && line->s[3] != '-') {