summaryrefslogtreecommitdiff
path: root/net/apipa.sh
diff options
context:
space:
mode:
Diffstat (limited to 'net/apipa.sh')
-rw-r--r--net/apipa.sh48
1 files changed, 0 insertions, 48 deletions
diff --git a/net/apipa.sh b/net/apipa.sh
deleted file mode 100644
index a4aee8a..0000000
--- a/net/apipa.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
-# Released under the 2-clause BSD license.
-
-apipa_depend()
-{
- program /sbin/arping
-}
-
-_random()
-{
- local r=${RANDOM} # checkbashisms: false positive, we handle it AFTERWARDS
- if [ -n "${r}" ]; then
- echo "${r}"
- else
- uuidgen | sed -n -e 's/[^[:digit:]]//g' -e 's/\(^.\{1,7\}\).*/\1/p'
- fi
-}
-
-apipa_start()
-{
- local iface="$1" i1= i2= addr= i=0
-
- _exists true || return 1
-
- einfo "Searching for free addresses in 169.254.0.0/16"
- eindent
-
- while [ ${i} -lt 64516 ]; do
- : $(( i1 = (_random % 255) + 1 ))
- : $(( i2 = (_random % 255) + 1 ))
-
- addr="169.254.${i1}.${i2}"
- vebegin "${addr}/16"
- if ! arping_address "${addr}"; then
- eval config_${config_index}="\"${addr}/16 broadcast 169.254.255.255\""
- : $(( config_index -= 1 ))
- veend 0
- eoutdent
- return 0
- fi
-
- : $(( i += 1 ))
- done
-
- eerror "No free address found!"
- eoutdent
- return 1
-}