diff options
author | N0YB <JunkYardMail1@Frontier.com> | 2012-12-07 22:26:28 -0800 |
---|---|---|
committer | N0YB <JunkYardMail1@Frontier.com> | 2012-12-07 22:26:28 -0800 |
commit | 25c1ebd5cb2a358477e81c30b5e73719a94e1107 (patch) | |
tree | 3d8db89eb9438533823f3c8911b3e894d3477637 /etc | |
parent | 66c73aab00fc80028a1fbf2eceec18380268c55e (diff) | |
download | pfsense-25c1ebd5cb2a358477e81c30b5e73719a94e1107.zip pfsense-25c1ebd5cb2a358477e81c30b5e73719a94e1107.tar.gz |
ARP Table Static Entries from Individual DHCP Static Mappings
Assign individual DHCP static mappings as ARP table static entries.
Useful / necessary for sending WoL magic packets from external services / sources, and for any other purpose that needs a static ARP table entry.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/interfaces.inc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 28dc04d..e9e2c95 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -4609,6 +4609,13 @@ function interfaces_staticarp_configure($if) { } else { 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) { + if (isset($arpent['arp_table_static_entry'])) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + } + } + } } return 0; |