summaryrefslogtreecommitdiffstats
path: root/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorVinicius Coque <vinicius.coque@bluepex.com>2011-07-06 09:41:50 -0300
committerVinicius Coque <vinicius.coque@bluepex.com>2011-07-06 09:41:50 -0300
commit1623ed9700dd89ee871313add2c4947c1227cc39 (patch)
treef1809bd8552dd406bcef2cad32b982516c0262fb /etc/inc/interfaces.inc
parent4842755397c92f1c16b50b16e01b28768f8b43c1 (diff)
parentf49c41c538e718d06b44e9c2d279ba9b9580b5ff (diff)
downloadpfsense-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.inc32
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;
+}
+
?>
OpenPOWER on IntegriCloud