Misc network fixes so we work on my stable server. Splash plugin removed as splashtuils-1.4 now ships with its own.

This commit is contained in:
Roy Marples
2007-04-10 10:33:44 +00:00
parent c5ddc6ef74
commit 0c98067d57
11 changed files with 89 additions and 298 deletions

View File

@@ -6,22 +6,6 @@ ifconfig_depend() {
provide interface
}
_get_mac_address() {
local mac=$(LC_ALL=C ifconfig "${IFACE}" | \
sed -n -e 's/.* HWaddr \(..:..:..:..:..:..\).*/\1/p')
case "${mac}" in
00:00:00:00:00:00) ;;
44:44:44:44:44:44) ;;
FF:FF:FF:FF:FF:FF) ;;
"") ;;
*) echo "${mac}"; return 0 ;;
esac
return 1
}
_up() {
ifconfig "${IFACE}" up
}
@@ -54,6 +38,26 @@ _is_wireless() {
grep -Eq "^[[:space:]]*${IFACE}:[[:space:]]+" /proc/net/wireless
}
_get_mac_address() {
local mac=$(LC_ALL=C ifconfig "${IFACE}" | \
sed -n -e 's/.* HWaddr \(..:..:..:..:..:..\).*/\1/p')
case "${mac}" in
00:00:00:00:00:00) ;;
44:44:44:44:44:44) ;;
FF:FF:FF:FF:FF:FF) ;;
"") ;;
*) echo "${mac}"; return 0 ;;
esac
return 1
}
_set_mac_address() {
ifconfig "${IFACE}" hw ether "$1"
}
_get_inet_address() {
set -- $(LC_ALL=C ifconfig "${IFACE}" |
sed -n -e 's/.*inet addr:\([^ ]*\).*Mask:\([^ ]*\).*/\1 \2/p')

View File

@@ -7,21 +7,6 @@ iproute2_depend() {
after ifconfig
}
_get_mac_address() {
local mac=$(LC_ALL=C ip link show "${IFACE}" | sed -n \
-e 'y/abcdef/ABCDEF/' \
-e '/link\// s/^.*\<\(..:..:..:..:..:..\)\>.*/\1/p')
case "${mac}" in
00:00:00:00:00:00) ;;
44:44:44:44:44:44) ;;
FF:FF:FF:FF:FF:FF) ;;
"") ;;
*) echo "${mac}"; return 0 ;;
esac
return 1
}
_up() {
ip link set up dev "${IFACE}"
@@ -55,6 +40,26 @@ _is_wireless() {
grep -Eq "^[[:space:]]*${IFACE}:[[:space:]]+" /proc/net/wireless
}
_get_mac_address() {
local mac=$(LC_ALL=C ip link show "${IFACE}" | sed -n \
-e 'y/abcdef/ABCDEF/' \
-e '/link\// s/^.*\<\(..:..:..:..:..:..\)\>.*/\1/p')
case "${mac}" in
00:00:00:00:00:00) ;;
44:44:44:44:44:44) ;;
FF:FF:FF:FF:FF:FF) ;;
"") ;;
*) echo "${mac}"; return 0 ;;
esac
return 1
}
_set_mac_address() {
ip link set address "$1" dev "${IFACE}"
}
_get_inet_addresses() {
LC_ALL=C ip -family inet addr show "${IFACE}" | \
sed -n -e 's/.*inet \([^ ]*\).*/\1/p'
@@ -160,8 +165,9 @@ iproute2_pre_start() {
metric=1000
ebegin "Creating tunnel ${IFVAR}"
ip tunnel add "${tunnel}"
ip tunnel add ${tunnel} name "${IFACE}"
eend $? || return 1
_up
fi
return 0

View File

@@ -3,7 +3,7 @@
# Many thanks to all the people in the Gentoo forums for their ideas and
# motivation for me to make this and keep on improving it
_config_vars="$_config_vars essid mode associate_timeout sleep_scan preferred_aps blacklist_aps"
_config_vars="$_config_vars ssid mode associate_timeout sleep_scan preferred_aps blacklist_aps"
iwconfig_depend() {
program /sbin/iwconfig
@@ -155,8 +155,8 @@ iwconfig_setup_specific() {
fi
# Then set the SSID
if ! eval iwconfig "${IFACE}" essid "${SSID}" ; then
eerror "${IFACE} does not support setting SSID to \"${ESSID}\""
if ! iwconfig "${IFACE}" essid "${SSID}" ; then
eerror "${IFACE} does not support setting SSID to \"${SSID}\""
return 1
fi
@@ -187,7 +187,7 @@ iwconfig_wait_for_association() {
# Use sysfs if we can
if [ -e /sys/class/net/"${IFACE}"/carrier ] ; then
if [ "$(cat /sys/class/net/"${IFACE}"/carrier)" = "1" ] ; then
# Double check we have an essid. This is mainly for buggy
# Double check we have an ssid. This is mainly for buggy
# prism54 drivers that always set their carrier on :/
[ -n "$(iwgetid --raw "${IFACE}")" ] && return 0
fi
@@ -220,7 +220,7 @@ iwconfig_associate() {
if [ "${SSID}" = "any" ]; then
iwconfig "${IFACE}" ap any 2>/dev/null
unset ESSIDVAR
unset SSIDVAR
else
SSIDVAR=$(_shell_var "${SSID}")
key="$(iwconfig_get_wep_key "${mac}")"
@@ -243,9 +243,9 @@ iwconfig_associate() {
[ "${key}" != "off" ] && w="$(iwconfig_get_wep_status "${iface}")"
fi
if ! eval iwconfig "${IFACE}" essid "${SSID}" ; then
if ! iwconfig "${IFACE}" essid "${SSID}" ; then
if [ "${SSID}" != "any" ] ; then
ewarn "${IFACE} does not support setting ESSID to \"${SSID}\""
ewarn "${IFACE} does not support setting SSID to \"${SSID}\""
fi
fi
@@ -315,7 +315,7 @@ iwconfig_scan() {
if [ -z "${scan}" ] ; then
ewarn "${iface} does not support scanning"
eoutdent
eval x=\$adhoc_essid_${IFVAR}
eval x=\$adhoc_ssid_${IFVAR}
[ -n "${x}" ] && return 0
if [ -n "${preferred_aps}" ] ; then
[ "${associate_order}" = "forcepreferred" ] || \
@@ -328,9 +328,9 @@ iwconfig_scan() {
eerror "or hardcode the SSID to \"any\" and let the driver find an Access Point"
eerror " ssid_${IFVAR}=\"any\""
eerror "or configure defaulting to Ad-Hoc when Managed fails"
eerror " adhoc_essid_${IFVAR}=\"WLAN\""
eerror "or hardcode the ESSID against the interface (not recommended)"
eerror " essid_${IFVAR}=\"ESSID\""
eerror " adhoc_ssid_${IFVAR}=\"WLAN\""
eerror "or hardcode the SSID against the interface (not recommended)"
eerror " ssid_${IFVAR}=\"SSID\""
return 1
fi
@@ -507,13 +507,13 @@ iwconfig_force_preferred() {
}
iwconfig_connect_preferred() {
local essid= i=0 mode= mac= enc= freq= chan=
local ssid= i=0 mode= mac= enc= freq= chan=
eval "$(_get_array preferred_aps)"
for essid in "$@"; do
for ssid in "$@"; do
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
if [ "${e}" = "${essid}" ] ; then
if [ "${e}" = "${ssid}" ] ; then
SSID=${e}
eval mode=\$MODE_${i}
eval mac=\$MAC_${i}
@@ -531,13 +531,13 @@ iwconfig_connect_preferred() {
}
iwconfig_connect_not_preferred() {
local essid= i=0 mode= mac= enc= freq= chan= pref=false
local ssid= i=0 mode= mac= enc= freq= chan= pref=false
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
eval "$(_get_array preferred_aps)"
for essid in "$@" ; do
if [ "${e}" = "${essid}" ] ; then
for ssid in "$@" ; do
if [ "${e}" = "${ssid}" ] ; then
pref=true
break
fi
@@ -566,14 +566,17 @@ iwconfig_defaults() {
done
# Release the AP forced
# Must do ap and then essid otherwise scanning borks
# Must do ap and then ssid otherwise scanning borks
iwconfig "${IFACE}" ap off 2>/dev/null
iwconfig "${IFACE}" essid off 2>/dev/null
}
iwconfig_configure() {
local x APS
eval ESSID=\$ssid_${IFVAR}
eval SSID=\$ssid_${IFVAR}
# Support old variable
[ -z "${SSID}" ] && eval SSID=\$essid_${IFVAR}
# Setup ad-hoc mode?
eval x=\$mode_${IFVAR}
@@ -588,14 +591,14 @@ iwconfig_configure() {
return 1
fi
# Has an ESSID been forced?
if [ -n "${ESSID}" ]; then
# Has an SSID been forced?
if [ -n "${SSID}" ]; then
iwconfig_set_mode "${x}"
iwconfig_associate && return 0
[ "${ESSID}" = "any" ] && iwconfig_force_preferred && return 0
[ "${SSID}" = "any" ] && iwconfig_force_preferred && return 0
eval ESSID=\$adhoc_essid_${IFVAR}
if [ -n "${ESSID}" ]; then
eval SSID=\$adhoc_ssid_${IFVAR}
if [ -n "${SSID}" ]; then
iwconfig_setup_specific ad-hoc
return $?
fi
@@ -688,14 +691,14 @@ iwconfig_pre_start() {
fi
if iwconfig_configure ; then
save_options "ESSID" "${ESSID}"
save_options "SSID" "${SSID}"
return 0
fi
eerror "Failed to configure wireless for ${IFACE}"
iwconfig_defaults
iwconfig "${IFACE}" txpower off 2>/dev/null
unset ESSID ESSIDVAR
unset SSID SSIDVAR
_down
return 1
}

View File

@@ -1,88 +0,0 @@
# Copyright 2004-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
macchanger_depend() {
before macnet
}
_config_vars="$_config_vars mac"
macchanger_pre_start() {
# We don't change MAC addresses from background
${IN_BACKGROUND} && return 0
local mac= opts=
eval mac=\$mac_${IFVAR}
[ -z "${mac}" ] && return 0
_exists true || return 1
ebegin "Changing MAC address of ${IFACE}"
# The interface needs to be up for macchanger to work most of the time
_down
mac=$(echo "${mac}" | sed -e 'y/ABCDEF/abcdef')
case "${mac}" in
# specific mac-addr, i wish there were a shorter way to specify this
[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f])
# We don't need macchanger to change to a specific mac address
_set_mac_address "${mac}"
if eend "$?" ; then
mac=$(_get_mac_address)
eindent
einfo "changed to ${mac}"
eoutdent
return 0
fi
;;
# increment MAC address, default macchanger behavior
increment) opts="${opts}" ;;
# randomize just the ending bytes
random-ending) opts="${opts} -e" ;;
# keep the same kind of physical layer (eg fibre, copper)
random-samekind) opts="${opts} -a" ;;
# randomize to any known vendor of any physical layer type
random-anykind) opts="${opts} -A" ;;
# fully random bytes
random-full|random) opts="${opts} -r" ;;
# default case is just to pass on all the options
*) opts="${opts} ${mac}" ;;
esac
if [ ! -x /sbin/macchanger ] ; then
eerror "For changing MAC addresses, emerge net-analyzer/macchanger"
return 1
fi
mac=$(LC_ALL=C macchanger ${opts} "${IFACE}" \
| sed -n -e 's/^Faked MAC:.*\<\(..:..:..:..:..:..\)\>.*/\1/p' )
_up
# Sometimes the interface needs to be up ....
if [ -z "${mac}" ] ; then
mac=$(LC_ALL=C macchanger ${opts} "${IFACE}" \
| sed -n -e 's/^Faked MAC:.*\<\(..:..:..:..:..:..\)\>.*/\1/p' )
fi
if [ -z "${mac}" ] ; then
eend 1 "Failed to set MAC address"
return 1
fi
eend 0
eindent
einfo "changed to" "${mac}"
eoutdent
return 0
}
# vim: set ts=4 :

View File

@@ -17,9 +17,9 @@ tuntap_pre_start() {
[ -z "${tuntap}" ] && return 0
if [ ! -a /dev/net/tun ] ; then
if [ ! -e /dev/net/tun ] ; then
modprobe tun && sleep 1
if [ ! -a /dev/net/tun ] ; then
if [ ! -e /dev/net/tun ] ; then
eerror "TUN/TAP support is not present in this kernel"
return 1
fi
@@ -37,7 +37,7 @@ tuntap_pre_start() {
eval opts=\$tunctl_${IFVAR}
tunctl ${opts} -t "${IFACE}" >/dev/null
fi
eend $? && save_options tuntap "${tuntap}"
eend $? && _up && save_options tuntap "${tuntap}"
}
tuntap_post_stop() {