aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmeta-networking/recipes-daemons/postfix/files/check_hostname.sh13
-rwxr-xr-xmeta-networking/recipes-daemons/postfix/files/postfix1
-rw-r--r--meta-networking/recipes-daemons/postfix/files/postfix.service1
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix.inc3
4 files changed, 18 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
new file mode 100755
index 0000000000..37a0dd088c
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+HOSTNAME=$(/bin/hostname)
+
+if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ]; then
+ # If hostname is invalid, and myhostname not existed in main.cf
+ /usr/sbin/postconf -h "myhostname" 2>/dev/null
+ if [ $? -ne 0 ]; then
+ # Set "localhost" to main.cf
+ /usr/sbin/postconf -e "myhostname=localhost"
+ fi
+fi
+
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix b/meta-networking/recipes-daemons/postfix/files/postfix
index 0ea67ef63b..8c7a60175a 100755
--- a/meta-networking/recipes-daemons/postfix/files/postfix
+++ b/meta-networking/recipes-daemons/postfix/files/postfix
@@ -40,6 +40,7 @@ case "$1" in
newaliases
fi
if ! postfix status >/dev/null 2>&1; then
+ /usr/sbin/check_hostname.sh
postfix start
check_return $?
else
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service b/meta-networking/recipes-daemons/postfix/files/postfix.service
index 02ea640b25..3a9a0a1813 100644
--- a/meta-networking/recipes-daemons/postfix/files/postfix.service
+++ b/meta-networking/recipes-daemons/postfix/files/postfix.service
@@ -6,6 +6,7 @@ Conflicts=sendmail.service exim.service
[Service]
Type=forking
PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid
+ExecStartPre=-@SBINDIR@/check_hostname.sh
ExecStartPre=-@LIBEXECDIR@/aliasesdb
ExecStart=@SBINDIR@/postfix start
ExecReload=@SBINDIR@/postfix reload
diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc
index 6d39570d34..dc652d7da1 100644
--- a/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -23,6 +23,7 @@ SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV
file://internal_recipient \
file://postfix.service \
file://aliasesdb \
+ file://check_hostname.sh \
"
S = "${WORKDIR}/postfix-${PV}"
@@ -145,6 +146,8 @@ do_install () {
install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf
sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf
+ install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/
+
install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient