mirror of
https://github.com/YunoHost-Apps/hotspot_ynh.git
synced 2024-09-03 19:25:53 +02:00
Works with non-multissid devices
This commit is contained in:
parent
956440e797
commit
b39ab65086
8 changed files with 153 additions and 49 deletions
|
@ -48,13 +48,25 @@ is_nat_set() {
|
||||||
is_ip4nataddr_set() {
|
is_ip4nataddr_set() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
ip address show dev "ssid${i}" 2> /dev/null | grep -q "${ynh_ip4_nat_prefix[${i}]}.1/24"
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ip address show dev "${dev}" 2> /dev/null | grep -q "${ynh_ip4_nat_prefix[${i}]}.1/24"
|
||||||
}
|
}
|
||||||
|
|
||||||
is_ip6addr_set() {
|
is_ip6addr_set() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
ip address show dev "ssid${i}" 2> /dev/null | grep -q "${ynh_ip6_addr[${i}]}/64"
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ip address show dev "${dev}" 2> /dev/null | grep -q "${ynh_ip6_addr[${i}]}/64"
|
||||||
}
|
}
|
||||||
|
|
||||||
is_forwarding_set() {
|
is_forwarding_set() {
|
||||||
|
@ -98,14 +110,26 @@ set_nat() {
|
||||||
set_ip4nataddr() {
|
set_ip4nataddr() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
ip address add "${ynh_ip4_nat_prefix[${i}]}.1/24" dev "ssid${i}"
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ip address add "${ynh_ip4_nat_prefix[${i}]}.1/24" dev "${dev}"
|
||||||
}
|
}
|
||||||
|
|
||||||
set_ip6addr() {
|
set_ip6addr() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
ip address delete "${ynh_ip6_addr[${i}]}/64" dev tun0 &> /dev/null
|
ip address delete "${ynh_ip6_addr[${i}]}/64" dev tun0 &> /dev/null
|
||||||
ip address add "${ynh_ip6_addr[${i}]}/64" dev "ssid${i}"
|
ip address add "${ynh_ip6_addr[${i}]}/64" dev "${dev}"
|
||||||
}
|
}
|
||||||
|
|
||||||
set_forwarding() {
|
set_forwarding() {
|
||||||
|
@ -116,12 +140,18 @@ set_forwarding() {
|
||||||
start_dhcpd() {
|
start_dhcpd() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
rm -f /etc/dnsmasq.dhcpd/dhcpdv?-ssid*.conf
|
rm -f /etc/dnsmasq.dhcpd/dhcpdv?-ssid*.conf
|
||||||
|
|
||||||
if has_ip6delegatedprefix ${i}; then
|
if has_ip6delegatedprefix ${i}; then
|
||||||
cp /etc/dnsmasq.dhcpdhcpd/dhcpdv6{.conf.tpl,-ssid${i}.conf}
|
cp /etc/dnsmasq.dhcpdhcpd/dhcpdv6{.conf.tpl,-ssid${i}.conf}
|
||||||
|
|
||||||
sed "s|<TPL:WIFI_DEVICE>|ssid${i}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
sed "s|<TPL:WIFI_DEVICE>|${dev}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
||||||
sed "s|<TPL:IP6_NET>|${ynh_ip6_net[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
sed "s|<TPL:IP6_NET>|${ynh_ip6_net[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
||||||
sed "s|<TPL:IP6_DNS0>|${ynh_ip6_dns0[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
sed "s|<TPL:IP6_DNS0>|${ynh_ip6_dns0[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
||||||
sed "s|<TPL:IP6_DNS1>|${ynh_ip6_dns1[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
sed "s|<TPL:IP6_DNS1>|${ynh_ip6_dns1[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv6-ssid${i}.conf
|
||||||
|
@ -133,7 +163,7 @@ start_dhcpd() {
|
||||||
|
|
||||||
sed "s|<TPL:IP4_DNS0>|${ynh_ip4_dns0[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
sed "s|<TPL:IP4_DNS0>|${ynh_ip4_dns0[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
||||||
sed "s|<TPL:IP4_DNS1>|${ynh_ip4_dns1[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
sed "s|<TPL:IP4_DNS1>|${ynh_ip4_dns1[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
||||||
sed "s|<TPL:WIFI_DEVICE>|ssid${i}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
sed "s|<TPL:WIFI_DEVICE>|${dev}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
||||||
sed "s|<TPL:IP4_NAT_PREFIX>|${ynh_ip4_nat_prefix[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
sed "s|<TPL:IP4_NAT_PREFIX>|${ynh_ip4_nat_prefix[${i}]}|g" -i /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf
|
||||||
|
|
||||||
dnsmasq -C /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf -p0
|
dnsmasq -C /etc/dnsmasq.dhcpd/dhcpdv4-ssid${i}.conf -p0
|
||||||
|
@ -147,18 +177,12 @@ start_hostapd() {
|
||||||
|
|
||||||
sed "s|<TPL:WIFI_DEVICE>|${ynh_wifi_device}|g" -i /etc/hostapd/hostapd.conf
|
sed "s|<TPL:WIFI_DEVICE>|${ynh_wifi_device}|g" -i /etc/hostapd/hostapd.conf
|
||||||
sed "s|<TPL:WIFI_CHANNEL>|${ynh_wifi_channel}|g" -i /etc/hostapd/hostapd.conf
|
sed "s|<TPL:WIFI_CHANNEL>|${ynh_wifi_channel}|g" -i /etc/hostapd/hostapd.conf
|
||||||
|
sed "s|<TPL:N_COMMENT>||g" -i /etc/hostapd/hostapd.conf
|
||||||
iwconfig "${ynh_wifi_device}" | grep -q 'n *ESSID'
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
sed "s|<TPL:N_COMMENT>||g" -i /etc/hostapd/hostapd.conf
|
|
||||||
else
|
|
||||||
sed "s|<TPL:N_COMMENT>|#|g" -i /etc/hostapd/hostapd.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
||||||
cp /etc/hostapd/hostapd.conf{.tpl2,.tmp}
|
cp /etc/hostapd/hostapd.conf{.tpl2,.tmp}
|
||||||
|
|
||||||
sed "s|<TPL:WIFI_INTERFACE>|ssid${i}|g" -i /etc/hostapd/hostapd.conf.tmp
|
sed "s|<TPL:WIFI_INTERFACE>|hotspot${i}|g" -i /etc/hostapd/hostapd.conf.tmp
|
||||||
sed "s|<TPL:WIFI_SSID>|${ynh_wifi_ssid[${i}]}|g" -i /etc/hostapd/hostapd.conf.tmp
|
sed "s|<TPL:WIFI_SSID>|${ynh_wifi_ssid[${i}]}|g" -i /etc/hostapd/hostapd.conf.tmp
|
||||||
sed "s|<TPL:WIFI_PASSPHRASE>|${ynh_wifi_passphrase[${i}]}|g" -i /etc/hostapd/hostapd.conf.tmp
|
sed "s|<TPL:WIFI_PASSPHRASE>|${ynh_wifi_passphrase[${i}]}|g" -i /etc/hostapd/hostapd.conf.tmp
|
||||||
|
|
||||||
|
@ -192,13 +216,25 @@ unset_nat() {
|
||||||
unset_ip4nataddr() {
|
unset_ip4nataddr() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
ip address delete "${ynh_ip4_nat_prefix[${i}]}.1/24" dev "ssid${i}"
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ip address delete "${ynh_ip4_nat_prefix[${i}]}.1/24" dev "${dev}"
|
||||||
}
|
}
|
||||||
|
|
||||||
unset_ip6addr() {
|
unset_ip6addr() {
|
||||||
i=${1}
|
i=${1}
|
||||||
|
|
||||||
ip address delete "${ynh_ip6_addr[${i}]}/64" dev "ssid${i}"
|
if [ "${i}" -eq 0 ]; then
|
||||||
|
dev=${ynh_wifi_device}
|
||||||
|
else
|
||||||
|
dev="hotspot${i}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ip address delete "${ynh_ip6_addr[${i}]}/64" dev "${dev}"
|
||||||
}
|
}
|
||||||
|
|
||||||
unset_forwarding() {
|
unset_forwarding() {
|
||||||
|
@ -372,19 +408,19 @@ case "$1" in
|
||||||
|
|
||||||
# Set ipv4 NAT address
|
# Set ipv4 NAT address
|
||||||
if ! is_ip4nataddr_set ${i}; then
|
if ! is_ip4nataddr_set ${i}; then
|
||||||
echo "SSID ${i}: Set IPv4 NAT address"
|
echo "Hotspot ${i}: Set IPv4 NAT address"
|
||||||
set_ip4nataddr ${i}
|
set_ip4nataddr ${i}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set the ipv6 address
|
# Set the ipv6 address
|
||||||
if has_ip6delegatedprefix ${i} && ! is_ip6addr_set ${i}; then
|
if has_ip6delegatedprefix ${i} && ! is_ip6addr_set ${i}; then
|
||||||
echo "SSID ${i}: Set IPv6 address"
|
echo "Hotspot ${i}: Set IPv6 address"
|
||||||
set_ip6addr ${i}
|
set_ip6addr ${i}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run DHCP servers
|
# Run DHCP servers
|
||||||
if ! is_dhcpd_running ${i}; then
|
if ! is_dhcpd_running ${i}; then
|
||||||
echo "SSID ${i}: Set DHCP servers (dnsmasq)"
|
echo "Hotspot ${i}: Set DHCP servers (dnsmasq)"
|
||||||
start_dhcpd ${i}
|
start_dhcpd ${i}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -409,17 +445,17 @@ case "$1" in
|
||||||
|
|
||||||
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
||||||
if is_ip4nataddr_set ${i}; then
|
if is_ip4nataddr_set ${i}; then
|
||||||
echo "SSID ${i}: Unset IPv4 NAT address"
|
echo "Hotspot ${i}: Unset IPv4 NAT address"
|
||||||
unset_ip4nataddr ${i}
|
unset_ip4nataddr ${i}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if has_ip6delegatedprefix ${i} && is_ip6addr_set ${i}; then
|
if has_ip6delegatedprefix ${i} && is_ip6addr_set ${i}; then
|
||||||
echo "SSID ${i}: Unset IPv6 address"
|
echo "Hotspot ${i}: Unset IPv6 address"
|
||||||
unset_ip6addr ${i}
|
unset_ip6addr ${i}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if is_dhcpd_running ${i}; then
|
if is_dhcpd_running ${i}; then
|
||||||
echo "SSID ${i}: Stop DHCP servers"
|
echo "Hotspot ${i}: Stop DHCP servers"
|
||||||
stop_dhcpd ${i}
|
stop_dhcpd ${i}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -470,30 +506,30 @@ case "$1" in
|
||||||
|
|
||||||
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
for i in $(seq 0 $((${ynh_multissid} - 1))); do
|
||||||
if has_ip6delegatedprefix ${i}; then
|
if has_ip6delegatedprefix ${i}; then
|
||||||
echo "[INFO] SSID ${i}: IPv6 delegated prefix found"
|
echo "[INFO] Hotspot ${i}: IPv6 delegated prefix found"
|
||||||
echo "[INFO] SSID ${i}: IPv6 address computed from the delegated prefix: ${ynh_ip6_addr}"
|
echo "[INFO] Hotspot ${i}: IPv6 address computed from the delegated prefix: ${ynh_ip6_addr}"
|
||||||
|
|
||||||
if is_ip6addr_set ${i}; then
|
if is_ip6addr_set ${i}; then
|
||||||
echo "[OK] SSID ${i}: IPv6 address set"
|
echo "[OK] Hotspot ${i}: IPv6 address set"
|
||||||
else
|
else
|
||||||
echo "[ERR] SSID ${i}: No IPv6 address set"
|
echo "[ERR] Hotspot ${i}: No IPv6 address set"
|
||||||
exitcode=1
|
exitcode=1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "[INFO] SSID ${i}: No IPv6 delegated prefix found"
|
echo "[INFO] Hotspot ${i}: No IPv6 delegated prefix found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if is_dhcpd_running ${i}; then
|
if is_dhcpd_running ${i}; then
|
||||||
echo "[OK] SSID ${i}: DHCP servers set"
|
echo "[OK] Hotspot ${i}: DHCP servers set"
|
||||||
else
|
else
|
||||||
echo "[ERR] SSID ${i}: No DHCP servers set"
|
echo "[ERR] Hotspot ${i}: No DHCP servers set"
|
||||||
exitcode=1
|
exitcode=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if is_ip4nataddr_set ${i}; then
|
if is_ip4nataddr_set ${i}; then
|
||||||
echo "[OK] SSID ${i}: IPv4 NAT address set"
|
echo "[OK] Hotspot ${i}: IPv4 NAT address set"
|
||||||
else
|
else
|
||||||
echo "[ERR] SSID ${i}: No IPv4 NAT address set"
|
echo "[ERR] Hotspot ${i}: No IPv4 NAT address set"
|
||||||
exitcode=1
|
exitcode=1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
20
conf/iw_devices
Normal file
20
conf/iw_devices
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Wifi Hotspot app for YunoHost
|
||||||
|
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
|
||||||
|
# Contribute at https://github.com/jvaubourg/hotspot_ynh
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
echo -n $(iw dev | grep Interface | grep -v 'mon\.' | grep -v hotspot | awk '{ print $NF }') | tr ' ' \|
|
22
conf/iw_multissid
Normal file
22
conf/iw_multissid
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Wifi Hotspot app for YunoHost
|
||||||
|
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
|
||||||
|
# Contribute at https://github.com/jvaubourg/hotspot_ynh
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
phy=$(iw "${1}" info | grep wiphy | awk '{ print $NF }')
|
||||||
|
|
||||||
|
iw "phy${phy}" info | grep -A1 'valid interface combinations' | tail -n1 | sed 's/.*{.*AP.*}\s<=\s\(.*\),.*/\1/'
|
20
conf/iw_ssids
Normal file
20
conf/iw_ssids
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Wifi Hotspot app for YunoHost
|
||||||
|
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
|
||||||
|
# Contribute at https://github.com/jvaubourg/hotspot_ynh
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
echo -n hotspot0 $(iw dev | grep Interface | grep hotspot | awk '{ print $NF }') | tr ' ' \|
|
|
@ -56,7 +56,7 @@ if [ ! $? -eq 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
packages='php5-fpm sipcalc hostapd iptables wireless-tools dnsmasq'
|
packages='php5-fpm sipcalc hostapd iptables iw dnsmasq'
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# Packaged USB Wireless Device firmwares
|
# Packaged USB Wireless Device firmwares
|
||||||
|
@ -101,7 +101,7 @@ if [ -z "${ip6_net}" ]; then
|
||||||
# ip6_addr=$(bash ../conf/ipv6_compressed "${ip6_addr}")
|
# ip6_addr=$(bash ../conf/ipv6_compressed "${ip6_addr}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wifi_device=$(sudo iwconfig 2>&1 | grep 802.11 | head -n1 | awk '{ print $1 }')
|
wifi_device=$(sudo bash ../conf/iw_devices | awk -F\| '{ print $1 }')
|
||||||
|
|
||||||
if [ -z "${wifi_device}" ]; then
|
if [ -z "${wifi_device}" ]; then
|
||||||
echo "ERROR: No wifi interface found" >&2
|
echo "ERROR: No wifi interface found" >&2
|
||||||
|
@ -125,7 +125,10 @@ sudo yunohost app setting hotspot ip4_dns1 -v 80.67.169.12
|
||||||
sudo yunohost app setting hotspot ip4_nat_prefix -v 10.0.242
|
sudo yunohost app setting hotspot ip4_nat_prefix -v 10.0.242
|
||||||
sudo yunohost app setting hotspot vpnclient -v no
|
sudo yunohost app setting hotspot vpnclient -v no
|
||||||
|
|
||||||
# Install IPv6 scripts
|
# Install custom scripts
|
||||||
|
sudo install -o root -g root -m 0755 ../conf/iw_multissid /usr/local/bin/
|
||||||
|
sudo install -o root -g root -m 0755 ../conf/iw_devices /usr/local/bin/
|
||||||
|
sudo install -o root -g root -m 0755 ../conf/iw_ssids /usr/local/bin/
|
||||||
sudo install -o root -g root -m 0755 ../conf/ipv6_expanded /usr/local/bin/
|
sudo install -o root -g root -m 0755 ../conf/ipv6_expanded /usr/local/bin/
|
||||||
sudo install -o root -g root -m 0755 ../conf/ipv6_compressed /usr/local/bin/
|
sudo install -o root -g root -m 0755 ../conf/ipv6_compressed /usr/local/bin/
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,4 @@ sudo service nginx reload
|
||||||
# Remove sources
|
# Remove sources
|
||||||
sudo rm -rf /var/www/wifiadmin/
|
sudo rm -rf /var/www/wifiadmin/
|
||||||
|
|
||||||
# Remove packets
|
|
||||||
# The yunohost policy is currently to not uninstall packets (dependency problems)
|
|
||||||
## sudo apt-get --assume-yes --force-yes remove hostapd iptables sipcalc wireless-tools
|
|
||||||
## sudo apt-get --assume-yes --force-yes remove firmware-atheros atmel-firmware firmware-linux-free firmware-linux-nonfree firmware-realtek firmware-ralink firmware-libertas zd1211-firmware
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -60,12 +60,24 @@ function ipv6_compressed($ip) {
|
||||||
return $output[0];
|
return $output[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function iw_multissid($nic) {
|
||||||
|
exec('sudo iw_multissid '.escapeshellarg($nic), $output);
|
||||||
|
|
||||||
|
return $output[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function iw_devices() {
|
||||||
|
exec('sudo iw_devices', $output);
|
||||||
|
|
||||||
|
return getArray($output[0]);
|
||||||
|
}
|
||||||
|
|
||||||
function getArray($str) {
|
function getArray($str) {
|
||||||
return explode('|', $str);
|
return explode('|', $str);
|
||||||
}
|
}
|
||||||
|
|
||||||
function noneValue($str) {
|
function noneValue($str) {
|
||||||
return $str == 'none' ? '' : $str;
|
return ($str == 'none') ? '' : $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
function is_connected_through_hotspot($ip6_net, $ip4_nat_prefix) {
|
function is_connected_through_hotspot($ip6_net, $ip4_nat_prefix) {
|
||||||
|
@ -78,22 +90,18 @@ function is_connected_through_hotspot($ip6_net, $ip4_nat_prefix) {
|
||||||
|
|
||||||
dispatch('/', function() {
|
dispatch('/', function() {
|
||||||
$ssids = array();
|
$ssids = array();
|
||||||
|
$devs = iw_devices();
|
||||||
$devs_list = '';
|
$devs_list = '';
|
||||||
|
|
||||||
exec('sudo iwconfig', $devs);
|
|
||||||
|
|
||||||
$wifi_device = moulinette_get('wifi_device');
|
$wifi_device = moulinette_get('wifi_device');
|
||||||
$multissid = moulinette_get('multissid');
|
$multissid = moulinette_get('multissid');
|
||||||
$wifi_channel = moulinette_get('wifi_channel');
|
$wifi_channel = moulinette_get('wifi_channel');
|
||||||
|
|
||||||
foreach($devs AS $dev) {
|
foreach($devs AS $dev) {
|
||||||
if(preg_match('/802.11/', $dev)) {
|
$dev_multissid = iw_multissid($dev);
|
||||||
$dev = explode(' ', $dev);
|
|
||||||
$dev = $dev[0];
|
|
||||||
|
|
||||||
$active = ($dev == $wifi_device) ? 'class="active"' : '';
|
$active = ($dev == $wifi_device) ? 'class="active"' : '';
|
||||||
$devs_list .= "<li $active><a href='#'>$dev</a></li>\n";
|
$devs_list .= "<li $active data-multissid='$dev_multissid'><a href='javascript:'>$dev</a></li>\n";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$wifi_ssid = getArray(moulinette_get('wifi_ssid'));
|
$wifi_ssid = getArray(moulinette_get('wifi_ssid'));
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="panel panel-default ssid enabled" <?= $service_enabled == 0 ? 'style="display: none"' : '' ?>>
|
<div class="panel panel-default ssid enabled" <?= $service_enabled == 0 ? 'style="display: none"' : '' ?>>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title" data-label="<?= T_("SSID") ?>"><?= T_("SSID") ?> <?= $ssid['id'] + 1 ?></h3>
|
<h3 class="panel-title" data-label="<?= T_("Hotspot") ?>"><?= T_("Hotspot") ?> <?= $ssid['id'] + 1 ?></h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="nav nav-tabs nav-justified">
|
<ul class="nav nav-tabs nav-justified">
|
||||||
|
|
Loading…
Reference in a new issue