diff options
author | jim-p <jimp@pfsense.org> | 2011-07-01 11:38:20 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2011-07-01 11:38:20 -0400 |
commit | 2488a7e73a1527445f23b97d30cde74d1bb74738 (patch) | |
tree | fc17367994edbe8b94232b864e85942ca73ec651 /etc/inc/interfaces.inc | |
parent | da70dc36adf11666d92ab109c564c76103a3ebac (diff) | |
parent | 0fcaf4f2723c7defa1f8cd13ac3ba63c73a9d77d (diff) | |
download | pfsense-2488a7e73a1527445f23b97d30cde74d1bb74738.zip pfsense-2488a7e73a1527445f23b97d30cde74d1bb74738.tar.gz |
Merge remote branch 'upstream/master'
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r-- | etc/inc/interfaces.inc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index ecbb504..4bbc4ac 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -4062,4 +4062,36 @@ function get_vip_descr($ipaddress) { return ""; } +function interfaces_staticarp_configure($if) { + global $config, $g; + if(isset($config['system']['developerspew'])) { + $mt = microtime(); + echo "interfaces_staticarp_configure($if) being called $mt\n"; + } + + $ifcfg = $config['interfaces'][$if]; + + if (empty($if) || empty($ifcfg['if'])) + return 0; + + /* Enable staticarp, if enabled */ + if(isset($config['dhcpd'][$if]['staticarp'])) { + mwexec("/sbin/ifconfig " . escapeshellarg($ifcfg['if']) . " staticarp " ); + mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 "); + if (is_array($config['dhcpd'][$if]['staticmap'])) { + + foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + + } + + } + } else { + mwexec("/sbin/ifconfig " . escapeshellarg($ifcfg['if']) . " -staticarp " ); + mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 "); + } + + return 0; +} + ?> |