summaryrefslogtreecommitdiff
path: root/net/macchanger.sh
diff options
context:
space:
mode:
Diffstat (limited to 'net/macchanger.sh')
-rw-r--r--net/macchanger.sh92
1 files changed, 0 insertions, 92 deletions
diff --git a/net/macchanger.sh b/net/macchanger.sh
deleted file mode 100644
index 4e535ec..0000000
--- a/net/macchanger.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
-# Released under the 2-clause BSD license.
-
-macchanger_depend()
-{
- before macnet
- # no program 'macchanger', as we have partial functionality without it
-}
-
-_config_vars="$_config_vars mac"
-
-macchanger_pre_start()
-{
- # We don't change MAC addresses from background
- yesno ${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}" | tr '[:upper:]' '[:lower:]')
- local hex="[0-9a-f][0-9a-f]"
- case "${mac}" in
- # specific mac-addr
- ${hex}:${hex}:${hex}:${hex}:${hex}:${hex})
- # 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
- _up
- 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=$(/sbin/macchanger ${opts} "${IFACE}" \
- | sed -n -e 's/^Faked MAC:.*\<\(..:..:..:..:..:..\)\>.*/\U\1/p' )
- _up
-
- # Sometimes the interface needs to be up ....
- if [ -z "${mac}" ]; then
- mac=$(/sbin/macchanger ${opts} "${IFACE}" \
- | sed -n -e 's/^Faked MAC:.*\<\(..:..:..:..:..:..\)\>.*/\U\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
-}