File: udhcpc.sh

package info (click to toggle)
golang-github-containers-gvisor-tap-vsocks 0.8.1-3
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid, trixie
  • size: 800 kB
  • sloc: sh: 95; makefile: 59
file content (68 lines) | stat: -rw-r--r-- 1,575 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh
# Busybox udhcpc dispatcher script. Copyright (C) 2009 by Axel Beckert.
#
# Based on the busybox example scripts and the old udhcp source
# package default.* scripts.

RESOLV_CONF="/etc/resolv.conf"

case $1 in
    bound|renew)
    [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
    [ -n "$subnet" ] && NETMASK="netmask $subnet"
    [ -n "$mtu" ] && MTU="mtu $mtu"

    ifconfig $interface $ip $BROADCAST $NETMASK $MTU

    if [ -n "$router" ]; then
        echo "$0: Resetting default routes"
        while route del default gw 0.0.0.0 dev $interface; do :; done

        metric=0
        for i in $router; do
        if [ "$subnet" = "255.255.255.255" ]; then
            ip route add default via $i dev $interface metric $metric onlink
        else
            ip route add default via $i dev $interface metric $metric
        fi
        metric=$(($metric + 1))
        done
    fi

    # Update resolver configuration file
    R=""
    [ -n "$domain" ] && R="domain $domain
"
    for i in $dns; do
        echo "$0: Adding DNS $i"
        R="${R}nameserver $i
"
    done

    if [ -x resolvconf ]; then
        echo -n "$R" | resolvconf -a "${interface}.udhcpc"
    else
        echo -n "$R" > "$RESOLV_CONF"
    fi
    ;;

    deconfig)
    if [ -x resolvconf ]; then
        resolvconf -d "${interface}.udhcpc"
    fi
    ifconfig $interface 0.0.0.0
    ;;

    leasefail)
    echo "$0: Lease failed: $message"
    ;;

    nak)
    echo "$0: Received a NAK: $message"
    ;;

    *)
    echo "$0: Unknown udhcpc command: $1";
    exit 1;
    ;;
esac