aboutsummaryrefslogtreecommitdiff
path: root/net.Linux/apipa.sh
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-26 14:18:01 +0000
committerRoy Marples <roy@marples.name>2008-03-26 14:18:01 +0000
commitccf238f852fd0463e68d33b91f0dd55000c325e3 (patch)
treee104640ae7b25be54520c22712b34385b1c030c4 /net.Linux/apipa.sh
parent55858eca2ec678fce14b21df33d08f5aaac94bcf (diff)
Merge net.OS into net
Diffstat (limited to 'net.Linux/apipa.sh')
-rw-r--r--net.Linux/apipa.sh48
1 files changed, 0 insertions, 48 deletions
diff --git a/net.Linux/apipa.sh b/net.Linux/apipa.sh
deleted file mode 100644
index 39da392e..00000000
--- a/net.Linux/apipa.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2007-2008 Roy Marples <roy@marples.name>
-# All rights reserved. Released under the 2-clause BSD license.
-
-apipa_depend()
-{
- program /sbin/arping
-}
-
-_random()
-{
- local r=${RANDOM}
- 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=$((${config_index} - 1))
- veend 0
- eoutdent
- return 0
- fi
-
- i=$((${i} + 1))
- done
-
- eerror "No free address found!"
- eoutdent
- return 1
-}