summaryrefslogtreecommitdiffstats
path: root/usr/sbin/pc-sysinstall/backend/functions-networking.sh
diff options
context:
space:
mode:
Diffstat (limited to 'usr/sbin/pc-sysinstall/backend/functions-networking.sh')
-rwxr-xr-xusr/sbin/pc-sysinstall/backend/functions-networking.sh357
1 files changed, 0 insertions, 357 deletions
diff --git a/usr/sbin/pc-sysinstall/backend/functions-networking.sh b/usr/sbin/pc-sysinstall/backend/functions-networking.sh
deleted file mode 100755
index fa0fa06..0000000
--- a/usr/sbin/pc-sysinstall/backend/functions-networking.sh
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/bin/sh
-#-
-# Copyright (c) 2010 iXsystems, Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# $FreeBSD: src/usr.sbin/pc-sysinstall/backend/functions-networking.sh,v 1.3 2010/08/24 06:11:46 imp Exp $
-
-# Functions which perform our networking setup
-
-# Function which creates a kde4 .desktop file for the PC-BSD net tray
-create_desktop_nettray()
-{
- NIC="${1}"
- echo "#!/usr/bin/env xdg-open
-[Desktop Entry]
-Exec=/usr/local/kde4/bin/pc-nettray ${NIC}
-Icon=network
-StartupNotify=false
-Type=Application" > ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
- chmod 744 ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
-
-};
-
-# Function which checks is a nic is wifi or not
-check_is_wifi()
-{
- NIC="$1"
- ifconfig ${NIC} | grep "802.11" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- return 0
- else
- return 1
- fi
-};
-
-# Function to get the first available wired nic, used for lagg0 setup
-get_first_wired_nic()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- check_is_wifi ${NIC}
- if [ "$?" != "0" ]
- then
- VAL="${NIC}" ; export VAL
- return
- fi
- done < ${TMPDIR}/.niclist
- fi
-
- VAL="" ; export VAL
- return
-};
-
-# Function which simply enables plain dhcp on all detected nics, not fancy lagg interface
-enable_plain_dhcp_all()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- WLANCOUNT="0"
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- echo_log "Setting $NIC to DHCP on the system."
- check_is_wifi ${NIC}
- if [ "$?" = "0" ]
- then
- # We have a wifi device, setup a wlan* entry for it
- WLAN="wlan${WLANCOUNT}"
- echo "wlans_${NIC}=\"${WLAN}\"" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${WLAN}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${WLAN}"
- WLANCOUNT="`expr ${WLANCOUNT} + 1`"
- else
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${NIC}"
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-};
-
-# Function which enables fancy lagg dhcp on specified wifi
-enable_lagg_dhcp()
-{
- WIFINIC="$1"
-
- # Get the first wired nic
- get_first_wired_nic
- WIRENIC=$VAL
- LAGGPORT="laggport ${WIFINIC}"
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- if [ ! -z "$WIRENIC" ]
- then
- echo "ifconfig_${WIRENIC}=\"up\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"\`ifconfig ${WIRENIC} ether\`\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"ether \${ifconfig_${WIFINIC}##*ether }\"" >> ${FSMNT}/etc/rc.conf
- LAGGPORT="laggport ${WIRENIC} ${LAGGPORT}"
- fi
-
- echo "wlans_${WIFINIC}=\"wlan0\"" >> ${FSMNT}/etc/rc.conf
- echo "cloned_interfaces=\"lagg0\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_lagg0=\"laggproto failover ${LAGGPORT} DHCP\"" >> ${FSMNT}/etc/rc.conf
-
-};
-
-# Function which detects available nics, and runs them to DHCP on the
-save_auto_dhcp()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- check_is_wifi "${NIC}"
- if [ "$?" = "0" ]
- then
- # We have a wifi device, lets do fancy lagg interface
- enable_lagg_dhcp "${NIC}"
- return
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-
- # Got here, looks like no wifi, so lets simply enable plain-ole-dhcp
- enable_plain_dhcp_all
-
-};
-
-
-# Function which saves a manual nic setup to the installed system
-save_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- get_value_from_cfg netSaveIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Setting $NIC to DHCP on the system."
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- IFARGS="inet ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netSaveMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- IFARGS="${IFARGS} netmask ${NETMASK}"
- fi
-
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${NIC}=\"${IFARGS}\"" >>${FSMNT}/etc/rc.conf
-
- # Check if we have a default router to set
- get_value_from_cfg netSaveDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- echo "defaultrouter=\"${NETROUTE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netSaveNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >${FSMNT}/etc/resolv.conf
- fi
-
-};
-
-# Function which determines if a nic is active / up
-is_nic_active()
-{
- ifconfig ${1} | grep "status: active" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- return 0
- else
- return 1
- fi
-};
-
-
-# Function which detects available nics, and runs DHCP on them until
-# a success is found
-enable_auto_dhcp()
-{
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
-
- is_nic_active "${NIC}"
- if [ "$?" = "0" ] ; then
- echo_log "Trying DHCP on $NIC $DESC"
- dhclient ${NIC} >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- # Got a valid DHCP IP, we can return now
- WRKNIC="$NIC" ; export WRKNIC
- return 0
- fi
- fi
- done < ${TMPDIR}/.niclist
-
-};
-
-# Get the mac address of a target NIC
-get_nic_mac()
-{
- FOUNDMAC="`ifconfig ${1} | grep 'ether' | tr -d '\t' | cut -d ' ' -f 2`"
- export FOUNDMAC
-}
-
-# Function which performs the manual setup of a target nic in the cfg
-enable_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- # Check that this NIC exists
- rc_halt "ifconfig ${NIC}"
-
- get_value_from_cfg netIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Enabling DHCP on $NIC"
- rc_halt "dhclient ${NIC}"
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- rc_halt "ifconfig ${NIC} ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- rc_halt "ifconfig ${NIC} netmask ${NETMASK}"
- fi
-
- # Check if we have a default router to set
- get_value_from_cfg netDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- rc_halt "route add default ${NETROUTE}"
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >/etc/resolv.conf
- fi
-
-
-};
-
-
-# Function which parses the cfg and enables networking per specified
-start_networking()
-{
- # Check if we have any networking requested
- get_value_from_cfg netDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- enable_auto_dhcp
- else
- enable_manual_nic ${NETDEV}
- fi
-
-};
-
-
-# Function which checks the cfg and enables the specified networking on
-# the installed system
-save_networking_install()
-{
-
- # Check if we have any networking requested to save
- get_value_from_cfg netSaveDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- save_auto_dhcp
- else
- save_manual_nic ${NETDEV}
- fi
-
-};
-
OpenPOWER on IntegriCloud