From 1a97873411ca8def43b8e7dfbdc466bedf406686 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Tue, 25 Oct 2005 23:02:22 +0000 Subject: MFC 7172 Add rc.linkup script which will be called from devd when starting or stopping a device --- etc/rc.linkup | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 etc/rc.linkup (limited to 'etc/rc.linkup') diff --git a/etc/rc.linkup b/etc/rc.linkup new file mode 100755 index 0000000..b935c2f --- /dev/null +++ b/etc/rc.linkup @@ -0,0 +1,62 @@ +#!/usr/local/bin/php -f +. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + + /* parse the configuration and include all functions used below */ + require_once("config.inc"); + require_once("functions.inc"); + + if($argv[2] == "stop") { + exec("/sbin/ifconfig {$argv[1]} delete"); + exec("/sbin/ifconfig {$argv[1]} down"); + exec("arp -da"); + } + + if($argv[2] == "start") { + exec("/sbin/ifconfig {$argv[1]} delete"); + exec("/sbin/ifconfig {$argv[1]} up"); + exec("arp -da"); + } + + if($argv[1] <> "") { + $interface = convert_real_interface_to_friendly_interface_name($argv[1]); + } else { + $curwanip = get_current_wan_address(); + $interface = "wan"; + } + + if($interface == "wan") { + interfaces_wan_configure(); + } else { + interfaces_optional_configure_if($interface); + } + + +?> \ No newline at end of file -- cgit v1.1