svn commit: r293243 - stable/9/usr.sbin/mailwrapper

Bryan Drewery bdrewery at FreeBSD.org
Wed Jan 6 17:53:52 UTC 2016


Author: bdrewery
Date: Wed Jan  6 17:53:51 2016
New Revision: 293243
URL: https://svnweb.freebsd.org/changeset/base/293243

Log:
  MFC r270675:
  
    Allow mailwrapper to use mailer.conf from localbase (respecting LOCALBASE env
    var if set)
  
  PR:		205965
  Relnotes:	yes

Modified:
  stable/9/usr.sbin/mailwrapper/mailwrapper.8
  stable/9/usr.sbin/mailwrapper/mailwrapper.c
Directory Properties:
  stable/9/usr.sbin/mailwrapper/   (props changed)

Modified: stable/9/usr.sbin/mailwrapper/mailwrapper.8
==============================================================================
--- stable/9/usr.sbin/mailwrapper/mailwrapper.8	Wed Jan  6 17:48:35 2016	(r293242)
+++ stable/9/usr.sbin/mailwrapper/mailwrapper.8	Wed Jan  6 17:53:51 2016	(r293243)
@@ -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: stable/9/usr.sbin/mailwrapper/mailwrapper.c
==============================================================================
--- stable/9/usr.sbin/mailwrapper/mailwrapper.c	Wed Jan  6 17:48:35 2016	(r293242)
+++ stable/9/usr.sbin/mailwrapper/mailwrapper.c	Wed Jan  6 17:53:51 2016	(r293243)
@@ -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*/
 }


More information about the svn-src-stable-9 mailing list