Skip to content

Commit

Permalink
Implement ifconfig_wlanX="HOSTAP".
Browse files Browse the repository at this point in the history
Not only this is a bit cleaner, it allows multiple instances of hostapd to be
running on the system host, useful for simultaneous dual-band WiFi.
This is similar to ifconfig_wlanX="WPA" but it uses /etc/hostapd-wlanX.conf.
Compatibility with hostapd_enable=YES/NO was kept.

Reviewed by:	adrian
  • Loading branch information
Rui Paulo authored and Rui Paulo committed Jun 26, 2013
1 parent 8ab18d3 commit 6f79f29
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
25 changes: 25 additions & 0 deletions etc/network.subr
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ ifconfig_up()
if wpaif $1; then
/etc/rc.d/wpa_supplicant start $1
_cfg=0 # XXX: not sure this should count
elif hostapif $1; then
/etc/rc.d/hostapd start $1
_cfg=0
fi

if dhcpif $1; then
Expand Down Expand Up @@ -198,6 +201,9 @@ ifconfig_down()
if wpaif $1; then
/etc/rc.d/wpa_supplicant stop $1
_cfg=0
elif hostapif $1; then
/etc/rc.d/hostapd stop $1
_cfg=0
fi

if dhcpif $1; then
Expand Down Expand Up @@ -276,6 +282,7 @@ ifconfig_getargs()
[Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ww][Pp][Aa]) ;;
[Hh][Oo][Ss][Tt][Aa][Pp]) ;;
*)
_args="$_args $_arg"
;;
Expand Down Expand Up @@ -376,6 +383,24 @@ wpaif()
return 1
}

# hostapif if
# Returns 0 if the interface is a HOSTAP interface and 1 otherwise.
hostapif()
{
local _tmpargs _arg
_tmpargs=`_ifconfig_getargs $1`

for _arg in $_tmpargs; do
case $_arg in
[Hh][Oo][Ss][Tt][Aa][Pp])
return 0
;;
esac
done

return 1
}

# afexists af
# Returns 0 if the address family is enabled in the kernel
# 1 otherwise.
Expand Down
13 changes: 10 additions & 3 deletions etc/rc.d/hostapd
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,18 @@
. /etc/rc.subr

name="hostapd"
rcvar="hostapd_enable"
command="/usr/sbin/${name}"

conf_file="/etc/${name}.conf"
pidfile="/var/run/${name}.pid"
ifn="$2"
if [ -z "$ifn" ]; then
rcvar="hostapd_enable"
conf_file="/etc/${name}.conf"
pidfile="/var/run/${name}.pid"
else
rcvar=
conf_file="/etc/${name}-${ifn}.conf"
pidfile="/var/run/${name}-${ifn}.pid"
fi

command_args="-P ${pidfile} -B ${conf_file}"
required_files="${conf_file}"
Expand Down

0 comments on commit 6f79f29

Please sign in to comment.