Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Aug 2014 22:20:02 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r270675 - head/usr.sbin/mailwrapper
Message-ID:  <201408262220.s7QMK2Lr048657@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Tue Aug 26 22:20:02 2014
New Revision: 270675
URL: http://svnweb.freebsd.org/changeset/base/270675

Log:
  Allow mailwrapper to use mailer.conf from localbase (respecting LOCALBASE env var if set)
  
  Phabric:	https://reviews.freebsd.org/D412
  Reviewed by:	bdrewery
  MFC after:	2 weeks
  Relnotes:	yes

Modified:
  head/usr.sbin/mailwrapper/mailwrapper.8
  head/usr.sbin/mailwrapper/mailwrapper.c

Modified: head/usr.sbin/mailwrapper/mailwrapper.8
==============================================================================
--- head/usr.sbin/mailwrapper/mailwrapper.8	Tue Aug 26 21:21:57 2014	(r270674)
+++ head/usr.sbin/mailwrapper/mailwrapper.8	Tue Aug 26 22:20:02 2014	(r270675)
@@ -31,7 +31,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd August 7, 2006
+.Dd August 27, 2014
 .Dt MAILWRAPPER 8
 .Os
 .Sh NAME
@@ -109,6 +109,8 @@ utility is designed to replace
 and to invoke an appropriate MTA instead of
 .Xr sendmail 8
 based on configuration information placed in
+.Pa ${LOCALBASE}/etc/mail/mailer.conf
+falling back on
 .Pa /etc/mail/mailer.conf .
 This permits the administrator to configure which MTA is to be invoked on
 the system at run time.
@@ -126,6 +128,8 @@ should be turned off in
 Configuration for
 .Nm
 is kept in
+.Pa ${LOCALBASE}/etc/mail/mailer.conf
+or
 .Pa /etc/mail/mailer.conf .
 .Pa /usr/sbin/sendmail
 is typically set up as a symbolic link to

Modified: head/usr.sbin/mailwrapper/mailwrapper.c
==============================================================================
--- head/usr.sbin/mailwrapper/mailwrapper.c	Tue Aug 26 21:21:57 2014	(r270674)
+++ head/usr.sbin/mailwrapper/mailwrapper.c	Tue Aug 26 22:20:02 2014	(r270675)
@@ -35,6 +35,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include <sys/param.h>
+
 #include <err.h>
 #include <stdio.h>
 #include <string.h>
@@ -87,6 +89,8 @@ main(int argc, char *argv[], char *envp[
 	FILE *config;
 	char *line, *cp, *from, *to, *ap;
 	const char *progname;
+	char localmailerconf[MAXPATHLEN];
+	const char *mailerconf;
 	size_t len, lineno = 0;
 	int i;
 	struct arglist al;
@@ -98,11 +102,18 @@ main(int argc, char *argv[], char *envp[
 	initarg(&al);
 	addarg(&al, argv[0]);
 
-	if ((config = fopen(_PATH_MAILERCONF, "r")) == NULL) {
+	snprintf(localmailerconf, MAXPATHLEN, "%s/etc/mail/mailer.conf",
+	    getenv("LOCALBASE") ? getenv("LOCALBASE") : "/usr/local");
+
+	mailerconf = localmailerconf;
+	if ((config = fopen(localmailerconf, "r")) == NULL)
+		mailerconf = _PATH_MAILERCONF;
+
+	if (config == NULL && ((config = fopen(mailerconf, "r")) == NULL)) {
 		addarg(&al, NULL);
 		openlog(getprogname(), LOG_PID, LOG_MAIL);
 		syslog(LOG_INFO, "cannot open %s, using %s as default MTA",
-		    _PATH_MAILERCONF, _PATH_DEFAULTMTA);
+		    mailerconf, _PATH_DEFAULTMTA);
 		closelog();
 		execve(_PATH_DEFAULTMTA, al.argv, envp);
 		err(EX_OSERR, "cannot exec %s", _PATH_DEFAULTMTA);
@@ -112,7 +123,7 @@ main(int argc, char *argv[], char *envp[
 	for (;;) {
 		if ((line = fparseln(config, &len, &lineno, NULL, 0)) == NULL) {
 			if (feof(config))
-				errx(EX_CONFIG, "no mapping in %s", _PATH_MAILERCONF);
+				errx(EX_CONFIG, "no mapping in %s", mailerconf);
 			err(EX_CONFIG, "cannot parse line %lu", (u_long)lineno);
 		}
 
@@ -157,6 +168,6 @@ main(int argc, char *argv[], char *envp[
 	/*NOTREACHED*/
 parse_error:
 	errx(EX_CONFIG, "parse error in %s at line %lu",
-	    _PATH_MAILERCONF, (u_long)lineno);
+	    mailerconf, (u_long)lineno);
 	/*NOTREACHED*/
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408262220.s7QMK2Lr048657>