In addition, the dhclient-script that is referenced by last patch. Note 
that the script terminates its parent, dhclient. (Which is what is 
wanted)

#!/bin/bash

ls -l /proc/$$/fd/ >/dev/console; #dbg
exec </dev/console;
exec >/dev/console;
exec 2>/dev/console;
exec 255>/dev/console;
echo Running script;

function make_resolv_conf() {
    mkdir -p /.DYNAMIC/etc;
    f="/.DYNAMIC/etc/resolv.conf";
    >"$f";
    echo -e "search $new_domain_name" >>"$f";
    for n in $new_domain_name_servers; do
        echo -e "nameserver $n" >>"$f";
    done;
}

function to_cidr() {
    case "$1" in
        0|0.0.0.0)          echo 0;;
        1|128.0.0.0)        echo 1;;
        2|192.0.0.0)        echo 2;;
        3|224.0.0.0)        echo 3;;
        4|240.0.0.0)        echo 4;;
        5|248.0.0.0)        echo 5;;
        6|252.0.0.0)        echo 6;;
        7|254.0.0.0)        echo 7;;
        8|255.0.0.0)        echo 8;;
        9|255.128.0.0)      echo 9;;
        10|255.192.0.0)     echo 10;;
        11|255.224.0.0)     echo 11;;
        12|255.240.0.0)     echo 12;;
        13|255.248.0.0)     echo 13;;
        14|255.252.0.0)     echo 14;;
        15|255.254.0.0)     echo 15;;
        16|255.255.0.0)     echo 16;;
        17|255.255.128.0)   echo 17;;
        18|255.255.192.0)   echo 18;;
        19|255.255.224.0)   echo 19;;
        20|255.255.240.0)   echo 20;;
        21|255.255.248.0)   echo 21;;
        22|255.255.252.0)   echo 22;;
        23|255.255.254.0)   echo 23;;
        24|255.255.255.0)   echo 24;;
        25|255.255.255.128) echo 25;;
        26|255.255.255.192) echo 26;;
        27|255.255.255.224) echo 27;;
        28|255.255.255.240) echo 28;;
        29|255.255.255.248) echo 29;;
        30|255.255.255.252) echo 30;;
        31|255.255.255.254) echo 31;;
        32|255.255.255.255) echo 32;;
        *)                  echo "*";;
    esac;
}

export PATH="/bin:/lib/klibc/bin:/sbin:/usr/bin:/usr/sbin";

case "$reason" in
  PREINIT)
    ip link set dev $interface up;
    ;;
  BOUND)
    mask="`to_cidr $new_subnet_mask`";
    ip addr add "$new_ip_address/$mask" brd "$new_broadcast_address" \
        dev "$interface";
    # ip route add "$new_network_number/$mask" dev "$interface" \
    #     proto kernel scope link src "$new_ip_address";
    for r in $new_routers; do
        ip route add via "$r" dev "$interface";
    done;
    [ "$new_filename" == "/pxelinux.0" -a ! -e /.DYNAMIC/.next-server ] && \
      echo -e "$new_dhcp_server_identifier" >/.DYNAMIC/.next-server;

    # Kill dhclient
    array=($(cat /proc/$$/stat))
    kill -TERM ${array[3]};
    :;
    ;;
  FAIL)
    exit 1;
    ;;
  *)
    ;;
esac;

#==============================================================================

        -`J'
-- 
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to