summaryrefslogtreecommitdiffstats
path: root/etc/rc.linkup
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@xs4all.nl>2008-11-10 21:31:58 +0000
committerSeth Mos <seth.mos@xs4all.nl>2008-11-10 21:31:58 +0000
commita3a3a6b136ea9e8072bbdde33f941dfeb35b66c3 (patch)
treeba2dd70564bb4fa2d4d39a7d51f90ec8f224644f /etc/rc.linkup
parentad3979f2580f2ddb9415131c03bc9711b8f93705 (diff)
downloadpfsense-a3a3a6b136ea9e8072bbdde33f941dfeb35b66c3.zip
pfsense-a3a3a6b136ea9e8072bbdde33f941dfeb35b66c3.tar.gz
Be smarter parsing the command line before passing it into handle_argument_group.
This prevents bogus events being logged when (dis)connecting a cable
Diffstat (limited to 'etc/rc.linkup')
-rwxr-xr-xetc/rc.linkup26
1 files changed, 21 insertions, 5 deletions
diff --git a/etc/rc.linkup b/etc/rc.linkup
index e3dfe04..c0cdff7 100755
--- a/etc/rc.linkup
+++ b/etc/rc.linkup
@@ -76,11 +76,27 @@ function handle_argument_group($argument1, $argument2) {
if ($g['booting'] == true) {
/* ignore all linkup events */
} else {
- for ($i = 1; $i <= $_SERVER['argc']; $i++) {
- $argspassed .= $_SERVER['argv'][$i] . " ";
- $argument1 = $_SERVER['argv'][$i];
- $argument2 = $_SERVER['argv'][$i+1];
- handle_argument_group($argument1, $argument2);
+ foreach($_SERVER['argv'] as $argv) {
+ switch($argv) {
+ case "start":
+ $action = "start";
+ break;
+ case "stop":
+ $action = "stop";
+ break;
+ case "/etc/rc.linkup":
+ break;
+ default:
+ $interface = convert_real_interface_to_friendly_interface_name($argv);
+ if($interface == "") {
+ unset($interface);
+ }
+ break;
+ }
+ if(($action) && ($interface)) {
+ handle_argument_group($interface, $action);
+ unset ($action, $interface);
+ }
}
}
?>
OpenPOWER on IntegriCloud