diff options
author | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-07-06 09:41:50 -0300 |
---|---|---|
committer | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-07-06 09:41:50 -0300 |
commit | 1623ed9700dd89ee871313add2c4947c1227cc39 (patch) | |
tree | f1809bd8552dd406bcef2cad32b982516c0262fb /etc/inc/interfaces.inc | |
parent | 4842755397c92f1c16b50b16e01b28768f8b43c1 (diff) | |
parent | f49c41c538e718d06b44e9c2d279ba9b9580b5ff (diff) | |
download | pfsense-1623ed9700dd89ee871313add2c4947c1227cc39.zip pfsense-1623ed9700dd89ee871313add2c4947c1227cc39.tar.gz |
Merge remote-tracking branch 'mainline/master' into inc
Conflicts:
etc/inc/priv.defs.inc
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 0fe6bfc..5ce16b7 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -3772,4 +3772,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; +} + ?> |