if [ "$netmask" = "255.255.255.255" ]; then
cidr="$ipaddress/32"
else
- cidr="`ipcalc -ncb $ipaddress $netmask | awk '/^Network:/{print $2}'`"
+ cidr="`ipcalc -nb $ipaddress $netmask | awk '/^Network:/{print $2}'`"
fi
RET="$cidr"
RET="`echo $RET | awk -F, '{print $1}' | awk -F= '{print $2}'`"
[ -z "$RET" ] && echo "cp_get_ldap_realm: No LDAP REALM in /etc/ldap/slapd.conf" >&2
- [ -z "$echo_return" ] || echo $RET
- CP_ECHO_RETURN="$echo_return"
+}
+
+# if fqdn is name.dom3.dom2.dom1.hr, check if this host is MX for
+# either dom3.dom2.dom1.hr, dom2.dom1.hr or dom1.hr and dump highest level
+# domain on stdout
+cp_get_mx_domain() {
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+
+ local domains d host
+
+ host=$(hostname -f)
+ RET="$host"
+ if ! echo "$host" | grep -q '\.'; then
+ return
+ fi
+ if [ ! -x /usr/bin/host ]; then
+ # no host command
+ return
+ fi
+ domains=$(/bin/hostname -f | awk -F. '
+ {
+ for (i=2; i<NF; i++) {
+ for (j=i; j<NF; j++) {
+ printf "%s", $(j)"."
+ };
+ print $NF
+ }
+ }' )
+ for d in $domains
+ do
+ mxes=$(/usr/bin/host -t mx $d)
+ # handle output of both /usr/bin/host providers
+ mxes=$(echo "$mxes"|\
+ awk '/mail is handled by/ || /MX/ {print $NF}'|sed 's/\.$//')
+ if echo "$mxes" |egrep -q "^$host$"; then
+ RET="$d"
+ fi
+ done
+
+ [ -z "$CP_ECHO_RETURN" ] || echo "$RET"
}
_cp_customize() {