#!/bin/sh

# Enable syswatch
#----------------

logger -p local6.notice -t installer "app-network-core - enabling syswatch"
/sbin/chkconfig syswatch on >/dev/null 2>&1
/sbin/service syswatch start >/dev/null 2>&1

# Disable Avahi server
#---------------------

CHECK=`LANG=en_US /sbin/chkconfig --list avahi-daemon 2>&1 | /bin/grep 3:on`

if [ -x /usr/sbin/avahi-daemon ]; then
    logger -p local6.notice -t installer "app-network-core - disabling Avahi server"
    /sbin/chkconfig avahi-daemon off >/dev/null 2>&1
    /sbin/service avahi-daemon stop >/dev/null 2>&1
fi

# Disable PPPoE server
#---------------------

if [ -x /usr/sbin/pppoe-server ]; then
    logger -p local6.notice -t installer "app-network-core - disabling PPPoE server"
    /sbin/chkconfig pppoe-server off >/dev/null 2>&1
    /sbin/service pppoe-server stop >/dev/null 2>&1
fi

# Disable zeroconf
#-----------------

CHECK=`grep NOZEROCONF /etc/sysconfig/network 2>/dev/null`

if [ -z "$CHECK" ]; then
    logger -p local6.notice -t installer "app-network-core - disabling zeroconf"
    echo "NOZEROCONF=\"yes\"" >> /etc/sysconfig/network
fi

# Disable IPv6 by default
#------------------------

# FIXME: decide on a better way to detect ClearOS versions in a script.  Quick hack:
IS_CLEAROS7=`ls /usr/lib/systemd 2>/dev/null`

if [ -n "$IS_CLEAROS7" ]; then
    CHECK=`grep "^#::1[[:space:]]*" /etc/hosts`

    if [ -n "$CHECK" ]; then
        logger -p local6.notice -t installer "app-network-core - cleaning IPv6 localhost in /etc/hosts"
        sed -i -e 's/^#::1[[:space:]]*/::1         /' /etc/hosts
    fi
else
    CHECK=`grep "^net.ipv6.conf.all.disable_ipv6[[:space:]]*=" /etc/sysctl.conf`

    if [ -z "$CHECK" ]; then
        logger -p local6.notice -t installer "app-network-core - disabling IPv6 interfaces"
        echo "" >> /etc/sysctl.conf
        echo "# IPv6 policy" >> /etc/sysctl.conf
        echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
    fi

    CHECK=`grep "^net.ipv6.conf.default.disable_ipv6[[:space:]]*=" /etc/sysctl.conf`

    if [ -z "$CHECK" ]; then
        logger -p local6.notice -t installer "app-network-core - setting IPv6 default policy"
        echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
    fi

    CHECK=`grep "^::1[[:space:]]*" /etc/hosts`

    if [ -n "$CHECK" ]; then
        logger -p local6.notice -t installer "app-network-core - cleaning IPv6 localhost in /etc/hosts"
        sed -i -e 's/^::1[[:space:]]*/#::1         /' /etc/hosts
    fi
fi

# Set first NIC as external
#--------------------------

EXTERNAL=`ip addr | grep ^2: | awk '{ print $2 }' | sed 's/://'`
if [ "$EXTERNAL" != "eth0" ]; then
    logger -p local6.notice -t installer "app-network-core - setting external interface to $EXTERNAL"
    sed -i -e "s/^EXTIF=.*/EXTIF=\"$EXTERNAL\"/" /etc/clearos/network.conf
fi

# Reload syswatch
#----------------

logger -p local6.notice -t installer "app-base-core - restarting syswatch"
service syswatch condrestart >/dev/null 2>&1
