aboutsummaryrefslogtreecommitdiffstats
path: root/mail/ssmtp/files
diff options
context:
space:
mode:
authorsergei <sergei@FreeBSD.org>2003-11-09 06:14:38 +0800
committersergei <sergei@FreeBSD.org>2003-11-09 06:14:38 +0800
commitef25fe7b191e7d2500840af0132b0e4812b70c30 (patch)
treea21cafb1b47acd0a3a0d560088e4d93a9454e2df /mail/ssmtp/files
parentf94077dc4baf30a28eabdbcb1e23c1ede38871b4 (diff)
downloadfreebsd-ports-gnome-ef25fe7b191e7d2500840af0132b0e4812b70c30.tar.gz
freebsd-ports-gnome-ef25fe7b191e7d2500840af0132b0e4812b70c30.tar.zst
freebsd-ports-gnome-ef25fe7b191e7d2500840af0132b0e4812b70c30.zip
- Add WITH_USERPREFS knob: a user can set his own reverse alias,
e.g.: % echo "nospam@cotds.org" > ~/.ssmtprc - Bump PORTREVISION PR: 59063 Submitted by: maintainer
Diffstat (limited to 'mail/ssmtp/files')
-rw-r--r--mail/ssmtp/files/patch-ssmtp.c45
1 files changed, 42 insertions, 3 deletions
diff --git a/mail/ssmtp/files/patch-ssmtp.c b/mail/ssmtp/files/patch-ssmtp.c
index 1baf75ad41e6..24e0044bc5c0 100644
--- a/mail/ssmtp/files/patch-ssmtp.c
+++ b/mail/ssmtp/files/patch-ssmtp.c
@@ -1,10 +1,49 @@
---- ssmtp.c.orig Sun Dec 8 18:26:20 2002
-+++ ssmtp.c Mon Apr 7 01:24:52 2003
+--- ssmtp.c.orig Sat Nov 8 18:51:19 2003
++++ ssmtp.c Sat Nov 8 19:01:07 2003
@@ -14,6 +14,7 @@
*/
- #define VERSION "2.60.1"
+ #define VERSION "2.60.4"
+#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/param.h>
+@@ -366,9 +367,36 @@
+ {
+ char buf[(BUF_SZ + 1)], *p;
+ FILE *fp;
+-
++#ifdef USERPREFS
++ char *file=NULL;
++ if (pw->pw_dir != NULL) {
++ file = (char *)malloc (strlen (pw->pw_dir) + 1 + strlen (".ssmtprc") + 1);
++ sprintf (file, "%s/.ssmtprc", pw->pw_dir);
++ }
++
++ if ((file != NULL) && (fp = fopen(file, "r")) ) {
++ while(fgets(buf, sizeof(buf), fp)) {
++ /* Make comments invisible */
++ if((p = strchr(buf, '#'))) {
++ *p = (char)NULL;
++ }
++
++ /* Ignore malformed lines and comments */
++ if(strchr(buf, '@') == (char *)NULL) {
++ continue;
++ }
++ if((p = strtok(buf, "\n"))) {
++ if((uad = strdup(p)) == (char *)NULL) {
++ die("revaliases() -- strdup() failed");
++ }
++ }
++ }
++ fclose(fp);
+ /* Try to open the reverse aliases file */
+- if((fp = fopen(REVALIASES_FILE, "r"))) {
++ } else if ((fp = fopen(REVALIASES_FILE, "r"))) {
++#else
++ if ((fp = fopen(REVALIASES_FILE, "r"))) {
++#endif
+ /* Search if a reverse alias is defined for the sender */
+ while(fgets(buf, sizeof(buf), fp)) {
+ /* Make comments invisible */