summaryrefslogtreecommitdiffstats
path: root/etc/rc.linkup
diff options
context:
space:
mode:
Diffstat (limited to 'etc/rc.linkup')
-rwxr-xr-xetc/rc.linkup96
1 files changed, 53 insertions, 43 deletions
diff --git a/etc/rc.linkup b/etc/rc.linkup
index aa5e0d8..f5d4034 100755
--- a/etc/rc.linkup
+++ b/etc/rc.linkup
@@ -32,15 +32,16 @@
/* parse the configuration and include all functions used below */
require_once("globals.inc");
require_once("config.inc");
-require_once("filter.inc");
-require_once("shaper.inc");
+require_once("filter.inc");
+require_once("shaper.inc");
require_once("interfaces.inc");
-if (platform_booting())
+if (platform_booting()) {
return;
+}
function handle_argument_group($iface, $argument2) {
- global $config;
+ global $config;
if (!is_array($config['interfaces'][$iface])) {
log_error("Cannot find interface configuration for {$iface}");
@@ -48,59 +49,64 @@ function handle_argument_group($iface, $argument2) {
}
if (!isset($config['interfaces'][$iface]['enable'])) {
- if (!platform_booting())
+ if (!platform_booting()) {
log_error("Linkup detected on disabled interface...Ignoring");
+ }
return;
}
$ipaddr = $config['interfaces'][$iface]['ipaddr'];
$ip6addr = $config['interfaces'][$iface]['ipaddrv6'];
$staticv4 = false;
- if (empty($ipaddr))
+ if (empty($ipaddr)) {
$staticv4 = true;
- else
+ } else {
$staticv4 = is_ipaddrv4($ipaddr);
+ }
$staticv6 = false;
- if (empty($ip6addr))
+ if (empty($ip6addr)) {
$staticv6 = true;
- else
+ } else {
$staticv6 = is_ipaddrv6($ip6addr);
+ }
if ($staticv4 === true && $staticv6 === true) {
$friendly = convert_friendly_interface_to_friendly_descr($iface);
log_error("Hotplug event detected for {$friendly}({$iface}) but ignoring since interface is configured with static IP ({$ipaddr} {$ip6addr})");
interfaces_staticarp_configure($iface);
switch ($argument2) {
- case 'start':
- case 'up':
- $iface = get_real_interface($iface);
- /* NOTE: Do not generate event for OpenVPN since the daemon does that for us. */
- if (substr($iface, 0, 4) != "ovpn")
- send_event("interface newip {$iface}");
- break;
+ case 'start':
+ case 'up':
+ $iface = get_real_interface($iface);
+ /* NOTE: Do not generate event for OpenVPN since the daemon does that for us. */
+ if (substr($iface, 0, 4) != "ovpn") {
+ send_event("interface newip {$iface}");
+ }
+ break;
}
} else {
switch ($argument2) {
- case "stop":
- case "down":
- log_error("DEVD Ethernet detached event for {$iface}");
- interface_bring_down($iface);
- break;
- case "start":
- case "up":
- log_error("DEVD Ethernet attached event for {$iface}");
- log_error("HOTPLUG: Configuring interface {$iface}");
- require_once("vpn.inc");
- require_once("captiveportal.inc");
- // Do not try to readd to bridge otherwise em(4) has problems
- interface_configure($iface, true, true);
- break;
+ case "stop":
+ case "down":
+ log_error("DEVD Ethernet detached event for {$iface}");
+ interface_bring_down($iface);
+ break;
+ case "start":
+ case "up":
+ log_error("DEVD Ethernet attached event for {$iface}");
+ log_error("HOTPLUG: Configuring interface {$iface}");
+ require_once("vpn.inc");
+ require_once("captiveportal.inc");
+ // Do not try to readd to bridge otherwise em(4) has problems
+ interface_configure($iface, true, true);
+ break;
}
}
}
if (isset($_GET['interface'])) {
- if (!empty($_GET['interface']))
+ if (!empty($_GET['interface'])) {
$realiface = $_GET['interface'];
+ }
$action = $_GET['action'];
} else {
if ($argc < 3) {
@@ -112,14 +118,14 @@ if (isset($_GET['interface'])) {
}
switch($action) {
-case "start":
-case "stop":
- break;
-default:
- log_error("HOTPLUG event: Action parameter ($action) passed is wrong - only start/stop/up/down are allowed!");
- return;
- /* NOTREACHED */
- break;
+ case "start":
+ case "stop":
+ break;
+ default:
+ log_error("HOTPLUG event: Action parameter ($action) passed is wrong - only start/stop/up/down are allowed!");
+ return;
+ /* NOTREACHED */
+ break;
}
if (!empty($realiface)) {
@@ -129,23 +135,27 @@ if (!empty($realiface)) {
}
$rclinkuplock = lock("rclinkup{$realiface}", LOCK_EX);
$interface = convert_real_interface_to_friendly_interface_name($realiface);
- if (!empty($interface))
+ if (!empty($interface)) {
handle_argument_group($interface, $action);
+ }
if ($action == 'start') {
/* Check if there is any child on this one as ppp types and trigger them */
if (is_array($config['ppps']['ppp'])) {
foreach ($config['ppps']['ppp'] as $pppidx => $ppp) {
- if ($ppp['type'] == 'ppp')
+ if ($ppp['type'] == 'ppp') {
continue;
+ }
$ports = explode(',', $ppp['ports']);
foreach ($ports as $pid => $parent_if) {
/* The loop here is because ppp types can have real and assigned interfaces as members */
$tmpiface = get_real_interface($parent_if);
- if ($tmpiface != $realiface)
+ if ($tmpiface != $realiface) {
continue;
+ }
$tmpiface = convert_real_interface_to_friendly_interface_name($ppp['if']);
- if (!empty($tmpiface))
+ if (!empty($tmpiface)) {
interface_configure($tmpiface, true, true);
+ }
}
}
}
OpenPOWER on IntegriCloud