summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Fonnesbeck <efonnes@gmail.com>2010-12-02 15:27:17 -0700
committerErik Fonnesbeck <efonnes@gmail.com>2010-12-02 15:40:20 -0700
commitacb0bce0454bbaeeaa419145f17bf042decab930 (patch)
tree7ab0a7b6757b6a4ae925b6de2f85872166394605
parent650cb13be26d102770c46d41dc0a540affef37a5 (diff)
downloadpfsense-acb0bce0454bbaeeaa419145f17bf042decab930.zip
pfsense-acb0bce0454bbaeeaa419145f17bf042decab930.tar.gz
Restore the original MAC address before running hostapd to work around a hostapd bug. Ticket #841
-rw-r--r--etc/inc/interfaces.inc9
1 files changed, 9 insertions, 0 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index a45ea12..04ab574 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -1896,6 +1896,7 @@ function interface_wireless_clone($realif, $wlcfg) {
pfSense_interface_rename($newif, $realif);
// FIXME: not sure what ngctl is for. Doesn't work.
// mwexec("/usr/sbin/ngctl name {$newif}: {$realif}", false);
+ file_put_contents("{$g['tmp_path']}/{$realif}_oldmac", get_interface_mac($realif));
}
return true;
}
@@ -2256,6 +2257,14 @@ EOD;
fwrite($fd_set, "{$wpa_supplicant} -B -i {$if} -c {$g['varetc_path']}/wpa_supplicant_{$if}.conf\n");
}
if ($wlcfg['mode'] == "hostap") {
+ /* restore old mac to make hostapd happy */
+ if (file_exists("{$g['tmp_path']}/{$if}_oldmac")) {
+ $if_oldmac = file_get_contents("{$g['tmp_path']}/{$if}_oldmac");
+ if (is_macaddr($if_oldmac))
+ fwrite($fd_set, "{$ifconfig} " . escapeshellarg($if) .
+ " link " . escapeshellarg($if_oldmac) . "\n");
+ }
+
fwrite($fd_set, "{$hostapd} -B {$g['varetc_path']}/hostapd_{$if}.conf\n");
}
}
OpenPOWER on IntegriCloud