mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-26 02:42:58 +02:00
Move network initscripts to src/initscripts/networking
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
This commit is contained in:
@@ -1,102 +0,0 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin
|
||||
#
|
||||
# Description : ANY Device Script
|
||||
#
|
||||
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Michael Tremer - mitch@ipfire.org
|
||||
# Maniacikarus - maniacikarus@ipfire.org
|
||||
#
|
||||
# Version : 01.00
|
||||
#
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
|
||||
if [ "$(basename $0)" == "green" ]; then
|
||||
DEVICE="${GREEN_DEV}"
|
||||
ADDRESS="${GREEN_ADDRESS}"
|
||||
BROADCAST="${GREEN_BROADCAST}"
|
||||
NETADDRESS="${GREEN_NETADDRESS}"
|
||||
NETMASK="${GREEN_NETMASK}"
|
||||
DEVICE="${GREEN_DEV}"
|
||||
elif [ "$(basename $0)" == "blue" ]; then
|
||||
DEVICE="${BLUE_DEV}"
|
||||
ADDRESS="${BLUE_ADDRESS}"
|
||||
BROADCAST="${BLUE_BROADCAST}"
|
||||
NETADDRESS="${BLUE_NETADDRESS}"
|
||||
NETMASK="${BLUE_NETMASK}"
|
||||
DEVICE="${BLUE_DEV}"
|
||||
elif [ "$(basename $0)" == "orange" ]; then
|
||||
DEVICE="${ORANGE_DEV}"
|
||||
ADDRESS="${ORANGE_ADDRESS}"
|
||||
BROADCAST="${ORANGE_BROADCAST}"
|
||||
NETADDRESS="${ORANGE_NETADDRESS}"
|
||||
NETMASK="${ORANGE_NETMASK}"
|
||||
DEVICE="${ORANGE_DEV}"
|
||||
fi
|
||||
|
||||
if [ -z "${BROADCAST}" ]; then
|
||||
boot_mesg "BROADCAST variable missing from input, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "${ADDRESS}" -a -n "${NETMASK}" ]; then
|
||||
PREFIX=`whatmask ${NETMASK} | grep -e ^CIDR | awk -F': ' '{ print $2 }' | cut -c 2-`
|
||||
args="${args} ${ADDRESS}/${PREFIX} broadcast ${BROADCAST}"
|
||||
else
|
||||
boot_mesg "ADDRESS and/or NETMASK variable missing from input, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "${1}" in
|
||||
|
||||
start)
|
||||
boot_mesg "Bringing up the ${DEVICE} interface..."
|
||||
boot_mesg_flush
|
||||
|
||||
# Check if an interface is there...
|
||||
if ip link show ${DEVICE} > /dev/null 2>&1; then
|
||||
link_status=`ip link show ${DEVICE} 2> /dev/null`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if ! echo "${link_status}" | grep -q UP; then
|
||||
ip link set ${DEVICE} up
|
||||
fi
|
||||
fi
|
||||
else
|
||||
boot_mesg "Interface ${DEVICE} doesn't exist." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create & Enable vnstat data collection
|
||||
/usr/bin/vnstat -u -i ${DEVICE} -r --enable --force > /dev/null 2>&1
|
||||
|
||||
if [ ! "${ADDRESS}" == "1.1.1.1" ]; then
|
||||
boot_mesg "Adding IPv4 address ${ADDRESS} to the ${DEVICE} interface..."
|
||||
ip addr add ${args} dev ${DEVICE}
|
||||
evaluate_retval
|
||||
fi
|
||||
;;
|
||||
|
||||
stop)
|
||||
if [ ! "${ADDRESS}" == "1.1.1.1" ]; then
|
||||
boot_mesg "Removing IPv4 addresses from the ${DEVICE} interface..."
|
||||
ip addr flush dev ${DEVICE}
|
||||
evaluate_retval
|
||||
fi
|
||||
|
||||
# Disable vnstat collection
|
||||
/usr/bin/vnstat -u -i ${DEVICE} -r --disable > /dev/null 2>&1
|
||||
exit 0;
|
||||
;;
|
||||
esac
|
||||
# End
|
||||
@@ -1,90 +0,0 @@
|
||||
########################################################################
|
||||
# Begin
|
||||
#
|
||||
# Description : DHCP Client Script
|
||||
#
|
||||
# Authors : Arne Fitzenreiter - arne_f@ipfire.org
|
||||
#
|
||||
# Version : 02.00
|
||||
#
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/dns/settings)
|
||||
|
||||
dhcpcd_up()
|
||||
{
|
||||
set | grep "^new_" | sed "s|^new_||g" | \
|
||||
sort > /var/ipfire/dhcpc/dhcpcd-$interface.info
|
||||
|
||||
#Check if this was the Red device...
|
||||
if [ ! "$interface" == "$RED_DEV" ]; then
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
# Only if RED_TYPE=DHCP update /var/ipfire/red
|
||||
if [ "$RED_TYPE" == "DHCP" ]; then
|
||||
|
||||
#Check if we have to restart the services at update
|
||||
[ ! -e "/var/ipfire/red/active" ] && update=1;
|
||||
if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
|
||||
update=1;
|
||||
fi
|
||||
if [ "$old_ip_address" != "$new_ip_address" ]; then
|
||||
update=1;
|
||||
fi
|
||||
if [ "$old_routers" != "$new_routers" ]; then
|
||||
update=1;
|
||||
fi
|
||||
|
||||
#Get DNS from dhcp
|
||||
if [ -n "$DNS0" ] && [ -n "$DNS1" ]; then
|
||||
logger -p local0.info -t dhcpcd.exe[$$] "Overwritting DNS-Server addresses with ${DNS0},${DNS1}"
|
||||
echo -n ${DNS0} > /var/ipfire/red/dns1
|
||||
echo -n ${DNS1} > /var/ipfire/red/dns2
|
||||
else
|
||||
echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 1` > /var/ipfire/red/dns1
|
||||
echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 2` > /var/ipfire/red/dns2
|
||||
fi
|
||||
|
||||
#Get IP Address
|
||||
echo -n "$new_ip_address" > /var/ipfire/red/local-ipaddress
|
||||
|
||||
#Get default gateway
|
||||
grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
|
||||
echo "$new_routers gateway" >> /tmp/hosts
|
||||
mv /tmp/hosts /etc/hosts
|
||||
|
||||
fi
|
||||
if [ $update ]; then
|
||||
[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
|
||||
echo -n "$new_routers" > /var/ipfire/red/remote-ipaddress
|
||||
logger -p local0.info -t dhcpcd.exe[$$] "$interface has been (re)configured with IP=$new_ip_address"
|
||||
run_subdir ${rc_base}/init.d/networking/red.up/
|
||||
touch /var/ipfire/red/active
|
||||
fi
|
||||
}
|
||||
|
||||
dhcpcd_down()
|
||||
{
|
||||
set | grep "^new_" | sed "s|^new_||g" | \
|
||||
sort > /var/ipfire/dhcpc/dhcpcd-$interface.info
|
||||
|
||||
# Only if RED_TYPE=DHCP update /var/ipfire/red
|
||||
if [ "$RED_TYPE" == "DHCP" ]; then
|
||||
logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down"
|
||||
rm -f /var/ipfire/red/active
|
||||
run_subdir ${rc_base}/init.d/networking/red.down/
|
||||
fi
|
||||
}
|
||||
|
||||
case "$reason" in
|
||||
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC) dhcpcd_up;;
|
||||
PREINIT|EXPIRE|FAIL|IPV4LL|NAK|NOCARRIER|RELEASE|STOP) dhcpcd_down;;
|
||||
esac
|
||||
@@ -1,147 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
########################################################################
|
||||
# Begin
|
||||
#
|
||||
# Description : A collection of functions for the IPFire network scripts
|
||||
#
|
||||
# Authors : IPFire Development Team <developers@ipfire.org>
|
||||
#
|
||||
# Version : 01.00
|
||||
#
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/dns/settings)
|
||||
|
||||
dhcpcd_get_pid() {
|
||||
# This function returns the pid of a dhcpcd by a given
|
||||
# network device, if a pidfile exists.
|
||||
|
||||
local device="$1"
|
||||
local pidfile="/var/run/dhcpcd-${device}.pid"
|
||||
|
||||
# Check if a pid file exists.
|
||||
if [ -f "${pidfile}" ] ; then
|
||||
|
||||
# Get the pid from the file.
|
||||
local pid="$(<"${pidfile}")"
|
||||
|
||||
echo "${pid}"
|
||||
fi
|
||||
}
|
||||
|
||||
dhcpcd_is_running() {
|
||||
# This functions checks if a dhcpcd is running by a given pid.
|
||||
|
||||
local pid="$1"
|
||||
|
||||
# Check if a dhcpcd is running.
|
||||
if [ -n "${pid}" -a -d "/proc/${pid}" ]; then
|
||||
# Return "0" (True) if a dhcpcd is running.
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Return 1 (False) no dhcpcd is running.
|
||||
return 1
|
||||
}
|
||||
|
||||
dhcpcd_start() {
|
||||
# This function will start a dhcpcd on a speciefied device.
|
||||
|
||||
local device="$1"
|
||||
local dhcp_start=""
|
||||
|
||||
boot_mesg -n "Starting dhcpcd on the ${device} interface..."
|
||||
|
||||
# Check if a dhcpcd is already running.
|
||||
local pid="$(dhcpcd_get_pid "${device}")"
|
||||
|
||||
if dhcpcd_is_running "${pid}"; then
|
||||
boot_mesg "dhcpcd already running!" ${WARNING}
|
||||
echo_warning
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Check if a DHCP hostname has been set.
|
||||
if [ -n "${RED_DHCP_HOSTNAME}" ]; then
|
||||
dhcp_start+="-h ${RED_DHCP_HOSTNAME}"
|
||||
fi
|
||||
|
||||
# Start dhcpcd.
|
||||
/sbin/dhcpcd ${dhcp_start} ${device} >/dev/null 2>&1
|
||||
ret="$?"
|
||||
|
||||
if [ "${ret}" -eq 0 ]; then
|
||||
. /var/ipfire/dhcpc/dhcpcd-"${device}".info
|
||||
echo ""
|
||||
echo_ok
|
||||
boot_mesg " DHCP Assigned Settings for ${device}:"
|
||||
boot_mesg_flush
|
||||
boot_mesg " IP Address: $ip_address"
|
||||
boot_mesg_flush
|
||||
|
||||
if [ -n "${RED_DHCP_HOSTNAME}" ]; then
|
||||
boot_mesg " Hostname: $RED_DHCP_HOSTNAME"
|
||||
boot_mesg_flush
|
||||
fi
|
||||
|
||||
boot_mesg " Subnet Mask: $subnet_mask"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Default Gateway: $routers"
|
||||
boot_mesg_flush
|
||||
boot_mesg " DNS Server: $domain_name_servers"
|
||||
boot_mesg_flush
|
||||
else
|
||||
echo ""
|
||||
$(exit "${ret}")
|
||||
evaluate_retval
|
||||
fi
|
||||
}
|
||||
|
||||
dhcpcd_stop() {
|
||||
# This function stops a previously started dhcpcd on a given device.
|
||||
|
||||
local device="$1"
|
||||
local dhcp_stop="-k"
|
||||
local leaseinfo="/var/ipfire/dhcpc/dhcpcd-${device}.info"
|
||||
|
||||
boot_mesg -n "Stopping dhcpcd on the ${device} interface..."
|
||||
|
||||
# Check if a dhcpcd is running.
|
||||
local pid="$(dhcpcd_get_pid "${device}")"
|
||||
|
||||
if ! dhcpcd_is_running "${pid}"; then
|
||||
boot_mesg " Not running." ${WARNING}
|
||||
echo_warning
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Stop dhcpcd.
|
||||
/sbin/dhcpcd ${dhcp_stop} ${device} &> /dev/null
|
||||
ret="$?"
|
||||
|
||||
# Wait until dhcpd has stopped.
|
||||
while [ -d "/proc/${pid}" ]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Display console message, depended on the exit code
|
||||
# of the stopped dhcpcd.
|
||||
if [ "${ret}" -eq 0 ]; then
|
||||
boot_mesg
|
||||
echo_ok
|
||||
elif [ "${ret}" -eq 1 ]; then
|
||||
boot_mesg "failed to stop dhcpcd!" ${WARNING}
|
||||
echo_warning
|
||||
else
|
||||
boot_mesg
|
||||
echo_failure
|
||||
fi
|
||||
}
|
||||
@@ -1,526 +0,0 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin
|
||||
#
|
||||
# Description : RED Device Script
|
||||
#
|
||||
# Authors : Michael Tremer - mitch@ipfire.org
|
||||
# Maniacikarus - maniacikarus@ipfire.org
|
||||
# Inspired by : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
#
|
||||
# Version : 01.00
|
||||
#
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /etc/init.d/networking/functions.network
|
||||
|
||||
#Define some defaults
|
||||
INET_VLAN=7
|
||||
IPTV_VLAN=8
|
||||
ATM_DEV=0
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
|
||||
if [ "$RRDLOG" == "" ]; then
|
||||
RRDLOG=/var/log/rrd
|
||||
fi
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/dns/settings)
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/mac/settings)
|
||||
|
||||
MAC=$(tr - : <<<$MAC)
|
||||
MAC1=$(tr - : <<<$MAC1)
|
||||
MAC2=$(tr - : <<<$MAC2)
|
||||
|
||||
TYPE="${RED_TYPE}"
|
||||
DEVICE="${RED_DEV}"
|
||||
|
||||
if [ "$TYPE" == "STATIC" ] || [ "$TYPE" == "DHCP" ]; then
|
||||
if [ "$DEVICE" == "" ]; then
|
||||
boot_mesg "No device for red network. Please run setup." ${FAILURE}
|
||||
echo_failure
|
||||
[ "${1}" == "start" ] && exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${TYPE}" == "STATIC" ]; then
|
||||
if [ "${DEVICE}" != "${GREEN_DEV}" ]; then
|
||||
ADDRESS="${RED_ADDRESS}"
|
||||
BROADCAST="${RED_BROADCAST}"
|
||||
NETADDRESS="${RED_NETADDRESS}"
|
||||
NETMASK="${RED_NETMASK}"
|
||||
else
|
||||
ADDRESS="${GREEN_ADDRESS}"
|
||||
BROADCAST="${GREEN_BROADCAST}"
|
||||
NETADDRESS="${GREEN_NETADDRESS}"
|
||||
NETMASK="${GREEN_NETMASK}"
|
||||
fi
|
||||
GATEWAY="${DEFAULT_GATEWAY}"
|
||||
# DNS1
|
||||
# DNS2
|
||||
|
||||
if [ -z "${BROADCAST}" ]; then
|
||||
boot_mesg "BROADCAST variable missing, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
if [ -n "${ADDRESS}" -a -n "${NETMASK}" ]; then
|
||||
PREFIX=`whatmask ${NETMASK} | grep -e ^CIDR | awk -F': ' '{ print $2 }' | cut -c 2-`
|
||||
args="${args} ${ADDRESS}/${PREFIX} broadcast ${BROADCAST}"
|
||||
else
|
||||
boot_mesg "ADDRESS and/or NETMASK variable missing from input, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
if [ "${DEVICE}" != "${GREEN_DEV}" ] && [ "${DEVICE}" != "" ]; then
|
||||
boot_mesg "Bringing up the ${DEVICE} interface..."
|
||||
boot_mesg_flush
|
||||
# Check if an interface is there...
|
||||
if ip link show ${DEVICE} > /dev/null 2>&1; then
|
||||
link_status=`ip link show ${DEVICE} 2> /dev/null`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if ! echo "${link_status}" | grep -q UP; then
|
||||
if [ -n "$MAC" ]; then
|
||||
boot_mesg "Setting mac address on ${DEVICE} to ${MAC}"
|
||||
ip link set dev ${DEVICE} address ${MAC}
|
||||
evaluate_retval
|
||||
fi
|
||||
ip link set ${DEVICE} up
|
||||
fi
|
||||
fi
|
||||
else
|
||||
boot_mesg "Interface ${DEVICE} doesn't exist." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
## Create & Enable vnstat
|
||||
/usr/bin/vnstat -u -i ${DEVICE} -r --enable --force > /dev/null 2>&1
|
||||
|
||||
if [ "${TYPE}" == "STATIC" ]; then
|
||||
|
||||
if [ "$DEVICE" != "${GREEN_DEV}" ]; then
|
||||
boot_mesg "Adding IPv4 address ${ADDRESS} to the ${DEVICE} interface..."
|
||||
ip addr add ${args} dev ${DEVICE}
|
||||
evaluate_retval
|
||||
fi
|
||||
echo -n "${DEVICE}" > /var/ipfire/red/iface
|
||||
echo -n "${ADDRESS}" > /var/ipfire/red/local-ipaddress
|
||||
echo -n "${GATEWAY}" > /var/ipfire/red/remote-ipaddress
|
||||
grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
|
||||
echo "$GATEWAY gateway" >> /tmp/hosts
|
||||
mv /tmp/hosts /etc/hosts
|
||||
echo -n "${DNS1}" > /var/ipfire/red/dns1
|
||||
echo -n "${DNS2}" > /var/ipfire/red/dns2
|
||||
touch /var/ipfire/red/active
|
||||
|
||||
boot_mesg "Setting up default gateway ${GATEWAY}..."
|
||||
ip route add default via ${GATEWAY} dev ${DEVICE}
|
||||
evaluate_retval
|
||||
|
||||
run_subdir ${rc_base}/init.d/networking/red.up/
|
||||
|
||||
# Configure aliases only if red static
|
||||
/usr/local/bin/setaliases
|
||||
|
||||
elif [ "${TYPE}" == "DHCP" ]; then
|
||||
# Add firewall rules to allow comunication with the dhcp server on red.
|
||||
iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i ${DEVICE} -j ACCEPT
|
||||
iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i ${DEVICE} -j ACCEPT
|
||||
|
||||
echo -n "${DEVICE}" > /var/ipfire/red/iface
|
||||
|
||||
# Check if the wlan-client is used on red.
|
||||
# To determine this we check if a wpa_supplicant is running.
|
||||
pid="$(pidof wpa_supplicant)"
|
||||
|
||||
if [ -z "${pid}" ]; then
|
||||
# No wpa_supplicant is running. So it's save to start dhcpcd.
|
||||
dhcpcd_start "${DEVICE}"
|
||||
fi
|
||||
|
||||
## Create & Enable vnstat
|
||||
/usr/bin/vnstat -u -i ${DEVICE} -r --enable --force > /dev/null 2>&1
|
||||
|
||||
elif [ "$TYPE" == "PPPOE" ]; then
|
||||
|
||||
if ( ps ax | grep -q [p]ppd ); then
|
||||
boot_mesg "pppd is still running." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
|
||||
|
||||
[ -c "/dev/ppp" ] || mknod /dev/ppp c 108 0
|
||||
|
||||
# We force the plugin method, anyway.
|
||||
METHOD="PPPOE_PLUGIN"
|
||||
|
||||
PPP_NIC=${DEVICE}
|
||||
|
||||
|
||||
if [ "$TYPE" == "pppoeatm" ] || [ "$TYPE" == "pptpatm" ]; then
|
||||
PPP_NIC=nas${ATM_DEV}
|
||||
DEVICE=nas${ATM_DEV}
|
||||
boot_mesg "Creating ATM-Bridge as $PPP_NIC ..."
|
||||
br2684ctl -c${ATM_DEV} -e${ENCAP} -a${ATM_DEV}.${VPI}.${VCI} >/dev/null 2>&1 &
|
||||
sleep 1
|
||||
|
||||
# use user-defined or green mac address for nas0
|
||||
if [ -n "$MAC" ]; then
|
||||
ip link set dev nas${ATM_DEV} address ${MAC}
|
||||
else
|
||||
ip link set dev nas${ATM_DEV} address $(cat /sys/class/net/green0/address)
|
||||
fi
|
||||
|
||||
if [ "$TYPE" == "pppoeatm" ]; then
|
||||
TYPE="pppoe"
|
||||
fi
|
||||
if [ "$TYPE" == "pptpatm" ]; then
|
||||
TYPE="pptp"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$TYPE" == "vdsl" ]; then
|
||||
boot_mesg "Creating VLAN Interface ${DEVICE}.${INET_VLAN} ..."
|
||||
modprobe 8021q
|
||||
vconfig add ${DEVICE} ${INET_VLAN}
|
||||
if [ -n "$MAC1" ]; then
|
||||
boot_mesg "Setting mac address on ${DEVICE}.${INET_VLAN} to ${MAC1}"
|
||||
ip link set dev ${DEVICE}.${INET_VLAN} address ${MAC1}
|
||||
evaluate_retval
|
||||
fi
|
||||
PPP_NIC=${DEVICE}.${INET_VLAN}
|
||||
sleep 0.2
|
||||
ip link set ${PPP_NIC} up
|
||||
TYPE="pppoe"
|
||||
fi
|
||||
if [ "${IPTV}" == "enable" ]; then
|
||||
PIDFILE="/var/run/dhcpcd-${DEVICE}.${IPTV_VLAN}.pid"
|
||||
LEASEINFO="/var/ipfire/dhcpc/dhcpcd-${DEVICE}.${IPTV_VLAN}.info"
|
||||
# Test to see if there is a stale pid file
|
||||
if [ -f "$PIDFILE" ]; then
|
||||
ps `cat "$PIDFILE"` | grep dhcpcd > /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
rm -f /var/run/dhcpcd-${DEVICE}.${IPTV_VLAN}.pid > /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$PIDFILE" ]; then
|
||||
boot_mesg "Creating VLAN Interface ${DEVICE}.${IPTV_VLAN} ..."
|
||||
modprobe 8021q
|
||||
vconfig add ${DEVICE} ${IPTV_VLAN}
|
||||
if [ -n "$MAC2" ]; then
|
||||
boot_mesg "Setting mac address on ${DEVICE}.${IPTV_VLAN} to ${MAC2}"
|
||||
ip link set dev ${DEVICE}.${IPTV_VLAN} address ${MAC2}
|
||||
evaluate_retval
|
||||
fi
|
||||
boot_mesg -n "Starting dhcpcd on the ${DEVICE}.${IPTV_VLAN} interface..."
|
||||
/sbin/dhcpcd ${DEVICE}.${IPTV_VLAN} ${DHCP_START} >/dev/null 2>&1
|
||||
RET="$?"
|
||||
|
||||
if [ "$RET" = "0" ]; then
|
||||
. /var/ipfire/dhcpc/dhcpcd-${DEVICE}.${IPTV_VLAN}.info
|
||||
echo ""
|
||||
echo_ok
|
||||
boot_mesg " DHCP Assigned Settings for ${DEVICE}.${IPTV_VLAN}:"
|
||||
boot_mesg_flush
|
||||
boot_mesg " IP Address: $ip_address"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Hostname: $RED_DHCP_HOSTNAME"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Subnet Mask: $subnet_mask"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Default Gateway: $routers"
|
||||
boot_mesg_flush
|
||||
boot_mesg " DNS Server: $domain_name_servers"
|
||||
boot_mesg_flush
|
||||
|
||||
else
|
||||
echo ""
|
||||
$(exit "$RET")
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ "$TYPE" == "pppoe" ] || [ "$TYPE" == "pptp" ]; then
|
||||
if [ "$PPP_NIC" == "" ]; then
|
||||
boot_mesg "No device for red interface given. Check netsetup or dialprofile!" ${FAILURE}
|
||||
echo_failure
|
||||
exit 0
|
||||
fi
|
||||
boot_mesg "Bringing up the $TYPE interface on $PPP_NIC ..."
|
||||
ip addr flush dev $PPP_NIC >/dev/null 2>&1
|
||||
if [ "$TYPE" == "pptp" ]; then
|
||||
if [ "$PPTP_NICCFG" == "dhcp" ]; then
|
||||
# Test to see if there is a stale pid file
|
||||
if [ -f "$PIDFILE" ]; then
|
||||
ps `cat "$PIDFILE"` | grep dhcpcd > /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
rm -f /var/run/dhcpcd-${DEVICE}.pid > /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$PIDFILE" ]; then
|
||||
boot_mesg -n "Starting dhcpcd on the ${DEVICE} interface..."
|
||||
/sbin/dhcpcd ${DEVICE} ${DHCP_START} >/dev/null 2>&1
|
||||
RET="$?"
|
||||
|
||||
if [ "$RET" = "0" ]; then
|
||||
. /var/ipfire/dhcpc/dhcpcd-${DEVICE}.info
|
||||
echo ""
|
||||
echo_ok
|
||||
boot_mesg " DHCP Assigned Settings for ${DEVICE}:"
|
||||
boot_mesg_flush
|
||||
boot_mesg " IP Address: $ip_address"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Hostname: $RED_DHCP_HOSTNAME"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Subnet Mask: $subnet_mask"
|
||||
boot_mesg_flush
|
||||
boot_mesg " Default Gateway: $routers"
|
||||
boot_mesg_flush
|
||||
boot_mesg " DNS Server: $domain_name_servers"
|
||||
boot_mesg_flush
|
||||
/sbin/route add $PPTP_PEER gw $routers $PPP_NIC
|
||||
else
|
||||
echo ""
|
||||
$(exit "$RET")
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
else
|
||||
ip addr add $PPTP_NICCFG dev $PPP_NIC
|
||||
fi
|
||||
fi
|
||||
ip link set ${PPP_NIC} up
|
||||
if [ -n "${PPTP_ROUTE}" ]; then
|
||||
boot_mesg "Set route ${PPTP_ROUTE} to pptp server..."
|
||||
route add ${PPTP_ROUTE}
|
||||
fi
|
||||
else
|
||||
boot_mesg "Bringing up the PPP via ${TYPE} on ${COMPORT}..."
|
||||
fi
|
||||
|
||||
### ###
|
||||
### Configuring the pppd ###
|
||||
### ###
|
||||
|
||||
### Plugin Options
|
||||
#
|
||||
if [ "$TYPE" == "pppoe" ]; then
|
||||
[ "${METHOD}" == "PPPOE_PLUGIN" ] && \
|
||||
PLUGOPTS="plugin rp-pppoe.so"
|
||||
fi
|
||||
|
||||
### Synchronous Mode
|
||||
#
|
||||
#PPPOE_SYNC=-s
|
||||
#PPPD_SYNC=sync
|
||||
|
||||
### Access Concentrator Name
|
||||
#
|
||||
if [ -n "${CONCENTRATORNAME}" ]; then
|
||||
ACNAME="-C ${CONCENTRATORNAME}"
|
||||
fi
|
||||
|
||||
### Service Name
|
||||
#
|
||||
if [ -n "${SERVICENAME}" ]; then
|
||||
if [ "${METHOD}" == "PPPOE_PLUGIN" ]; then
|
||||
PLUGOPTS+=" rp_pppoe_service ${SERVICENAME}"
|
||||
else
|
||||
SERVICENAME="-S ${SERVICENAME}"
|
||||
fi
|
||||
fi
|
||||
|
||||
### Authentication Types
|
||||
#
|
||||
if [ "${AUTH}" == "pap" ]; then
|
||||
AUTH="-chap"
|
||||
elif [ "${AUTH}" == "chap" ]; then
|
||||
AUTH="-pap"
|
||||
else
|
||||
AUTH=""
|
||||
fi
|
||||
|
||||
### DNS Config
|
||||
#
|
||||
if [ "${DNS}" == "Automatic" ]; then
|
||||
DNS="usepeerdns"
|
||||
else
|
||||
DNS=""
|
||||
echo nameserver=$DNS1 > /etc/ppp/resolv.conf
|
||||
echo nameserver=$DNS2 >> /etc/ppp/resolv.conf
|
||||
fi
|
||||
|
||||
### Dial On Demand
|
||||
#
|
||||
if [ "${RECONNECTION}" != "persistent" ]; then
|
||||
if [ "${TIMEOUT}" != "0" ] && [ "${TIMEOUT}" != "" ]; then
|
||||
SECONDS=$[${TIMEOUT} * 60]
|
||||
else
|
||||
SECONDS=300
|
||||
fi
|
||||
if [ "${RECONNECTION}" == "dialondemand" ]; then
|
||||
touch /var/ipfire/red/dial-on-demand
|
||||
DEMAND="demand persist idle ${SECONDS} 10.112.112.112:10.112.112.113"
|
||||
DEMAND+=" ipcp-accept-remote ipcp-accept-local noipdefault ktune"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$TYPE" == "pppoe" ]; then
|
||||
### When using pppoe-plugin the device has to be the last option
|
||||
#
|
||||
[ "${METHOD}" == "PPPOE_PLUGIN" ] && PLUGOPTS+=" $PPP_NIC"
|
||||
fi
|
||||
|
||||
if [ "$TYPE" == "modem" ]; then
|
||||
PLUGOPTS=" /dev/${COMPORT} ${DTERATE} connect /etc/ppp/dialer lock modem crtscts"
|
||||
METHOD="PPPOE_PLUGIN"
|
||||
elif [ "$TYPE" == "serial" ]; then
|
||||
PLUGOPTS=" /dev/${COMPORT} ${DTERATE} connect /bin/true lock modem crtscts"
|
||||
METHOD="PPPOE_PLUGIN"
|
||||
fi
|
||||
|
||||
### Standard PPP options we always use
|
||||
#
|
||||
PPP_STD_OPTIONS="$PLUGOPTS $DNS defaultroute noipdefault noauth"
|
||||
PPP_STD_OPTIONS+=" default-asyncmap hide-password nodetach"
|
||||
PPP_STD_OPTIONS+=" noaccomp nodeflate nopcomp novj novjccomp"
|
||||
PPP_STD_OPTIONS+=" nobsdcomp user ${USERNAME} lcp-echo-interval 20"
|
||||
PPP_STD_OPTIONS+=" lcp-echo-failure 5 ${AUTH}"
|
||||
|
||||
if [ -n "${MTU}" ]; then
|
||||
PPP_STD_OPTIONS="${PPP_STD_OPTIONS} mtu ${MTU}"
|
||||
fi
|
||||
|
||||
if [ -n "${MRU}" ]; then
|
||||
PPP_STD_OPTIONS="${PPP_STD_OPTIONS} mru ${MRU}"
|
||||
fi
|
||||
|
||||
### Debugging
|
||||
#
|
||||
if [ "${DEBUG}" == "on" ]; then
|
||||
DEBUG="debug"
|
||||
else
|
||||
DEBUG=""
|
||||
fi
|
||||
|
||||
### PPPoE invocation
|
||||
#
|
||||
if [ "$TYPE" == "pppoe" ]; then
|
||||
PPPOE_CMD="/usr/sbin/pppoe -p /var/run/ppp-ipfire.pid.pppoe -I $PPP_NIC"
|
||||
PPPOE_CMD+=" -T 80 -U $PPPOE_SYNC $ACNAME $SERVICENAMEOPT"
|
||||
fi
|
||||
|
||||
### PPTP ###
|
||||
#
|
||||
if [ "$TYPE" == "pptp" ]; then
|
||||
PPPOE_CMD="pptp $PPTP_PEER --nolaunchpppd"
|
||||
METHOD=""
|
||||
fi
|
||||
|
||||
### Run everything
|
||||
#
|
||||
if [ "$METHOD" == "PPPOE_PLUGIN" ]; then
|
||||
/usr/sbin/pppd $PPP_STD_OPTIONS $DEBUG $DEMAND >/dev/null 2>&1 &
|
||||
evaluate_retval
|
||||
# echo PLUGIN: /usr/sbin/pppd $PPP_STD_OPTIONS $DEBUG $DEMAND
|
||||
else
|
||||
/usr/sbin/pppd pty "$PPPOE_CMD" $PPP_STD_OPTIONS $DEBUG $DEMAND $PPPD_SYNC >/dev/null 2>&1 &
|
||||
evaluate_retval
|
||||
# echo PPP: /usr/sbin/pppd pty "$PPPOE_CMD" $PPP_STD_OPTIONS $DEBUG $DEMAND $PPPD_SYNC
|
||||
fi
|
||||
## Create & Enable vnstat
|
||||
/usr/bin/vnstat -u -i ppp0 -r --enable --force > /dev/null 2>&1
|
||||
/etc/rc.d/init.d/connectd start
|
||||
# Add a NaN value to ppp0 rrd to supress spikes at reconnect
|
||||
rrdtool update $RRDLOG/collectd/localhost/interface/if_octets-ppp0.rrd \
|
||||
$(date +%s):: > /dev/null 2>&1
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
|
||||
stop)
|
||||
if [ "$TYPE" == "STATIC" ]; then
|
||||
boot_mesg "Stopping default gateway ${GATEWAY}..."
|
||||
ip route del default via ${GATEWAY} >/dev/null 2>&1
|
||||
echo_ok
|
||||
if [ "$DEVICE" != "${GREEN_DEV}" ]; then
|
||||
boot_mesg "Removing IPv4 addresses from the ${DEVICE} interface..."
|
||||
ip addr flush dev ${DEVICE}
|
||||
evaluate_retval
|
||||
fi
|
||||
run_subdir ${rc_base}/init.d/networking/red.down/
|
||||
|
||||
elif [ "$TYPE" == "PPPOE" ]; then
|
||||
boot_mesg "Bringing down the PPP interface ..."
|
||||
## Disable vnstat collection
|
||||
/usr/bin/vnstat -u -i ppp0 -r --disable > /dev/null 2>&1
|
||||
rm -f /var/ipfire/red/keepconnected
|
||||
killall -w -s TERM /usr/sbin/pppd 2>/dev/null
|
||||
evaluate_retval
|
||||
# Add a NaN value to ppp0 rrd to supress spikes at reconnect
|
||||
rrdtool update $RRDLOG/collectd/localhost/interface/if_octets-ppp0.rrd \
|
||||
$(date +%s):: > /dev/null 2>&1
|
||||
|
||||
elif [ "$TYPE" == "DHCP" ]; then
|
||||
# Check if the wlan-client is used on red.
|
||||
# To determine this we check if a wpa_supplicant is running.
|
||||
pid="$(pidof wpa_supplicant)"
|
||||
|
||||
if [ -z "${pid}" ]; then
|
||||
# Stop dhcpcd.
|
||||
dhcpcd_stop "${DEVICE}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${PPTP_ROUTE}" ]; then
|
||||
route del ${PPTP_ROUTE}
|
||||
fi
|
||||
|
||||
if [ "$DEVICE" != "${GREEN_DEV}" ] && [ "$DEVICE" != "" ]; then
|
||||
link_status=`ip link show $DEVICE.${INET_VLAN} 2> /dev/null`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if echo "${link_status}" | grep -q UP; then
|
||||
boot_mesg "Bringing down the ${DEVICE}.${INET_VLAN} interface..."
|
||||
ip link set ${DEVICE}.${INET_VLAN} down
|
||||
vconfig rem ${DEVICE}.${INET_VLAN}
|
||||
evaluate_retval
|
||||
fi
|
||||
else
|
||||
link_status=`ip link show $DEVICE 2> /dev/null`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if echo "${link_status}" | grep -q UP; then
|
||||
boot_mesg "Bringing down the ${DEVICE} interface..."
|
||||
ip link set ${DEVICE} down
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
killall -w -s KILL /usr/sbin/pppd >/dev/null 2>&1
|
||||
killall -w -s KILL pptp >/dev/null 2>&1
|
||||
killall -w -s KILL br2684ctl >/dev/null 2>&1
|
||||
|
||||
## Disable vnstat collection
|
||||
/usr/bin/vnstat -u -i ${DEVICE} -r --disable > /dev/null 2>&1
|
||||
|
||||
rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
|
||||
exit 0;
|
||||
;;
|
||||
esac
|
||||
|
||||
# End
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Update DNS forwarders for unbound
|
||||
exec /etc/init.d/unbound update-forwarders
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/local/bin/ipsecctrl D &
|
||||
|
||||
exit 0
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
[ -x /etc/init.d/miniupnpd ] && \
|
||||
/etc/init.d/miniupnpd stop &>/dev/null
|
||||
|
||||
exit 0
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/local/bin/openvpnctrl -k &
|
||||
/usr/local/bin/openvpnctrl -kn2n &
|
||||
|
||||
exit 0
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Update the static routes.
|
||||
exec /etc/rc.d/init.d/static-routes start
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec /etc/rc.d/init.d/firewall down
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# conntrack-cleanup - remove conntrack entries with the last red ipaddress #
|
||||
############################################################################
|
||||
#
|
||||
|
||||
curr_ip=`cat /var/ipfire/red/local-ipaddress 2>/dev/null`
|
||||
last_ip=`cat /var/lock/last-ipaddress 2>/dev/null`
|
||||
|
||||
if [ "$curr_ip" == "$last_ip" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -z "$curr_ip" ]; then
|
||||
echo ERROR: cannot read current IP.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -z "$last_ip" ]; then
|
||||
conntrack -D -s $last_ip 2>&1 > /dev/null
|
||||
conntrack -D -d $last_ip 2>&1 > /dev/null
|
||||
conntrack -D -r $last_ip 2>&1 > /dev/null
|
||||
conntrack -D -q $last_ip 2>&1 > /dev/null
|
||||
fi
|
||||
echo $curr_ip > /var/lock/last-ipaddress
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# If network has not fully been brought up here, we start unbound
|
||||
# so that all following scripts can rely on DNS resolution
|
||||
|
||||
pidof unbound > /dev/null
|
||||
if [ "${?}" = "0" ]; then
|
||||
# unbound is run so update the forwarders
|
||||
/etc/init.d/unbound update-forwarders
|
||||
else
|
||||
# Start unbound if it is not running, yet
|
||||
/etc/init.d/unbound start
|
||||
fi
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
[ -x /etc/init.d/miniupnpd ] && \
|
||||
/etc/init.d/miniupnpd start &>/dev/null
|
||||
|
||||
exit 0
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
### This script disables multicast on the red interface
|
||||
|
||||
IFACE=`cat /var/ipfire/red/iface 2>/dev/null | tr -d '\012'`
|
||||
|
||||
[ "$IFACE" != "" ] && ifconfig $IFACE -multicast
|
||||
|
||||
exit 0
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Update the static routes.
|
||||
exec /etc/rc.d/init.d/static-routes start
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec /etc/rc.d/init.d/firewall up
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec /usr/bin/ddns update-all
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec /usr/bin/guardianctrl reload-ignore-list 2&>/dev/null
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/vpn/settings)
|
||||
|
||||
sleep $VPN_DELAYED_START && /usr/local/bin/ipsecctrl S &
|
||||
|
||||
exit 0
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/local/bin/openvpnctrl -s > /dev/null 2>&1
|
||||
/usr/local/bin/openvpnctrl -sn2n > /dev/null 2>&1
|
||||
|
||||
exit 0
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
/etc/init.d/leds start &>/dev/null
|
||||
exit 0
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Send the fireinfo profile after first boot (if enabled)
|
||||
|
||||
INDICATION="/var/run/fireinfo"
|
||||
|
||||
if [ ! -e "${INDICATION}" ]; then
|
||||
/usr/bin/sendprofile >/dev/null 2>&1
|
||||
|
||||
touch ${INDICATION}
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get the GeoIP database if no one exists yet.
|
||||
|
||||
DIR="/usr/share/xt_geoip/*"
|
||||
|
||||
found=false
|
||||
|
||||
# Check if the directory contains any data.
|
||||
for i in $DIR; do
|
||||
# Ignore "." and ".."
|
||||
if [ -d "$i" ]; then
|
||||
found=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Download ruleset if none has been found.
|
||||
if ! ${found}; then
|
||||
/usr/local/bin/xt_geoip_update >/dev/null 2>&1 &
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
nice -n 10 /opt/pakfire/pakfire update >/dev/null 2>&1 &
|
||||
|
||||
exit 0
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/bin/bash
|
||||
########################################################################
|
||||
# Begin
|
||||
#
|
||||
# Description : wpa_supplicant Script
|
||||
#
|
||||
# Authors : IPFire Development Team <developers@ipfire.org>
|
||||
#
|
||||
# Version : 01.00
|
||||
#
|
||||
# Notes : This script starts/stops the dhclient if a WPA/WPA2
|
||||
# connection to an AP successfull has been established
|
||||
# or disconnected.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /etc/init.d/networking/functions.network
|
||||
|
||||
# Gather required information from wpa_cli.
|
||||
device="$1"
|
||||
wpa_state="$2"
|
||||
|
||||
# Check if the RED device has been configured to use DHCP or exit immediately.
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
if [ ! "${RED_TYPE}" == "DHCP" ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "${wpa_state}" in
|
||||
CONNECTED)
|
||||
# Start dhcpcd.
|
||||
dhcpcd_start "${device}"
|
||||
|
||||
exit 0
|
||||
;;
|
||||
|
||||
DISCONNECTED)
|
||||
# Stop dhcpcd.
|
||||
dhcpcd_stop "${device}"
|
||||
|
||||
exit 0
|
||||
;;
|
||||
|
||||
*)
|
||||
# When we ever got here, there is a really big problem.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user