diff options
author | Bill Marquette <billm@pfsense.org> | 2005-03-15 03:32:50 +0000 |
---|---|---|
committer | Bill Marquette <billm@pfsense.org> | 2005-03-15 03:32:50 +0000 |
commit | 5c0538e034842fb0128007a89d095fc5af82dca6 (patch) | |
tree | 17770ad213b46d014acd15c9b2b74b5480524f56 | |
parent | b7597d4e23f0a99905c6f3b87d508459876c99ec (diff) | |
download | pfsense-5c0538e034842fb0128007a89d095fc5af82dca6.zip pfsense-5c0538e034842fb0128007a89d095fc5af82dca6.tar.gz |
Support for static ARP from Mircea Rimbu
-rw-r--r-- | etc/inc/services.inc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc index cc98db1..177c783 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -179,6 +179,31 @@ EOD; return 0; } +function interfaces_staticarp_configure() { + global $config, $g; + + $lancfg = $config['interfaces']['lan']; + + /* Enable staticarp, if enabled */ + if(isset($config['staticarp']['enablestaticarp'])) { + mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) . " staticarp " ); + mwexec("/usr/sbin/arp -ad > /dev/null 2>&1 "); + if (is_array($config['dhcpd']['lan']['staticmap'])) { + + foreach ($config['dhcpd']['lan']['staticmap'] as $arpent) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + + } + + } + } else { + mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) . " -staticarp " ); + mwexec("/usr/sbin/arp -ad > /dev/null 2>&1 "); + } + + return 0; +} + function services_dhcrelay_configure() { global $config, $g; |