#!/bin/bash

# Make sure GPS is checked after a minute
if [ -f /tmp/gpson ];
then
    rm -f /tmp/gpson
fi
sv restart bfglink

if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
    rm -f /etc/ppp/resolv.prev 

    if [ -f /etc/resolv.conf ]; then 
        # Try to always keep the resolv generated by webconfig
        CHECK=`cat /etc/resolv.conf | grep 'generated by webconfig'`
        if [ "${CHECK}" != "" ]; then
            echo "Original generated resolv"
            cp -f /etc/resolv.conf /etc/ppp/resolv.orig
        fi
        # Keep copy of current resolv
        cp /etc/resolv.conf /etc/ppp/resolv.prev 
        # Write new resolv made up of previous and pppd DNS
        echo "### Generated by pppd" > /etc/ppp/resolv.new
        grep search /etc/ppp/resolv.prev >> /etc/ppp/resolv.new
        # Store all nameserver from previous go
        NameServers=()
        IFS=$'\n'
        TEMP=`grep nameserver /etc/ppp/resolv.prev`
        for rns in ${TEMP[@]}; do
            EXIST=0
            for ns in ${NameServers[@]}; do
                    if [ "$ns" == "$rns" ]; then
                            EXIST=1
                    fi
            done
            if [ "$EXIST" == "0" ];
            then
                    NameServers=("${NameServers[@]}" "$rns")
            fi
        done
        #grep nameserver /etc/ppp/resolv.prev >> /etc/ppp/resolv.new
        
        TEMP=`grep nameserver /etc/ppp/resolv.conf`
        for rns in ${TEMP[@]}; do
            EXIST=0
            for ns in ${NameServers[@]}; do
                if [ "$ns" == "$rns" ]; then
                    EXIST=1
                fi
            done
            if [ "$EXIST" == "0" ];
            then
                NameServers=("${NameServers[@]}" "$rns")
            fi
        done
        #cat /etc/ppp/resolv.conf >> /etc/ppp/resolv.new

        for ns in ${NameServers[@]}; do
            echo "Add $ns"
            echo "$ns" >> /etc/ppp/resolv.new
        done

        echo "### End of file" >> /etc/ppp/resolv.new
        # Replace with generated resolv
        mv -f /etc/ppp/resolv.new /etc/resolv.conf
    else 
        cp /etc/ppp/resolv.conf /etc 
    fi 
    chmod 644 /etc/resolv.conf 
fi