diff options
Diffstat (limited to 'net-scripts/net.modules.d/macnet.sh')
-rw-r--r-- | net-scripts/net.modules.d/macnet.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/net-scripts/net.modules.d/macnet.sh b/net-scripts/net.modules.d/macnet.sh new file mode 100644 index 0000000..6be0a4b --- /dev/null +++ b/net-scripts/net.modules.d/macnet.sh @@ -0,0 +1,43 @@ +# Copyright (c) 2005-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Contributed by Roy Marples (uberlord@gentoo.org) +# 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 + +# void macnet_depend(void) +# +# Sets up the dependancies for the module +macnet_depend() { + before rename interface wireless + after macchanger + installed macchanger + functions interface_get_mac_address +} + +# bool macnet_start(char *iface) +# +# All interfaces and module scripts can depend on the variables function +# which returns a space seperated list of user configuration variables +# We can override each variable here from a given MAC address of the interface +# Always returns 0 +macnet_pre_start() { + local iface="$1" + + interface_exists "${iface}" || return 0 + + # We need to bring the interface up for some interfaces, otherwise the MAC + # address isn't consistent - mainly wireless cards with firmware uploading. + interface_up "${iface}" + + local mac="$(interface_get_mac_address "${iface}")" + [[ -z ${mac} ]] && return 0 + + vebegin "Configuring ${iface} for MAC address ${mac}" 2>/dev/null + mac="${mac//:/}" + configure_variables "${iface}" "${mac}" + veend 0 2>/dev/null + + return 0 +} + +# vim: set ft=sh ts=4 : |