Revision b99256c1
Added by Scott Ullrich over 15 years ago
etc/inc/interfaces.inc | ||
---|---|---|
1306 | 1306 |
// Setup wireless nic |
1307 | 1307 |
if($wlcfg['wireless']['mode'] == "hostap") |
1308 | 1308 |
$mode = "wlanmode hostap"; |
1309 |
// Create the new wlan interface. FreeBSD returns the new interface name. |
|
1310 |
// example: wlan2 |
|
1309 | 1311 |
$newif = trim(`/sbin/ifconfig wlan create wlandev {$wlcfg['if']} {$mode}`); |
1312 |
// Rename the interface to $parentnic_wlan$parentnic#: EX: ath0_wlan0 |
|
1310 | 1313 |
exec("/sbin/ifconfig wlan{$newif} name {$wlcfg['if']}_wlan{$interface_num}"); |
1311 | 1314 |
} |
1312 | 1315 |
} |
... | ... | |
1321 | 1324 |
* do not change this routine from a shell script to individul exec commands. -sullrich |
1322 | 1325 |
*/ |
1323 | 1326 |
|
1327 |
// Make read / writable (nano) |
|
1324 | 1328 |
conf_mount_rw(); |
1325 | 1329 |
|
1330 |
// Remove script file |
|
1326 | 1331 |
unlink_if_exists("{$g['tmp_path']}/{$if}_setup.sh"); |
1327 | 1332 |
|
1333 |
// Clone wireless nic if needed. |
|
1328 | 1334 |
interface_wireless_clone($if, $wl); |
1329 | 1335 |
|
1330 | 1336 |
$fd_set = fopen("/tmp/{$if}_setup.sh","w"); |
... | ... | |
1594 | 1600 |
interface_wireless_configure($realif, $wancfg, $wancfg['wireless']); |
1595 | 1601 |
|
1596 | 1602 |
if ($wancfg['spoofmac']) { |
1597 |
mwexec("/sbin/ifconfig " . escapeshellarg($wancfg['if']) .
|
|
1603 |
mwexec("/sbin/ifconfig " . escapeshellarg($realif) .
|
|
1598 | 1604 |
" link " . escapeshellarg($wancfg['spoofmac'])); |
1599 | 1605 |
} else { |
1600 |
$mac = get_interface_mac($wancfg['if']);
|
|
1606 |
$mac = get_interface_mac(get_real_interface(get_real_interface($wancfg['if'])));
|
|
1601 | 1607 |
if($mac == "ff:ff:ff:ff:ff:ff") { |
1602 | 1608 |
/* this is not a valid mac address. generate a |
1603 | 1609 |
* temporary mac address so the machine can get online. |
1604 | 1610 |
*/ |
1605 | 1611 |
echo "Generating new MAC address."; |
1606 | 1612 |
$random_mac = generate_random_mac_address(); |
1607 |
mwexec("/sbin/ifconfig " . escapeshellarg($wancfg['if']) .
|
|
1613 |
mwexec("/sbin/ifconfig " . escapeshellarg(get_real_interface($wancfg['if'])) .
|
|
1608 | 1614 |
" link " . escapeshellarg($random_mac)); |
1609 | 1615 |
$wancfg['spoofmac'] = $random_mac; |
1610 | 1616 |
write_config(); |
... | ... | |
1614 | 1620 |
|
1615 | 1621 |
/* media */ |
1616 | 1622 |
if ($wancfg['media'] || $wancfg['mediaopt']) { |
1617 |
$cmd = "/sbin/ifconfig " . escapeshellarg($wancfg['if']);
|
|
1623 |
$cmd = "/sbin/ifconfig " . escapeshellarg(get_real_interface($wancfg['if']));
|
|
1618 | 1624 |
if ($wancfg['media']) |
1619 | 1625 |
$cmd .= " media " . escapeshellarg($wancfg['media']); |
1620 | 1626 |
if ($wancfg['mediaopt']) |
... | ... | |
1662 | 1668 |
file_put_contents("/tmp/{$realif}_router", $wancfg['gateway']); |
1663 | 1669 |
} |
1664 | 1670 |
if($wancfg['if']) |
1665 |
interfaces_bring_up($wancfg['if']);
|
|
1671 |
interfaces_bring_up(get_real_interface($wancfg['if']));
|
|
1666 | 1672 |
else |
1667 | 1673 |
log_error("Could not bring wancfg['if'] up -- variable not defined in interface_configure()"); |
1668 | 1674 |
|
... | ... | |
1685 | 1691 |
interface_bridge_configure($bridge); |
1686 | 1692 |
} |
1687 | 1693 |
|
1688 |
/* XXX: Shouldn't the caller do all this reconfiguring?! */ |
|
1689 | 1694 |
if ($interface == "lan") |
1690 | 1695 |
/* make new hosts file */ |
1691 | 1696 |
system_hosts_generate(); |
... | ... | |
1715 | 1720 |
} |
1716 | 1721 |
} |
1717 | 1722 |
|
1718 |
|
|
1719 | 1723 |
unmute_kernel_msgs(); |
1720 | 1724 |
|
1721 | 1725 |
return 0; |
... | ... | |
2274 | 2278 |
$dev = $config['interfaces'][$if]['serialport']; |
2275 | 2279 |
$ps = trim(`ps awux | grep -v grep | grep "$dev" | awk '{ print \$2 }'`); |
2276 | 2280 |
if($ps) { |
2277 |
$int = trim(`ifconfig | grep -v grep | grep -B2 "$ps" | head -n1 | cut -d: -f1`); |
|
2281 |
$int = trim(`/sbin/ifconfig | grep -v grep | grep -B2 "$ps" | head -n1 | cut -d: -f1`);
|
|
2278 | 2282 |
if($int) { |
2279 | 2283 |
$wanif = $int; |
2280 | 2284 |
break; |
... | ... | |
2284 | 2288 |
|
2285 | 2289 |
$cfg = $config['interfaces'][$if]; |
2286 | 2290 |
|
2291 |
// Wireless cloned NIC support (FreeBSD 8+) |
|
2292 |
// interface name format: $parentnic_wlanparentnic# |
|
2293 |
// example: ath0_wlan0 |
|
2287 | 2294 |
if(is_interface_wireless($interface)) { |
2288 | 2295 |
$interface_num = substr($cfg['if'], 3); |
2289 | 2296 |
$wanif = $cfg['if'] . "_wlan" . $interface_num; |
... | ... | |
2296 | 2303 |
} |
2297 | 2304 |
|
2298 | 2305 |
switch ($cfg['ipaddr']) { |
2299 |
case "carpdev-dhcp": |
|
2300 |
$viparr = &$config['virtualip']['vip']; |
|
2301 |
$counter = 0; |
|
2302 |
if(is_array($viparr)) |
|
2303 |
foreach ($viparr as $vip) { |
|
2304 |
if ($vip['mode'] == "carpdev-dhcp") { |
|
2305 |
if($vip['interface'] == $if) { |
|
2306 |
$wanif = "carp{$counter}"; |
|
2307 |
break; |
|
2308 |
} |
|
2309 |
$counter++; |
|
2310 |
} else if ($vip['mode'] = "carp") |
|
2311 |
$counter++; |
|
2306 |
case "carpdev-dhcp": |
|
2307 |
$viparr = &$config['virtualip']['vip']; |
|
2308 |
$counter = 0; |
|
2309 |
if(is_array($viparr)) |
|
2310 |
foreach ($viparr as $vip) { |
|
2311 |
if ($vip['mode'] == "carpdev-dhcp") { |
|
2312 |
if($vip['interface'] == $if) { |
|
2313 |
$wanif = "carp{$counter}"; |
|
2314 |
break; |
|
2315 |
} |
|
2316 |
$counter++; |
|
2317 |
} else if ($vip['mode'] = "carp") |
|
2318 |
$counter++; |
|
2319 |
} |
|
2320 |
break; |
|
2321 |
case "pppoe": |
|
2322 |
if ($if == "wan") |
|
2323 |
$wanif = "pppoe0"; |
|
2324 |
else |
|
2325 |
$wanif = "pppoe" . substr($if,3); |
|
2326 |
break; |
|
2327 |
case "pptp": |
|
2328 |
if ($if == "wan") |
|
2329 |
$wanif = "pptp0"; |
|
2330 |
else |
|
2331 |
$wanif = "pptp" . substr($if, 3); |
|
2332 |
break; |
|
2333 |
default: |
|
2334 |
$wanif = $cfg['if']; |
|
2335 |
break; |
|
2312 | 2336 |
} |
2313 |
break; |
|
2314 |
case "pppoe": |
|
2315 |
if ($if == "wan") |
|
2316 |
$wanif = "pppoe0"; |
|
2317 |
else |
|
2318 |
$wanif = "pppoe" . substr($if,3); |
|
2319 |
break; |
|
2320 |
case "pptp": |
|
2321 |
if ($if == "wan") |
|
2322 |
$wanif = "pptp0"; |
|
2323 |
else |
|
2324 |
$wanif = "pptp" . substr($if, 3); |
|
2325 |
break; |
|
2326 |
default: |
|
2327 |
$wanif = $cfg['if']; |
|
2328 |
break; |
|
2329 |
} |
|
2330 | 2337 |
|
2331 |
break; |
|
2338 |
break;
|
|
2332 | 2339 |
} |
2333 | 2340 |
} |
2334 | 2341 |
break; |
Also available in: Unified diff
Add misc comments