diff options
author | Steven Barth <steven@midlink.org> | 2013-01-13 17:35:09 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2013-01-13 17:35:09 +0000 |
commit | 24df9aecc1a3e05fcbf01f2e113ad9ddc90ed7e6 (patch) | |
tree | 5c99b6e5000c8a7a959a364b49e51583ae573443 /package/network/ipv6/odhcp6c/files/dhcpv6.sh | |
parent | c5752d0129a1fe61bf3ec588dfc37c5c2e815048 (diff) | |
download | master-187ad058-24df9aecc1a3e05fcbf01f2e113ad9ddc90ed7e6.tar.gz master-187ad058-24df9aecc1a3e05fcbf01f2e113ad9ddc90ed7e6.tar.bz2 master-187ad058-24df9aecc1a3e05fcbf01f2e113ad9ddc90ed7e6.zip |
odhcp6c: Add preliminary proto-handler
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35135 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/ipv6/odhcp6c/files/dhcpv6.sh')
-rwxr-xr-x | package/network/ipv6/odhcp6c/files/dhcpv6.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh new file mode 100755 index 0000000000..14b6fb63b4 --- /dev/null +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +. /lib/functions.sh +. ../netifd-proto.sh +init_proto "$@" + +proto_dhcpv6_init_config() { + proto_config_add_string "reqaddress" + proto_config_add_string "reqprefix" + proto_config_add_string "clientid" + proto_config_add_string "reqopts" +} + +proto_dhcpv6_setup() { + local config="$1" + local iface="$2" + + local reqaddress reqprefix clientid reqopts + json_get_vars reqaddress reqprefix clientid reqopts + + + # Configure + local opts="" + [ -n "$reqaddress" ] && append opts "-N$reqaddress" + + [ -z "$reqprefix" -o "$reqprefix" = "auto" ] && reqprefix=0 + [ "$reqprefix" != "no" ] && append opts "-P$reqprefix" + + [ -n "$clientid" ] && append opts "-c$clientid" + + for opt in $reqopts; do + append opts "-r$opt" + done + + + proto_export "INTERFACE=$config" + proto_run_command "$config" odhcp6c \ + -s /lib/netifd/dhcpv6.script \ + $opts $iface +} + +proto_dhcpv6_teardown() { + local interface="$1" + proto_kill_command "$interface" +} + +add_protocol dhcpv6 + |