#!/bin/sh

SAMBA_DHCP_CONF=/etc/mne/samba/dhcp.conf

netbios_setup() {
        # No need to continue if we're called with an unsupported option

        case $reason in
        BOUND|RENEW|REBIND|REBOOT|EXPIRE|FAIL|RELEASE|STOP)
                ;;
        *)
                return
                ;;
        esac

        umask 022

        local other_servers=""
        local serverlist=""

        # the destination file won't exist yet on the first run after 
        # installing samba
        if [ -e $SAMBA_DHCP_CONF ] && [ -s $SAMBA_DHCP_CONF ]
        then
                # don't continue if no settings have changed
                if [ "$new_netbios_name_servers" = "$old_netbios_name_servers" ] \
                   && [ "$new_netbios_scope" = "$old_netbios_scope" ] \
                   && [ -n "$new_netbios_name_servers" ]
                then
                        return
                fi

                # reparse our own file
                other_servers=`sed -n -e"s/[[:space:]]$interface:[^[:space:]]*//g; \
                        s/^[[:space:]]*wins server[[:space:]]*=[[:space:]]*//pi" \
                        $SAMBA_DHCP_CONF`

                serverlist="$other_servers"
        fi

        for server in $new_netbios_name_servers
        do
                serverlist="$serverlist $interface:$server"
        done

        echo -n > ${SAMBA_DHCP_CONF}.new

        # If we're updating on failure/expire, AND there are no WINS
        # servers for other interfaces, leave the file empty.
        if [ -z "$other_servers" ]
        then
                if [ "$reason" = FAIL ] || [ "$reason" = EXPIRE ]
                then
                        mv ${SAMBA_DHCP_CONF}.new $SAMBA_DHCP_CONF
                        return
                fi
        fi
        if [ -n "$serverlist" ]
        then
                echo "   wins server =$serverlist" >> ${SAMBA_DHCP_CONF}.new
        fi
        if [ -n "$new_netbios_scope" ]
        then
                echo "   netbios scope = $new_netbios_scope" >> ${SAMBA_DHCP_CONF}.new
        fi
        mv ${SAMBA_DHCP_CONF}.new $SAMBA_DHCP_CONF

        # reload the samba server
        # We don't necessarily have the samba package installed. #414841
        [ -x /etc/init.d/smbd ] && /usr/sbin/invoke-rc.d smbd reload

}

netbios_setup
