ok, try this diff out then:
Index: services_dhcp.php
===================================================================
RCS file: /cvsroot/pfSense/usr/local/www/services_dhcp.php,v
retrieving revision 1.38.2.9
diff -u -r1.38.2.9 services_dhcp.php
--- services_dhcp.php 20 Feb 2006 21:02:12 -0000 1.38.2.9
+++ services_dhcp.php 25 Feb 2006 04:25:22 -0000
@@ -181,8 +181,7 @@
write_config();
/* static arp configuration */
- if (isset($config['dhcpd'][$if]['staticarp']))
- interfaces_staticarp_configure($if);
+ interfaces_staticarp_configure($if);
$retval = 0;
config_lock();
Let me know if it works properly and I'll commit it.
--Bill
On 2/24/06, Wesley K. Joyce <[EMAIL PROTECTED]> wrote:
>
>
> Okay, I think I found it. The problem is with services_dhcp.php -
>
> if($_POST['staticarp'] == "yes")
> $config['dhcpd'][$if]['staticarp'] = true;
> else
> unset($config['dhcpd'][$if]['staticarp']);
> write_config();
> /* static arp configuration */
> if
> (isset($config['dhcpd'][$if]['staticarp']))
> interfaces_staticarp_configure($if);
>
> The if statement in bold will always be false if staticarp is off (not
> checked), in otherwords unset via
> 'unset($config['dhcpd'][$if]['staticarp']);". So this
> means that 'interfaces_staticarp_configure($if);' is never
> executed when you turn off static arp, so the function
> interfaces_staticarp_configure($if) is never called, so
> it's else statement is never executed.
>
> So I would think the fix to be applied is either this
> 1.
> /* static arp configuration */
> /* if
> (isset($config['dhcpd'][$if]['staticarp'])) */
> interfaces_staticarp_configure($if);
>
> or this
> 2.
> /* static arp configuration */
> if
> (isset($config['dhcpd'][$if]['staticarp']))
> interfaces_staticarp_configure($if);
> else
> interfaces_staticarp_configure($if);
>
> I am hoping this will be corrected. Thanks.
>
> Let me know if I am posting this bug / resolution in the wrong place.
>
> ________________________________
>
> From: Wesley K. Joyce [mailto:[EMAIL PROTECTED]
> Sent: Fri 2/24/2006 11:53 PM
> To: [email protected]
> Subject: [pfSense Support] BUG : DHCP - Static ARP
>
>
>
> When I turn on the static arp feature, it executes the code in red. When I
> turn off the feature, it does not execute the code in blue. This appears to
> be why turning this off is broken, so my question is why? I don't know how
> to debug php, but the if statement looks logical.
>
> TESTING-SNAPSHOT-02-19-06
>
> /etc/inc/services.inc
>
> 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];
> /* Enable staticarp, if enabled */
> if(isset($config['dhcpd'][$if]['staticarp'])) {
> mwexec("/sbin/ifconfig " . escapeshellarg($ifcfg['if']) . "
> staticarp " );
> mwexec("/usr/sbin/arp -ad > /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 -ad > /dev/null 2>&1 ");
> }
> return 0;
> }
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]