contrib/meshwizard: Cleanup and add ssid_scheme option

This commit is contained in:
Manuel Munz 2011-09-21 16:43:38 +00:00
parent bc8eaf6875
commit 63639d6076
11 changed files with 54 additions and 112 deletions

View file

@ -12,11 +12,21 @@ uci_remove_list_element() {
done
}
# Takes 2 arguments
# $1 = text to be displayed in the output for this section
# $2 = section (optional)
uci_commitverbose() {
echo "+ $1"
uci changes $2 | while read line; do
echo " $line"
done
uci commit $2
}
set_defaults() {
for def in $(env |grep "^$1"); do
option=${def/$1/}
uci set $2.$option
echo " ${option/=/: }"
done
}
@ -30,10 +40,6 @@ section_rename() {
uci -q rename $1.$2=$3 && msg_rename $1.$2 $1.$3 || msg_rename_error $1.2 $1.$3
}
msg_start() {
echo " Starting configuration of $1"
}
msg_cleanup() {
echo " Cleanup: Removed section $1."
}

View file

@ -23,11 +23,10 @@ config_foreach handle_dnsmasq dhcp
uci batch << EOF
set dhcp.${netrenamed}dhcp="dhcp"
set dhcp.${netrenamed}dhcp.leasetime="${dhcp_leasetime}"
set dhcp.${netrenamed}dhcp.force="1"
set dhcp.${netrenamed}dhcp.leasetime="$dhcp_leasetime"
set dhcp.${netrenamed}dhcp.force="$dhcp_force"
set dhcp.${netrenamed}dhcp.interface="${netrenamed}dhcp"
EOF
echo " leasetime: ${dhcp_leasetime}
interface: ${netrenamed}dhcp"
uci_commitverbose "Setup DHCP for $netrenamed" dhcp

View file

@ -13,19 +13,12 @@ handle_dhcp() {
config_load dhcp
config_foreach handle_dhcp dnsmasq
echo " + Setup dnsmasq"
uci set dhcp.dnsmasq.local="/$profile_suffix/"
uci set dhcp.dnsmasq.domain="$profile_suffix"
echo " local: /$profile_suffix/
domain: $profile_suffix"
config_get addnhosts dnsmasq addnhosts
if [ -z "${addnhosts/\var\/etc\/hosts.olsr/}" ]; then
uci add_list dhcp.dnsmasq.addnhosts="/var/etc/hosts.olsr"
echo " addnhosts: /var/etc/hosts.olsr"
fi
uci commit
uci_commitverbose "Setup dnsmasq" dhcp

View file

@ -19,7 +19,7 @@ handle_zonewan() {
uci set firewall.$1.local_restrict=1
fi
}
config_foreach handle_zonewan zone && echo " + Enable local_restrict for zone wan"
config_foreach handle_zonewan zone && uci_commitverbose "Enable local_restrict for zone wan" firewall
# Delete old firewall zone for freifunk
handle_fwzone() {
@ -69,8 +69,6 @@ fi
# setup freifunk firewall zone
echo " + Setup firewall zone."
# add $netrenamed and if needed ${netrenamed}dhcp to the networks for this zone
config_get network zone_freifunk network
@ -93,15 +91,10 @@ set firewall.zone_freifunk.forward="$zone_freifunk_forward"
set firewall.zone_freifunk.output="$zone_freifunk_output"
EOF
echo " network: $network
input: $zone_freifunk_input
forward: $zone_freifunk_forward
output: $zone_freifunk_output"
uci_commitverbose "Setup freifunk firewall zone" firewall
# Usually we need to setup masquerading for lan, except lan is an olsr interface or has an olsr hna
echo " + Setup masquerading rules"
handle_interface() {
config_get interface "$1" interface
if [ "$interface" == "lan" ]; then
@ -121,7 +114,7 @@ config_foreach handle_hna Hna4
currms=$(uci -q get firewall.zone_freifunk.masq_src)
if [ ! "$no_masq_lan" == "1" ]; then
uci set firewall.zone_freifunk.masq="1" && echo " Enabled masquerading." || echo -e "\033[1mWarning:\033[0m: Could not enable masquerading."
uci set firewall.zone_freifunk.masq="1"
[ -z "$(echo $currms |grep lan)" ] && uci add_list firewall.zone_freifunk.masq_src="lan"
fi
@ -137,11 +130,11 @@ for i in $networks; do
fi
done
uci_commitverbose "Setup masquerading rules" firewall
# Rules, Forwardings, advanced config and includes
# Clear firewall configuration
echo " + Setup rules, forwardings, advanced config and includes."
for config in freifunk profile_$community; do
config_load $config
@ -158,4 +151,4 @@ for config in freifunk profile_$community; do
done
done
uci commit
uci_commitverbose "Setup rules, forwardings, advanced config and includes." firewall

View file

@ -1,7 +1,6 @@
#!/bin/sh
# Sets values in /etc/config/freifunk
. /etc/functions.sh
. $dir/functions.sh
# Set community homepage
@ -11,4 +10,5 @@ if [ -n "$hp" ]; then
uci set freifunk.community.homepage="$hp"
fi
uci_commitverbose "/etc/init.d/freifunk config" freifunk

View file

@ -14,7 +14,6 @@ fi
ipaddr=$(uci get meshwizard.netconfig.$net\_ip4addr)
[ -z "$ipaddr" ] && msg_missing_value meshwizard $net\_ip4addr
[ -z "$interface_netmask" ] && interface netmask="255.255.0.0"
uci batch << EOF
@ -25,8 +24,7 @@ set network.$netrenamed.netmask="$interface_netmask"
set network.$netrenamed.dns="$interface_dns"
EOF
echo " IP address: $ipaddr"
echo " Netmask : $interface_netmask"
uci_commitverbose "Setup interface $netrenamed" network
# setup dhcp alias/interface
@ -68,10 +66,8 @@ if [ "$net_dhcp" == 1 ]; then
# Setup alias for $net
if [ "$vap" == 1 ]; then
echo " + Setup interface ${netrenamed}dhcp."
uci set network.${netrenamed}dhcp=interface
else
echo " + Setup alias interface ${netrenamed}dhcp."
uci set network.${netrenamed}dhcp=alias
uci set network.${netrenamed}dhcp.interface="$netrenamed"
fi
@ -82,10 +78,6 @@ set network.${netrenamed}dhcp.ipaddr="$START"
set network.${netrenamed}dhcp.netmask="$NETMASK"
EOF
echo " interface: $net
ipaddr: $START
netmask: $NETMASK"
fi
uci commit
uci_commitverbose "Setup interface for ${netrenamed}dhcp" network

View file

@ -5,7 +5,6 @@
net=$1
. /etc/functions.sh
. $dir/functions.sh
# Clean or delete interface defaults
@ -24,9 +23,9 @@ config_foreach handle_interfacedefaults InterfaceDefaults
# Setup new InterfaceDefaults
echo " + Setup InterfaceDefaults"
uci set olsrd.InterfaceDefaults=InterfaceDefaults
set_defaults "olsr_interfacedefaults_" olsrd.InterfaceDefaults
uci_commitverbose "Setup olsr interface defaults" olsrd
# Delete old interface for $netrenamed
handle_interface() {
@ -44,14 +43,11 @@ config_foreach handle_interface Interface
# Setup new interface for $netrenamed
echo " + Setup Interface"
uci set olsrd.$netrenamed=Interface
set_defaults "olsr_interface_" olsrd.$net
uci set olsrd.$netrenamed.interface="$netrenamed"
echo " interface: $netrenamed"
uci_commitverbose "Setup olsr interface for $netrenamed." olsrd
# If dhcp-network is inside the mesh_network then add HNA for it
dhcprange=$(uci get meshwizard.netconfig.$net\_dhcprange)
@ -63,19 +59,16 @@ uci -q delete olsrd.${netrenamed}clients
dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
if [ "$dhcpinmesh" == 1 ]; then
echo " + Setting up HNA"
uci set olsrd.${netrenamed}clients="Hna4"
eval $(sh $dir/helpers/ipcalc-cidr.sh $dhcprange)
uci set olsrd.${netrenamed}clients.netaddr="$NETWORK"
uci set olsrd.${netrenamed}clients.netmask="$NETMASK"
echo " netaddr: $NETWORK"
echo " natmask: $NETMASK"
uci_commitverbose "Setup HNA for network $dhcprange" olsrd
fi
# Delete nameservice, dyngw and httpinfo plugins
echo " + Configure Plugins"
handle_plugin() {
config_get library "$1" library
if [ "$cleanup" == 1 ]; then
@ -105,7 +98,7 @@ set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
set olsrd.olsrd_nameservice.suffix="$suffix"
EOF
echo " Nameservice Plugin configured."
uci_commitverbose "Setup olsr nameservice plugin" olsrd
# Setup dyngw_plain
@ -117,10 +110,9 @@ if [ -n "$(uci -q get olsrd.dyngw_plain.library)" ]; then
fi
if [ "$sharenet" == 1 ]; then
echo " + Setup dyngw_plain"
uci set olsrd.dyngw_plain=LoadPlugin
uci set olsrd.dyngw_plain.ignore=0
uci set olsrd.dyngw_plain.library="olsrd_dyn_gw_plain.so.0.4"
uci_commitverbose "Setup olsrd_dyngw_plain plugin"
fi
uci commit

View file

@ -27,9 +27,7 @@ set luci_splash.${netrenamed}dhcp.network="${netrenamed}dhcp"
set luci_splash.${netrenamed}dhcp.zone="freifunk"
EOF
echo " network: ${netrenamed}dhcp"
uci commit
uci_commitverbose "Setup dhcpsplash for ${netrenamed}dhcp" luci_splash
/etc/init.d/luci_splash enable

View file

@ -1,12 +1,12 @@
#!/bin/sh
# Sets values from /etc/config/freifunk and/or the community profile in /etc/config/system
. $dir/functions.sh
if [ -n "$(env | grep '^system_')" ]; then
echo "++++ Setup system"
env | grep "^system_" | sed "s/system_/uci set system.system./g" | while read line; do
eval $line
echo " $line"
done
fi
uci commit system
uci_commitverbose "System config" system

View file

@ -8,8 +8,6 @@ net="$1"
##### wifi-device #####
echo " + Setup wifi-device"
# Get the type before we delete the wifi-device
config_load wireless
config_get type $net type
@ -45,13 +43,10 @@ set wireless.${net}.type="$type"
set wireless.${net}.channel="$channel"
EOF
echo " Type: $type"
echo " Channel: $channel"
uci_commitverbose "Setup wifi device for $netrenamed" wireless
##### wifi iface
echo " + Setup wifi-iface"
# Delete old wifi-iface for $net
handle_interface() {
config_get device "$1" device
@ -75,17 +70,19 @@ set_defaults "wifi_iface_" wireless.$net\_iface
# overwrite defaults
bssid="$($dir/helpers/gen_bssid.sh $channel $community)"
ssid="$profile_ssid"
if [ "$profile_ssid_scheme" == "addchannel" ]; then
ssid="$ssid - ch$channel"
fi
uci batch << EOF
set wireless.$net\_iface.device="${net}"
set wireless.$net\_iface.network="$netrenamed"
set wireless.$net\_iface.ssid="$profile_ssid - ch$channel"
set wireless.$net\_iface.ssid="$ssid"
set wireless.$net\_iface.bssid="$bssid"
EOF
echo " device: $net
network: $netrenamed
ssid: $profile_ssid - ch$channel
bssid: $bssid"
uci_commitverbose "Setup wifi interface for $netrenamed" wireless
## VAP
ip4addr="$(uci get meshwizard.netconfig.$net\_ip4addr)"
@ -98,10 +95,6 @@ set wireless.$net\_iface_dhcp.encryption="none"
set wireless.$net\_iface_dhcp.network="${netrenamed}dhcp"
set wireless.$net\_iface_dhcp.ssid="FF-AP-$ip4addr"
EOF
echo " + Setting up VAP interface for $net
device: $net
network: ${netrenamed}dhcp
ssid: AP-$profile_ssid-$ip4addr"
uci_commitverbose "Setup VAP interface for $netrenamed" wireless
fi
uci commit

View file

@ -4,17 +4,21 @@
. /etc/functions.sh
echo "
Meshwizard 0.0.3
"
# config
export dir="/usr/bin/meshwizard"
. $dir/functions.sh
debug=1
# Rename wifi interfaces
echo "++++ Renaming wifi-devices in /etc/config/meshwizard"
echo "+ Renaming wifi-devices in /etc/config/meshwizard"
$dir/helpers/rename-wifi.sh
# Firstboot/initial config
echo "++++ Initial config"
echo "+ Initial config"
$dir/helpers/initial_config.sh
# Get community
@ -32,9 +36,8 @@ export networks
[ -z "$networks" ] && echo "Error: No networks to setup could be found in /etc/config/meshwizard, aborting now." && exit 1
echo "+++ wizard 0.0.2 +++
Community=$community
Network(s)=$networks"
echo " Community=$community
Network(s)=$networks"
# Read default values (first from /etc/config/freifunk, then from /etc/config/profile_$community,
# last will overwrite first
@ -45,17 +48,9 @@ while read line; do
export "${line//\"/}"
done < /tmp/meshwizard.tmp
# dnsmasq
echo "++++ dnsmasq config"
$dir/helpers/setup_dnsmasq.sh
# system
echo "++++ system config"
$dir/helpers/setup_system.sh
# freifunk
echo "++++ /etc/config/freifunk config"
$dir/helpers/setup_freifunk.sh
$dir/helpers/setup_dnsmasq.sh
$dir/helpers/setup_system.sh
$dir/helpers/setup_freifunk.sh
# Configure found networks
for net in $networks; do
@ -63,36 +58,17 @@ for net in $networks; do
netrenamed="${net/radio/wireless}"
export netrenamed
echo "++++ Configure interface $net"
config="network"
echo "$(msg_start $config)"
$dir/helpers/setup_network.sh $net
config="wireless"
echo "$(msg_start $config)"
$dir/helpers/setup_wifi.sh $net
config="OLSRd"
echo "$(msg_start $config)"
$dir/helpers/setup_olsrd.sh $net
net_dhcp=$(uci -q get meshwizard.netconfig.${net}_dhcp)
if [ "$net_dhcp" == 1 ]; then
config="DHCP"
echo "$(msg_start $config)"
$dir/helpers/setup_dhcp.sh $net
fi
config="luci_splash"
echo "$(msg_start $config)"
$dir/helpers/setup_splash.sh $net
config="firewall"
echo "$(msg_start $config)"
$dir/helpers/setup_firewall.sh $net
echo " Configuration of $net finished."
done
##### Reboot the router (because simply restarting services gave errors)