# Ensure a default for SERVER. It may be overriden later on by lts.conf.
if [ -n "$SERVER" ]; then
    # if already exported by cmdline script, don't do the following steps 
    export SERVER="$SERVER"
elif [ -n "$NBD_ROOT_HOST" ]; then
    export SERVER="$NBD_ROOT_HOST"
elif [ -n "$NFS_SERVER" ]; then
    export SERVER="$NFS_SERVER"
else
    test -f /proc/mounts && while read MOUNTED_DEVICE MOUNTPOINT FSTYPE OPTIONS PASS1 PASS2; do
        case $MOUNTED_DEVICE in
            /dev/nbd[0-9]*)
                if [ "$MOUNTPOINT" = "/" ] || [ "${MOUNTPOINT%/rofs}" != "${MOUNTPOINT}" ]; then
                    # check for NBD devices
                    pid=$(nbd-client -c $MOUNTED_DEVICE)

                    if grep -q '\-N' /proc/$pid/cmdline; then
                        server=$(cut -d '' -f 2 /proc/$pid/cmdline)
                        name=$(cut -d '' -f 1-15 --output-delimiter=' ' /proc/$pid/cmdline | sed -e 's,.* -N ,,g' -e 's, .*,,g')
                    else
                        server=$(cut -d '' -f 2 /proc/$pid/cmdline)
                        port=$(cut -d '' -f 3 /proc/$pid/cmdline)
                    fi

                    # Check for nbd-proxy
                    if [ "$server" = "127.0.0.1" ]; then
                        server=$(ps --no-headers -o cmd x | grep "^nbd-proxy [[:graph:]]* [[:graph:]]* ${port}" | cut -d ' ' -f2)
                    fi
                fi
                echo "NBD_ROOT_HOST=${server}" >> /var/cache/ltsp/ltsp_config
                if [ -n "$name" ]; then
                    echo "NBD_ROOT_NAME=${name}" >> /var/cache/ltsp/ltsp_config
                else
                    echo "NBD_ROOT_PORT=${port}" >> /var/cache/ltsp/ltsp_config
                fi
                ;;
            *)
                if [ "${FSTYPE#nfs}" != "${FSTYPE}" ]; then
                    if [ "$MOUNTPOINT" = "/" ] || [ "${MOUNTPOINT%/rofs}" != "${MOUNTPOINT}" ]; then
                        # NFS root
                        server=${MOUNTED_DEVICE%%:*}
                        echo NFS_SERVER=${server} >> /var/cache/ltsp/ltsp_config
                    fi
                fi
                ;;
        esac
        [ -n "$server" ] && break
    done < /proc/mounts

    SERVER="${server:-$ROOTSERVER}"
    export SERVER="${SERVER:-192.168.67.1}"
fi
echo "SERVER=$SERVER" >> /var/cache/ltsp/ltsp_config
