Add new meshwizard (WIP)
This commit is contained in:
parent
e88fd858a1
commit
ab87896104
45 changed files with 2661 additions and 26 deletions
4
applications/luci-meshwizard/Makefile
Normal file
4
applications/luci-meshwizard/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
PO = mesh-wizard
|
||||
|
||||
include ../../build/config.mk
|
||||
include ../../build/module.mk
|
8
applications/luci-meshwizard/ipkg/postinst
Normal file
8
applications/luci-meshwizard/ipkg/postinst
Normal file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
[ -n "${IPKG_INSTROOT}" ] || {
|
||||
uci set ucitrack.meshwizard="meshwizard"
|
||||
uci set ucitrack.meshwizard.exec="/etc/init.d/wizard restart"
|
||||
uci commit
|
||||
exit 0
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface
|
||||
|
||||
Copyright 2011 Manuel Munz <freifunk somakoma de>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
]]--
|
||||
|
||||
module "luci.controller.meshwizard"
|
||||
|
||||
function index()
|
||||
require("luci.i18n").loadc("meshwizard")
|
||||
local i18n = luci.i18n.translate
|
||||
entry({"admin", "freifunk", "meshwizard"}, cbi("freifunk/meshwizard"), i18n("Mesh Wizard"), 40)
|
||||
end
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
-- wizard rewrite wip
|
||||
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
local ip = require "luci.ip"
|
||||
|
||||
local community = "profile_" .. (uci:get("freifunk", "community", "name") or "Freifunk")
|
||||
mesh_network = ip.IPv4(uci:get_first(community, "community", "mesh_network") or "10.0.0.0/8")
|
||||
|
||||
m = Map("meshwizard", translate("Wizard"), translate("This wizard will assist you in setting up your router for Freifunk " ..
|
||||
"or another similar wireless community network."))
|
||||
--m:chain("meshwizard")
|
||||
|
||||
n = m:section(TypedSection, "netconfig", translate("Interfaces"))
|
||||
n.anonymous = true
|
||||
|
||||
-- common functions
|
||||
|
||||
function cbi_configure(device)
|
||||
local configure = n:taboption(device, Flag, device .. "_config", translate("Configure this interface"))
|
||||
end
|
||||
|
||||
function cbi_ip4addr(device)
|
||||
local ip4addr = n:taboption(device, Value, device .. "_ip4addr", translate("Mesh IP address"),
|
||||
translate("This is a unique address in the mesh (e.g. 10.1.1.1) and has to be registered at your local community."))
|
||||
ip4addr:depends(device .. "_config", 1)
|
||||
ip4addr.datatype = "ip4addr"
|
||||
function ip4addr.validate(self, value)
|
||||
local x = ip.IPv4(value)
|
||||
if mesh_network:contains(x) then
|
||||
return value
|
||||
else
|
||||
return nil, translate("The given IP address is not inside the mesh network range ") ..
|
||||
"(" .. mesh_network:string() .. ")."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function cbi_dhcp(device)
|
||||
local dhcp = n:taboption(device, Flag, device .. "_dhcp", translate("Enable DHCP"),
|
||||
translate("DHCP will automatically assign ip addresses to clients"))
|
||||
dhcp:depends(device .. "_config", 1)
|
||||
dhcp.rmempty = true
|
||||
end
|
||||
|
||||
function cbi_dhcprange(device)
|
||||
local dhcprange = n:taboption(device, Value, device .. "_dhcprange", translate("DHCP IP range"),
|
||||
translate("The IP range from which clients are assigned ip addresses (e.g. 10.1.2.1/28). " ..
|
||||
"If this is a range inside your mesh network range, then it will be announced as HNA. Any other range will use NAT. " ..
|
||||
"If left empty then the defaults from the community profile will be used."))
|
||||
dhcprange:depends(device .. "_dhcp", "1")
|
||||
dhcprange.rmempty = true
|
||||
dhcprange.datatype = "ip4addr"
|
||||
end
|
||||
-- create tabs and config for wireless
|
||||
local nets={}
|
||||
uci:foreach("wireless", "wifi-device", function(section)
|
||||
local device = section[".name"]
|
||||
table.insert(nets, device)
|
||||
end)
|
||||
|
||||
local wired_nets = {}
|
||||
uci:foreach("network", "interface", function(section)
|
||||
local device = section[".name"]
|
||||
if not util.contains(nets, device) and device ~= "loopback" then
|
||||
table.insert(nets, device)
|
||||
table.insert(wired_nets, device)
|
||||
end
|
||||
end)
|
||||
|
||||
for _, net in util.spairs(nets, function(a,b) return (nets[a] < nets[b]) end) do
|
||||
n:tab(net, net)
|
||||
end
|
||||
|
||||
-- create cbi config for wireless
|
||||
uci:foreach("wireless", "wifi-device", function(section)
|
||||
local device = section[".name"]
|
||||
local hwtype = section.type
|
||||
local syscc = section.country or uci:get(community, "wifi_device", "country") or
|
||||
uci:get("freifunk", "wifi_device", "country")
|
||||
|
||||
cbi_configure(device)
|
||||
|
||||
-- Channel selection
|
||||
|
||||
if hwtype == "atheros" then
|
||||
local cc = util.trim(sys.exec("grep -i '" .. syscc .. "' /lib/wifi/cc_translate.txt |cut -d ' ' -f 2")) or 0
|
||||
sys.exec('"echo " .. cc .. " > /proc/sys/dev/" .. device .. "/countrycode"')
|
||||
elseif hwtype == "mac80211" then
|
||||
sys.exec("iw reg set " .. syscc)
|
||||
elseif hwtype == "broadcom" then
|
||||
sys.exec ("wlc country " .. syscc)
|
||||
end
|
||||
|
||||
local chan = n:taboption(device, ListValue, device .. "_channel", translate("Channel"),
|
||||
translate("Your device and neighbouring nodes have to use the same channel."))
|
||||
chan:depends(device .. "_config", 1)
|
||||
chan:value('default')
|
||||
|
||||
for _, f in ipairs(sys.wifi.channels(device)) do
|
||||
if not f.restricted then
|
||||
chan:value(f.channel)
|
||||
end
|
||||
end
|
||||
-- IPv4 address
|
||||
cbi_ip4addr(device)
|
||||
|
||||
-- DHCP enable
|
||||
cbi_dhcp(device)
|
||||
|
||||
-- DHCP range
|
||||
cbi_dhcprange(device)
|
||||
|
||||
-- Enable VAP
|
||||
if hwtype == "atheros" then
|
||||
local vap = n:taboption(device, Flag, device .. "_vap", translate("Virtual Access Point (VAP)"),
|
||||
translate("This will setup a new virtual wireless interface in Access Point mode."))
|
||||
vap:depends(device .. "_dhcp", "1")
|
||||
vap.rmempty = true
|
||||
end
|
||||
end)
|
||||
|
||||
for _, device in pairs(wired_nets) do
|
||||
cbi_configure(device)
|
||||
cbi_ip4addr(device)
|
||||
cbi_dhcp(device)
|
||||
cbi_dhcprange(device)
|
||||
end
|
||||
|
||||
g = m:section(TypedSection, "general", translate("General Settings"))
|
||||
g.anonymous = true
|
||||
|
||||
local cleanup = g:option(Flag, "cleanup", translate("Cleanup config"),
|
||||
translate("If this is selected then config is cleaned before setting new config options."))
|
||||
cleanup.default = "1"
|
||||
|
||||
local restrict = g:option(Flag, "local_restrict", translate("Protect LAN"),
|
||||
translate("Check this to protect your LAN from other nodes or clients") .. " (" .. translate("recommended") .. ").")
|
||||
|
||||
local share = g:option(Flag, "sharenet", translate("Share your internet connection"),
|
||||
translate("Select this to allow others to use your connection to access the internet."))
|
||||
share.rmempty = true
|
||||
|
||||
--function m.on_after_commit (self)
|
||||
-- sys.call("/usr/bin/mesh-wizard/wizard.sh >/dev/null")
|
||||
--end
|
||||
|
||||
return m
|
|
@ -197,9 +197,7 @@ define Package/luci-mod-freifunk-community
|
|||
SUBMENU:=Freifunk
|
||||
TITLE:=Freifunk Community Meta-Package
|
||||
DEPENDS+= \
|
||||
+luci-lib-web +luci-app-splash \
|
||||
+luci-app-ffwizard \
|
||||
+luci-i18n-german \
|
||||
+luci-lib-web +luci-app-splash +luci-i18n-german \
|
||||
+PACKAGE_luci-mod-freifunk-community:olsrd +PACKAGE_luci-mod-freifunk-community:olsrd-mod-dyn-gw-plain \
|
||||
+PACKAGE_luci-mod-freifunk-community:olsrd-mod-txtinfo +PACKAGE_luci-mod-freifunk-community:olsrd-mod-nameservice \
|
||||
+PACKAGE_luci-mod-freifunk-community:olsrd-mod-watchdog +PACKAGE_luci-mod-freifunk-community:kmod-tun \
|
||||
|
@ -309,6 +307,9 @@ $(eval $(call application,firewall,Firmware and Portforwarding application,\
|
|||
$(eval $(call application,freifunk-policyrouting,Policy routing for mesh traffic,\
|
||||
+PACKAGE_luci-app-freifunk-policyrouting:freifunk-policyrouting +luci-mod-freifunk))
|
||||
|
||||
$(eval $(call application,meshwizard, Shellscript based wizard to setup mesh networks,\
|
||||
+meshwizard +luci-mod-freifunk))
|
||||
|
||||
$(eval $(call application,olsr,OLSR configuration and status module,\
|
||||
+luci-mod-admin-full +PACKAGE_luci-app-olsr:olsrd +PACKAGE_luci-app-olsr:olsrd-mod-txtinfo))
|
||||
|
||||
|
|
39
contrib/package/meshwizard/Makefile
Normal file
39
contrib/package/meshwizard/Makefile
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
|
||||
# This is free software, licensed under the Apache 2.0 license.
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=meshwizard
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/meshwizard
|
||||
SECTION:=luci
|
||||
CATEGORY:=LuCI
|
||||
SUBMENU:=Freifunk
|
||||
TITLE:=Shell script based wizard for Mesh networks
|
||||
DEPENDS:=+firewall
|
||||
endef
|
||||
|
||||
define Package/meshwizard/description
|
||||
A shellscript based wizard to simplify the setup of a typical mesh node (e.g. for Freifunk.net)
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/meshwizard/install
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,meshwizard))
|
7
contrib/package/meshwizard/files/etc/config/meshwizard
Normal file
7
contrib/package/meshwizard/files/etc/config/meshwizard
Normal file
|
@ -0,0 +1,7 @@
|
|||
config 'netconfig' 'netconfig'
|
||||
|
||||
config 'general' 'general'
|
||||
option 'sharenet' '0'
|
||||
option 'local_restrict' '1'
|
||||
option 'cleanup' '1'
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
uci_remove_list_element() {
|
||||
local option="$1"
|
||||
local value="$2"
|
||||
local list="$(uci get $option)"
|
||||
local elem
|
||||
|
||||
uci delete $option
|
||||
for elem in $list; do
|
||||
if [ "$elem" != "$value" ]; then
|
||||
uci add_list $option=$elem
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
set_defaults() {
|
||||
for def in $(env |grep "^$1"); do
|
||||
option=${def/$1/}
|
||||
uci set $2.$option
|
||||
echo " ${option/=/: }"
|
||||
done
|
||||
}
|
||||
|
||||
# 1 argument: section to remove
|
||||
section_cleanup() {
|
||||
uci -q delete $1 && msg_cleanup $1 || msg_cleanup_error $1
|
||||
}
|
||||
|
||||
# 3 arguements: 1=config name 2=oldname 3=newname
|
||||
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."
|
||||
}
|
||||
|
||||
msg_cleanup_error() {
|
||||
echo -e " \033[1mWarning:\033[0m Cleanup of $1 failed."
|
||||
}
|
||||
|
||||
msg_missing_value() {
|
||||
echo -e " \033[1mWarning:\033[0m Configuration option for $2 is missing in $1."
|
||||
}
|
||||
|
||||
msg_success() {
|
||||
echo " Finished."
|
||||
}
|
||||
|
||||
msg_error() {
|
||||
echo " \033[1mError: \033[0mThere was a problem."
|
||||
}
|
||||
|
||||
msg_rename() {
|
||||
echo " Renamed unnamed section $1 to $2."
|
||||
}
|
||||
|
||||
msg_rename_error() {
|
||||
echo " \033[1mWarning:\033[0m Could not rename $1 to $2."
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
# Checks whether a netrange is inside another netrange, returns 1 if true
|
||||
# Takes two arguments: $1: net from which we want to know if it is inside $2
|
||||
# nets need to be given in CIDR notation
|
||||
|
||||
dir=$(dirname $0)
|
||||
|
||||
awk -f $dir/common.awk -f - $* <<EOF
|
||||
BEGIN {
|
||||
|
||||
slpos=index(ARGV[1],"/")
|
||||
ipaddr=ip2int(substr(ARGV[1],0,slpos-1))
|
||||
netmask=compl(2**(32-int(substr(ARGV[1],slpos+1)))-1)
|
||||
network=and(ipaddr,netmask)
|
||||
broadcast=or(network,compl(netmask))
|
||||
|
||||
slpos2=index(ARGV[2],"/")
|
||||
ipaddr2=ip2int(substr(ARGV[2],0,slpos2-1))
|
||||
netmask2=compl(2**(32-int(substr(ARGV[2],slpos2+1)))-1)
|
||||
network2=and(ipaddr2,netmask2)
|
||||
broadcast2=or(network2,compl(netmask2))
|
||||
|
||||
if (network >= network2) {
|
||||
if (network <= broadcast2) {
|
||||
if (broadcast <= broadcast2) {
|
||||
print "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
|
@ -0,0 +1,20 @@
|
|||
function bitcount(c) {
|
||||
c=and(rshift(c, 1),0x55555555)+and(c,0x55555555)
|
||||
c=and(rshift(c, 2),0x33333333)+and(c,0x33333333)
|
||||
c=and(rshift(c, 4),0x0f0f0f0f)+and(c,0x0f0f0f0f)
|
||||
c=and(rshift(c, 8),0x00ff00ff)+and(c,0x00ff00ff)
|
||||
c=and(rshift(c,16),0x0000ffff)+and(c,0x0000ffff)
|
||||
return c
|
||||
}
|
||||
|
||||
function ip2int(ip) {
|
||||
for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x])
|
||||
return ret
|
||||
}
|
||||
|
||||
function int2ip(ip,ret,x) {
|
||||
ret=and(ip,255)
|
||||
ip=rshift(ip,8)
|
||||
for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++);
|
||||
return ret
|
||||
}
|
33
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh
Executable file
33
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
# create essid from channel, takes two args:
|
||||
# $1 = channel (integer)
|
||||
# $2 = community (optional)
|
||||
channel=$1
|
||||
community=$2
|
||||
|
||||
. /etc/functions.sh
|
||||
|
||||
|
||||
# Try to get BSSID from profile first
|
||||
config_load profile_$community
|
||||
config_get bssid bssidscheme $channel
|
||||
|
||||
if [ -z "$bssid" ]; then
|
||||
case $channel in
|
||||
[1-9])
|
||||
bssid="$(printf "%X\n" $channel)2:CA:FF:EE:BA:BE"
|
||||
;;
|
||||
1[0-4])
|
||||
bssid="$(printf "%X\n" $channel)2:CA:FF:EE:BA:BE"
|
||||
;;
|
||||
[3-9][0-9])
|
||||
bssid="00:$channel:CA:FF:EE:EE"
|
||||
;;
|
||||
1[0-9][0-9])
|
||||
bssid="${channel/1/01:}:CA:FF:EE:EE"
|
||||
;;
|
||||
*) bssid="02:CA:FF:EE:BA:BE"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
echo $bssid
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
# generates a dhcp-ip and netrange from a given ip/subnet
|
||||
# takes 2 arguments:
|
||||
# $1: Ip Address (of the Interface for which we want to generate an ip)
|
||||
|
||||
echo "$1" | awk 'BEGIN { FS = "." } ; { print "6."$3"."$4".1" }'
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
# This is only run once (usually after flashing an image from the imagebuilder)
|
||||
# It sets up the initial config for this node.
|
||||
|
||||
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
### System config
|
||||
|
||||
config_load system
|
||||
|
||||
# Rename system config
|
||||
handle_system() {
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename system $1 system
|
||||
fi
|
||||
}
|
||||
config_foreach handle_system system
|
||||
|
||||
if [ -n "$(uci -q get meshwizard.system)" ]; then
|
||||
echo " + Setup system"
|
||||
uci show meshwizard.system | sed 's/^meshwizard/uci set system/g' | while read line; do
|
||||
eval $line
|
||||
echo " $line"
|
||||
done
|
||||
uci -q delete meshwizard.system
|
||||
fi
|
||||
|
||||
if [ -n "$(uci -q get meshwizard.community)" ]; then
|
||||
echo " + Setup community"
|
||||
uci show meshwizard.community | sed 's/^meshwizard/freifunk/g' | while read line; do
|
||||
eval uci set $line
|
||||
echo " $line"
|
||||
done
|
||||
uci -q delete meshwizard.community
|
||||
fi
|
||||
|
||||
if [ -n "$(uci -q get meshwizard.contact)" ]; then
|
||||
echo " + Setup contact"
|
||||
uci show meshwizard.contact | sed 's/^meshwizard/freifunk/g' | while read line; do
|
||||
eval uci set $line
|
||||
echo " $line"
|
||||
done
|
||||
uci -q delete meshwizard.contact
|
||||
fi
|
||||
|
||||
if [ -n "$(uci -q get meshwizard.luci_main)" ]; then
|
||||
echo " + Setup luci"
|
||||
uci show meshwizard.luci_main |sed -e 's/^meshwizard/luci/g' -e 's/luci_main/main/' | while read line; do
|
||||
eval uci set $line
|
||||
echo " $line"
|
||||
done
|
||||
uci -q delete meshwizard.luci_main
|
||||
fi
|
||||
|
||||
uci commit
|
||||
|
||||
|
41
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/ipcalc-cidr.sh
Executable file
41
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/ipcalc-cidr.sh
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh
|
||||
dir=$(dirname $0)
|
||||
awk -f $dir/common.awk -f - $* <<EOF
|
||||
BEGIN {
|
||||
slpos=index(ARGV[1],"/")
|
||||
if (slpos == 0) {
|
||||
ipaddr=ip2int(ARGV[1])
|
||||
netmask=ip2int(ARGV[2])
|
||||
} else {
|
||||
ipaddr=ip2int(substr(ARGV[1],0,slpos-1))
|
||||
netmask=compl(2**(32-int(substr(ARGV[1],slpos+1)))-1)
|
||||
ARGV[4]=ARGV[3]
|
||||
ARGV[3]=ARGV[2]
|
||||
}
|
||||
|
||||
network=and(ipaddr,netmask)
|
||||
broadcast=or(network,compl(netmask))
|
||||
|
||||
start=or(network,and(ip2int(ARGV[3]),compl(netmask)))
|
||||
limit=network+1
|
||||
if (start<limit) start=limit
|
||||
|
||||
end=start+ARGV[4]
|
||||
limit=or(network,compl(netmask))-1
|
||||
if (end>limit) end=limit
|
||||
|
||||
print "IP="int2ip(ipaddr)
|
||||
print "NETMASK="int2ip(netmask)
|
||||
print "BROADCAST="int2ip(broadcast)
|
||||
print "NETWORK="int2ip(network)
|
||||
print "PREFIX="32-bitcount(compl(netmask))
|
||||
|
||||
# range calculations:
|
||||
# ipcalc <ip> <netmask> <start> <num>
|
||||
|
||||
if (ARGC > 3) {
|
||||
print "START="int2ip(start)
|
||||
print "END="int2ip(end)
|
||||
}
|
||||
}
|
||||
EOF
|
20
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
Executable file
20
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
# This reads the settings we need to have to configure everything
|
||||
# Argument $1: community
|
||||
|
||||
community="$1"
|
||||
|
||||
# reads variables from uci files, parameter $1 is the section
|
||||
get_var() {
|
||||
uci -q show $1 | cut -d "." -f 2-100 |grep "\." | sed -e 's/^\([a-z_]*\)\./\1_/g' -e 's/=\(.*\)$/="\1"/g'
|
||||
}
|
||||
|
||||
# read default values from /etc/config/freifunk
|
||||
for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults zone_freifunk include; do
|
||||
get_var freifunk.$v
|
||||
done
|
||||
|
||||
# now read all values from the selected community profile, will override some values from the defaults before
|
||||
for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults profile zone_freifunk include; do
|
||||
get_var profile_$community.$v
|
||||
done
|
43
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
Executable file
43
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
# This script renames IB_wifi_ interface names into real interface names used on this system.
|
||||
# E.g. wireless.IB_wifi0 would become wireless.wifi0 on madwifi and wireless.radio0 on mac80211
|
||||
|
||||
posIB=-1
|
||||
|
||||
IBwifis="$(uci show meshwizard.netconfig | grep -v 'netconfig=netconfig' | sed 's/meshwizard.netconfig\.\(IB_wifi.*\)_.*/\1/' |uniq)"
|
||||
|
||||
for w in $IBwifis; do
|
||||
posIB=$(( $posIB + 1 ))
|
||||
export IB_wifi$posIB="$w"
|
||||
done
|
||||
|
||||
pos=0
|
||||
syswifis="$(uci show wireless |grep wifi-device | sed 's/wireless\.\(.*\)=.*/\1/' |uniq)"
|
||||
|
||||
for s in $syswifis; do
|
||||
export syswifi$pos="$s"
|
||||
pos=$(( $pos + 1 ))
|
||||
done
|
||||
|
||||
for i in `seq 0 $posIB`; do
|
||||
IBwifi=$(eval echo \$IB_wifi$i)
|
||||
syswifi=$(eval echo \$syswifi$i)
|
||||
|
||||
if [ -n "$syswifi" ]; then
|
||||
case $IBwifi in
|
||||
IB_wifi* )
|
||||
# replace IB_wifi_* with actual wifi interface names, delete old ones first
|
||||
uci show meshwizard.netconfig | grep $IBwifi | while read line; do
|
||||
oldline=$(echo $line | cut -d "=" -f 1)
|
||||
uci set $oldline=""
|
||||
newline=$(echo $line |sed "s/$IBwifi/$syswifi/g")
|
||||
uci set $newline
|
||||
done
|
||||
;;
|
||||
esac
|
||||
unset IBwifi
|
||||
unset syswifi
|
||||
fi
|
||||
done
|
||||
|
||||
uci commit
|
33
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dhcp.sh
Executable file
33
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dhcp.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
# Sets up the dhcp part of dnsmasq
|
||||
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
net="$1"
|
||||
|
||||
handle_dnsmasq() {
|
||||
config_get interface "$1" interface
|
||||
if [ "$interface" == "${netrenamed}dhcp" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup dhcp.$1
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename dhcp $1 ${netrenamed}dhcp
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
config_load dhcp
|
||||
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.interface="${netrenamed}dhcp"
|
||||
EOF
|
||||
|
||||
echo " leasetime: ${dhcp_leasetime}
|
||||
interface: ${netrenamed}dhcp"
|
||||
|
31
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dnsmasq.sh
Executable file
31
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dnsmasq.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
# Set dnsmasq config
|
||||
handle_dhcp() {
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename dhcp $1 dnsmasq
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
|
156
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall.sh
Executable file
156
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall.sh
Executable file
|
@ -0,0 +1,156 @@
|
|||
#!/bin/sh
|
||||
# This will add $net to the zone firewall (and remove it from other zones where it is referenced)
|
||||
# It will also setup rules defined in /etc/config/freifunk and /etc/config/profile_<community>
|
||||
# Arg $1 = $net
|
||||
|
||||
net=$1
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
config_load firewall
|
||||
|
||||
# Get some variables
|
||||
type="$(uci -q get wireless.$net.type)"
|
||||
vap="$(uci -q get meshwizard.netconfig.$net\_vap)"
|
||||
lan_ip="$(uci -q get network.lan.ipaddr)"
|
||||
lan_mask="$(uci -q get network.lan.netmask)"
|
||||
|
||||
# Delete old firewall zone for freifunk
|
||||
handle_fwzone() {
|
||||
config_get name "$1" name
|
||||
config_get network "$1" network
|
||||
|
||||
if [ "$2" == "zoneconf" ]; then
|
||||
# clean zone
|
||||
if [ "$name" == "freifunk" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup firewall.$1
|
||||
else
|
||||
# rename section if unnamed
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename firewall $1 zone_freifunk
|
||||
fi
|
||||
fi
|
||||
else
|
||||
|
||||
if [ "$name" == "$netrenamed" ]; then
|
||||
section_cleanup firewall.$1
|
||||
fi
|
||||
if [ -n "$netrenamed" -a -n "$(echo $network | grep $netrenamed)" ] && [ ! "$name" == "freifunk" ]; then
|
||||
echo " Removed $netrenamed from firewall zone $name."
|
||||
network_new=$(echo $network | sed -e 's/'$netrenamed'//' -e 's/^ //' -e 's/ / /' -e 's/ $//')
|
||||
uci set firewall.$1.network="$network_new"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# clean fw_rule, fw_forwarding, include and advanced
|
||||
for option in src tcp_ecn path; do
|
||||
config_get $option $1 $option
|
||||
done
|
||||
if [ "$src" == "freifunk" -o "$path" == "/etc/firewall.freifunk" -o -n "$tcpecn" ]; then
|
||||
section_cleanup firewall.$1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
config_foreach handle_fwzone zone zoneconf
|
||||
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
for target in include advanced rule forwarding; do
|
||||
config_foreach handle_fwzone $target
|
||||
done
|
||||
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
|
||||
|
||||
# remove ${netrenamed}dhcp from networks list
|
||||
[ -n "$network" -a -n "$net" ] && network="${network/${netrenamed}dhcp/}"
|
||||
network=$(echo $network) # Removes leading and trailing whitespaces
|
||||
|
||||
[ -n "$netrenamed" ] && [ -z "$(echo $network | grep $netrenamed)" ] && network="$network $netrenamed"
|
||||
|
||||
if [ "$type" == "atheros" -a "$vap" == 1 ]; then
|
||||
[ -n "$netrenamed" ] && [ "$network" == "${network/${netrenamed}dhcp/}" ] && network="$network ${netrenamed}dhcp"
|
||||
fi
|
||||
|
||||
uci batch << EOF
|
||||
set firewall.zone_freifunk="zone"
|
||||
set firewall.zone_freifunk.name="freifunk"
|
||||
set firewall.zone_freifunk.network="$network"
|
||||
set firewall.zone_freifunk.input="$zone_freifunk_input"
|
||||
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"
|
||||
|
||||
# Usually we need to setup masquerading for lan, except lan is an olsr interface or has an olsr hna
|
||||
|
||||
echo " + Setup masquerading rules"
|
||||
|
||||
eval $(ipcalc.sh $lan_ip $lan_mask)
|
||||
|
||||
handle_interface() {
|
||||
config_get interface "$1" interface
|
||||
if [ "$interface" == "lan" ]; then
|
||||
no_masq_lan=1
|
||||
fi
|
||||
}
|
||||
config_load olsrd
|
||||
config_foreach handle_interface Interface
|
||||
|
||||
handle_hna() {
|
||||
config_get netaddr "$1" netaddr
|
||||
if [ "$NETWORK" == "$netaddr" ]; then
|
||||
no_masq_lan=1
|
||||
fi
|
||||
}
|
||||
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."
|
||||
[ -z "$(echo $currms |grep $NETWORK/$PREFIX)" ] && uci add_list firewall.zone_freifunk.masq_src="$NETWORK/$PREFIX"
|
||||
fi
|
||||
|
||||
# If wifi-interfaces are outside of the mesh network they should be natted
|
||||
for i in $networks; do
|
||||
# Get dhcprange and meshnet
|
||||
dhcprange=$(uci get meshwizard.netconfig.$i\_dhcprange)
|
||||
meshnet="$(uci get profile_$community.profile.mesh_network)"
|
||||
# check if the dhcprange is inside meshnet
|
||||
dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
|
||||
if [ ! "$dhcpinmesh" == 1 ]; then
|
||||
[ -z "$(echo $currms |grep $dhcprange)" ] && uci add_list firewall.zone_freifunk.masq_src="$dhcprange"
|
||||
fi
|
||||
done
|
||||
|
||||
# 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
|
||||
|
||||
for section in advanced include fw_rule fw_forwarding; do
|
||||
handle_firewall() {
|
||||
local options=$(uci show $config."$1")
|
||||
options=$(echo "$options" | sed -e "s/fw_//g" -e "s/^$config/firewall/g")
|
||||
for o in $options; do
|
||||
uci set $o
|
||||
done
|
||||
}
|
||||
config_foreach handle_firewall $section
|
||||
done
|
||||
done
|
||||
|
||||
uci commit
|
91
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh
Executable file
91
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh
Executable file
|
@ -0,0 +1,91 @@
|
|||
# setup entry in /etc/config/network for a interface
|
||||
# Argument $1: network interface
|
||||
|
||||
net="$1"
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
# Delete the network interface section for $net
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup network.$netrenamed
|
||||
fi
|
||||
|
||||
# Setup a (new) interface section for $net
|
||||
|
||||
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
|
||||
set network.$netrenamed="interface"
|
||||
set network.$netrenamed.proto="static"
|
||||
set network.$netrenamed.ipaddr="$ipaddr"
|
||||
set network.$netrenamed.netmask="$interface_netmask"
|
||||
set network.$netrenamed.dns="$interface_dns"
|
||||
EOF
|
||||
|
||||
echo " IP address: $ipaddr"
|
||||
echo " Netmask : $interface_netmask"
|
||||
|
||||
# setup dhcp alias/interface
|
||||
|
||||
net_dhcp=$(uci -q get meshwizard.netconfig.${net}_dhcp)
|
||||
if [ "$net_dhcp" == 1 ]; then
|
||||
|
||||
# Load meshwizard_settings
|
||||
dhcprange="$(uci -q get meshwizard.netconfig.${net}_dhcprange)"
|
||||
interface_ip="$(uci -q get meshwizard.netconfig.${net}_ip4addr)"
|
||||
vap=$(uci -q get meshwizard.netconfig.${net}_vap)
|
||||
|
||||
# Clean/rename config
|
||||
handle_dhcpalias() {
|
||||
config_get interface "$1" interface
|
||||
if [ "$interface" == "$netrenamed" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup network.$1
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename network $1 ${netrenamed}dhcp
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
config_load network
|
||||
config_foreach handle_dhcpalias alias
|
||||
|
||||
# Get IP/netmask and start-ip for $net dhcp
|
||||
# If no dhcprange is given in /etc/config/meshwizard we autogenerate one
|
||||
|
||||
if [ -z "$dhcprange" ]; then
|
||||
dhcprange="$($dir/helpers/gen_dhcp_ip.sh $interface_ip)/24"
|
||||
uci set meshwizard.netconfig.${net}_dhcprange="$dhcprange"
|
||||
fi
|
||||
eval $(sh $dir/helpers/ipcalc-cidr.sh $dhcprange 1 0)
|
||||
|
||||
# setup wifi-dhcp interface or alias
|
||||
|
||||
# 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
|
||||
|
||||
uci batch << EOF
|
||||
set network.${netrenamed}dhcp.proto=static
|
||||
set network.${netrenamed}dhcp.ipaddr="$START"
|
||||
set network.${netrenamed}dhcp.netmask="$NETMASK"
|
||||
EOF
|
||||
|
||||
echo " interface: $net
|
||||
ipaddr: $START
|
||||
netmask: $NETMASK"
|
||||
|
||||
fi
|
||||
|
||||
uci commit
|
126
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
Executable file
126
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
Executable file
|
@ -0,0 +1,126 @@
|
|||
#!/bin/sh
|
||||
# Sets up olsrd
|
||||
# arg $1 = net
|
||||
|
||||
net=$1
|
||||
|
||||
. /etc/functions.sh
|
||||
|
||||
. $dir/functions.sh
|
||||
|
||||
# Clean or delete interface defaults
|
||||
handle_interfacedefaults() {
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup olsrd.$1
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename olsrd $1 InterfaceDefaults
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
config_load olsrd
|
||||
config_foreach handle_interfacedefaults InterfaceDefaults
|
||||
|
||||
# Setup new InterfaceDefaults
|
||||
|
||||
echo " + Setup InterfaceDefaults"
|
||||
uci set olsrd.InterfaceDefaults=InterfaceDefaults
|
||||
set_defaults "olsr_interfacedefaults_" olsrd.InterfaceDefaults
|
||||
|
||||
# Delete old interface for $netrenamed
|
||||
handle_interface() {
|
||||
config_get interface "$1" Interface
|
||||
if [ "$interface" == "$netrenamed" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup olsrd.$1
|
||||
elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename olsrd $1 $netrenamed
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
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"
|
||||
|
||||
# If dhcp-network is inside the mesh_network then add HNA for it
|
||||
dhcprange=$(uci get meshwizard.netconfig.$net\_dhcprange)
|
||||
meshnet="$(uci get profile_$community.profile.mesh_network)"
|
||||
|
||||
uci -q delete olsrd.${netrenamed}clients
|
||||
|
||||
# check if the dhcprange is inside meshnet
|
||||
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"
|
||||
fi
|
||||
|
||||
|
||||
# Delete nameservice, dyngw and httpinfo plugins
|
||||
|
||||
echo " + Configure Plugins"
|
||||
handle_plugin() {
|
||||
config_get library "$1" library
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
case library in
|
||||
olsrd_*)
|
||||
section_cleanup olsrd.$1
|
||||
esac
|
||||
elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
new="$(echo $library | cut -d '.' -f 1)"
|
||||
section_rename olsrd $1 $new
|
||||
fi
|
||||
}
|
||||
config_foreach handle_plugin LoadPlugin
|
||||
|
||||
# Setup nameservice plugin
|
||||
if [ -n "$profile_suffix" ]; then
|
||||
suffix=".$profile_suffix"
|
||||
else
|
||||
suffix=".olsr"
|
||||
fi
|
||||
uci batch << EOF
|
||||
set olsrd.olsrd_nameservice=LoadPlugin
|
||||
set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3"
|
||||
set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js"
|
||||
set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr"
|
||||
set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
|
||||
set olsrd.olsrd_nameservice.suffix="$suffix"
|
||||
EOF
|
||||
|
||||
echo " Nameservice Plugin configured."
|
||||
|
||||
# Setup dyngw_plain
|
||||
|
||||
# If Sharing of Internet is enabled then enable dyngw_plain plugin
|
||||
sharenet=$(uci -q get meshwizard.general.sharenet)
|
||||
|
||||
if [ -n "$(uci -q get olsrd.dyngw_plain.library)" ]; then
|
||||
section_cleanup olsrd.dyngw_plain
|
||||
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"
|
||||
fi
|
||||
|
||||
uci commit
|
32
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_splash.sh
Executable file
32
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_splash.sh
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
# Setup_splash, takes 1 argument: 1=net
|
||||
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
net=$1
|
||||
|
||||
handle_splash() {
|
||||
config_get network "$1" network
|
||||
if [ "$network" == "${netrenamed}dhcp" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup luci_splash.$1
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename luci_splash $1 ${netrenamed}dhcp
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
config_load luci_splash
|
||||
config_foreach handle_splash iface
|
||||
|
||||
uci batch << EOF
|
||||
set luci_splash.${netrenamed}dhcp="iface"
|
||||
set luci_splash.${netrenamed}dhcp.network="${net}dhcp"
|
||||
set luci_splash.${netrenamed}dhcp.zone="freifunk"
|
||||
EOF
|
||||
|
||||
echo " network: ${netrenamed}dhcp"
|
||||
|
||||
uci commit
|
107
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
Executable file
107
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
Executable file
|
@ -0,0 +1,107 @@
|
|||
#!/bin/sh
|
||||
# sets up a wifi interface for meshing
|
||||
# Arguments: $1 = network interface
|
||||
|
||||
net="$1"
|
||||
. /etc/functions.sh
|
||||
. $dir/functions.sh
|
||||
|
||||
##### wifi-device #####
|
||||
|
||||
echo " + Setup wifi-device"
|
||||
|
||||
# Get the type before we delete the wifi-device
|
||||
config_load wireless
|
||||
config_get type $net type
|
||||
|
||||
# Delete old wifi-device for $net
|
||||
|
||||
handle_wifidevice() {
|
||||
if [ "$1" == "$net" -a "$cleanup" == 1 ]; then
|
||||
section_cleanup wireless.${net}
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename wireless $1 $net
|
||||
fi
|
||||
fi
|
||||
}
|
||||
config_foreach handle_wifidevice wifi-device
|
||||
|
||||
# create new wifi-device for $net
|
||||
uci set wireless.${net}=wifi-device
|
||||
|
||||
# get and set wifi-device defaults
|
||||
set_defaults "wifi_device_" wireless.${net}
|
||||
|
||||
channel="$(uci -q get meshwizard.netconfig.$net\_channel)"
|
||||
vap="$(uci -q get meshwizard.netconfig.$net\_vap)"
|
||||
|
||||
if [ -z "$channel" -o "$channel" == "default" ]; then
|
||||
channel=$wifi_device_channel
|
||||
fi
|
||||
|
||||
uci batch << EOF
|
||||
set wireless.${net}.type="$type"
|
||||
set wireless.${net}.channel="$channel"
|
||||
EOF
|
||||
|
||||
echo " Type: $type"
|
||||
echo " Channel: $channel"
|
||||
|
||||
##### wifi iface
|
||||
|
||||
echo " + Setup wifi-iface"
|
||||
|
||||
# Delete old wifi-iface for $net
|
||||
handle_interface() {
|
||||
config_get device "$1" device
|
||||
if [ "$device" == "$net" ]; then
|
||||
if [ "$cleanup" == 1 ]; then
|
||||
section_cleanup wireless.${net}_iface
|
||||
else
|
||||
if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
|
||||
section_rename wireless $1 ${net}_iface
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
config_foreach handle_interface wifi-iface
|
||||
|
||||
# create new wifi-device for $net
|
||||
uci set wireless.$net\_iface=wifi-iface
|
||||
|
||||
# create new wifi-iface for $net from defaults
|
||||
set_defaults "wifi_iface_" wireless.$net\_iface
|
||||
|
||||
# overwrite defaults
|
||||
bssid="$($dir/helpers/gen_bssid.sh $channel $community)"
|
||||
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.bssid="$bssid"
|
||||
EOF
|
||||
|
||||
echo " device: $net
|
||||
network: $netrenamed
|
||||
ssid: $profile_ssid - ch$channel
|
||||
bssid: $bssid"
|
||||
|
||||
## VAP
|
||||
ip4addr="$(uci get meshwizard.netconfig.$net\_ip4addr)"
|
||||
if [ "$type" == "atheros" -a "$vap" == 1 ]; then
|
||||
uci batch << EOF
|
||||
set wireless.$net\_iface_dhcp="wifi-iface"
|
||||
set wireless.$net\_iface_dhcp.device="$net"
|
||||
set wireless.$net\_iface_dhcp.mode="ap"
|
||||
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"
|
||||
fi
|
||||
|
||||
uci commit
|
96
contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
Executable file
96
contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
Executable file
|
@ -0,0 +1,96 @@
|
|||
#!/bin/sh
|
||||
# This script will take settings from /etc/config/meshwizard, /etc/config/freifunk and /etc/config/profile_<selected in freifunk>
|
||||
# and setup the router to participate in wireless mesh networks
|
||||
|
||||
. /etc/functions.sh
|
||||
|
||||
# config
|
||||
export dir="/usr/bin/meshwizard"
|
||||
. $dir/functions.sh
|
||||
debug=1
|
||||
|
||||
# Rename wifi interfaces
|
||||
echo "++++ Renaming wifi-devices in /etc/config/meshwizard"
|
||||
$dir/helpers/rename-wifi.sh
|
||||
|
||||
# Firstboot/initial config
|
||||
echo "++++ Initial config"
|
||||
$dir/helpers/initial_config.sh
|
||||
|
||||
# Get community
|
||||
export community=$(uci get freifunk.community.name)
|
||||
[ -z "$community" ] && echo "Error: Community is not set in /etc/config/freifunk, aborting now." && exit 1
|
||||
|
||||
# Check whether we want to cleanup uci config before setting new options or not
|
||||
cleanup=$(uci -q get meshwizard.general.cleanup)
|
||||
|
||||
[ "$cleanup" == 1 ] && export cleanup=1
|
||||
|
||||
# Get a list of networks we need to setup
|
||||
networks=$(uci show meshwizard.netconfig | grep -v "netconfig=" | sed -e 's/meshwizard.netconfig\.\(.*\)\_.*/\1/' |sort|uniq)
|
||||
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.1 +++
|
||||
Community=$community
|
||||
Network(s)=$networks"
|
||||
|
||||
# Read default values (first from /etc/config/freifunk, then from /etc/config/profile_$community,
|
||||
# last will overwrite first
|
||||
|
||||
|
||||
$dir/helpers/read_defaults.sh $community > /tmp/meshwizard.tmp
|
||||
while read line; do
|
||||
export "${line//\"/}"
|
||||
done < /tmp/meshwizard.tmp
|
||||
|
||||
# dnsmasq
|
||||
echo "++++ dnsmasq config"
|
||||
$dir/helpers/setup_dnsmasq.sh
|
||||
|
||||
# Configure found networks
|
||||
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
|
||||
|
||||
##### Restart services
|
||||
services="network olsrd dnsmasq luci_splash"
|
||||
echo " Restarting services:"
|
||||
for s in $services; do
|
||||
/etc/init.d/$s restart >/dev/null 2>&1
|
||||
echo " * $s"
|
||||
done
|
|
@ -1,7 +1,5 @@
|
|||
package 'freifunk'
|
||||
|
||||
config 'settings' 'wizard'
|
||||
|
||||
config 'public' 'contact'
|
||||
option 'nickname' ''
|
||||
option 'name' ''
|
||||
|
@ -14,45 +12,75 @@ config 'public' 'community'
|
|||
option 'name' 'Freifunk'
|
||||
option 'homepage' 'http://freifunk.net'
|
||||
|
||||
config 'fw_rule' 'icmp'
|
||||
config 'fw_zone' 'zone_freifunk'
|
||||
option 'name' 'freifunk'
|
||||
option 'input' 'REJECT'
|
||||
option 'forward' 'REJECT'
|
||||
option 'output' 'ACCEPT'
|
||||
|
||||
config 'fw_rule' 'fficmp'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'icmp'
|
||||
|
||||
config 'fw_rule' 'http'
|
||||
config 'fw_rule' 'ffhttp'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'tcp'
|
||||
option 'dest_port' '80'
|
||||
|
||||
config 'fw_rule' 'https'
|
||||
config 'fw_rule' 'ffhttps'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'tcp'
|
||||
option 'dest_port' '443'
|
||||
|
||||
config 'fw_rule' 'ssh'
|
||||
config 'fw_rule' 'ffssh'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'tcp'
|
||||
option 'dest_port' '22'
|
||||
|
||||
config 'fw_rule' 'olsr'
|
||||
config 'fw_rule' 'ffolsr'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'udp'
|
||||
option 'dest_port' '698'
|
||||
|
||||
config 'fw_rule' 'wprobe'
|
||||
config 'fw_rule' 'ffwprobe'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'tcp'
|
||||
option 'dest_port' '17990'
|
||||
|
||||
config 'fw_forwarding' 'lan'
|
||||
config 'fw_rule' 'ffdns'
|
||||
option 'dest_port' '53'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'udp'
|
||||
|
||||
config 'fw_rule' 'ffdhcp'
|
||||
option 'src_port' '68'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'dest_port' '67'
|
||||
option 'proto' 'udp'
|
||||
option 'leasetime' '30m'
|
||||
|
||||
config 'fw_rule' 'ffsplash'
|
||||
option 'dest_port' '8082'
|
||||
option 'src' 'freifunk'
|
||||
option 'target' 'ACCEPT'
|
||||
option 'proto' 'tcp'
|
||||
|
||||
config 'fw_forwarding' 'lanfffwd'
|
||||
option 'src' 'lan'
|
||||
option 'dest' 'freifunk'
|
||||
|
||||
config 'fw_forwarding' 'ffwanfwd'
|
||||
option 'src' 'freifunk'
|
||||
option 'dest' 'wan'
|
||||
|
||||
config 'fw_forwarding' 'fffwd'
|
||||
option 'src' 'freifunk'
|
||||
option 'dest' 'freifunk'
|
||||
|
@ -61,13 +89,18 @@ config 'defaults' 'wifi_device'
|
|||
option 'channel' '1'
|
||||
option 'diversity' '1'
|
||||
option 'disabled' '0'
|
||||
option 'txpower' '15'
|
||||
option 'country' '276'
|
||||
option 'country' 'DE'
|
||||
option 'hwmode' '11g'
|
||||
option 'distance' '1000'
|
||||
|
||||
config 'defaults' 'wifi_iface'
|
||||
option 'mode' 'adhoc'
|
||||
option 'bssid' '02:CA:FF:EE:BA:BE'
|
||||
option 'encryption' 'none'
|
||||
option 'bgscan' '0'
|
||||
option 'bssid' '12:CA:FF:EE:BA:BE'
|
||||
option 'sw_merge' '1'
|
||||
option 'mcast_rate' '5500'
|
||||
option 'probereq' '1'
|
||||
|
||||
config 'defaults' 'interface'
|
||||
option 'netmask' '255.255.0.0'
|
||||
|
@ -79,9 +112,10 @@ config 'defaults' 'alias'
|
|||
config 'defaults' 'dhcp'
|
||||
option 'leasetime' '30m'
|
||||
|
||||
config 'defaults' 'olsr_interface'
|
||||
config 'defaults' 'olsr_interfacedefaults'
|
||||
option 'Ip4Broadcast' '255.255.255.255'
|
||||
|
||||
config 'defaults' 'upgrade'
|
||||
option 'repository' 'http://dev.luci.freifunk-halle.net/freifunk-snapshots'
|
||||
option 'rssfeed' 'http://firmware.leipzig.freifunk.net/kamikaze/.rss.xml'
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
config 'community' 'profile'
|
||||
option 'name' 'Custom'
|
||||
option 'homepage' 'http://example.freifunk.net'
|
||||
option 'ssid' 'example.freifunk.net'
|
||||
option 'splash_network' '10.104.0.0/16'
|
||||
option 'latitude' '52.000'
|
||||
option 'longitude' '10.000'
|
||||
option 'splash_prefix' '28'
|
||||
option 'mesh_network' '1.0.0.0/16'
|
||||
|
10
modules/freifunk/root/etc/config/profile_Freifunk
Normal file
10
modules/freifunk/root/etc/config/profile_Freifunk
Normal file
|
@ -0,0 +1,10 @@
|
|||
config 'community' 'profile'
|
||||
option 'name' 'Freifunk'
|
||||
option 'homepage' 'http://freifunk.net'
|
||||
option 'ssid' 'www.freifunk.net'
|
||||
option 'splash_network' '10.104.0.0/16'
|
||||
option 'latitude' '52.000'
|
||||
option 'longitude' '10.000'
|
||||
option 'splash_prefix' '28'
|
||||
option 'mesh_network' '10.0.0.0/8'
|
||||
|
|
@ -12,3 +12,7 @@ config 'community' 'profile'
|
|||
config 'defaults' 'interface'
|
||||
option 'netmask' '255.255.192.0'
|
||||
|
||||
config 'defaults' 'bssidscheme'
|
||||
option '1' '02:CA:FF:EE:BA:BE'
|
||||
option '13' '13:CA:FF:EE:BA:BE'
|
||||
|
||||
|
|
81
po/ca/meshwizard.po
Normal file
81
po/ca/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/de/meshwizard.po
Normal file
81
po/de/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/el/meshwizard.po
Normal file
81
po/el/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/en/meshwizard.po
Normal file
81
po/en/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/es/meshwizard.po
Normal file
81
po/es/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/fr/meshwizard.po
Normal file
81
po/fr/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/it/meshwizard.po
Normal file
81
po/it/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/ja/meshwizard.po
Normal file
81
po/ja/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/ms/meshwizard.po
Normal file
81
po/ms/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/no/meshwizard.po
Normal file
81
po/no/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/pl/meshwizard.po
Normal file
81
po/pl/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/pt/meshwizard.po
Normal file
81
po/pt/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/pt_BR/meshwizard.po
Normal file
81
po/pt_BR/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/ru/meshwizard.po
Normal file
81
po/ru/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
84
po/templates/meshwizard.pot
Normal file
84
po/templates/meshwizard.pot
Normal file
|
@ -0,0 +1,84 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/vi/meshwizard.po
Normal file
81
po/vi/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
81
po/zh_CN/meshwizard.po
Normal file
81
po/zh_CN/meshwizard.po
Normal file
|
@ -0,0 +1,81 @@
|
|||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check this to protect your LAN from other nodes or clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cleanup config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure this interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP IP range"
|
||||
msgstr ""
|
||||
|
||||
msgid "DHCP will automatically assign ip addresses to clients"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DHCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If this is selected then config is cleaned before setting new config options."
|
||||
msgstr ""
|
||||
|
||||
msgid "Interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh IP address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mesh Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Protect LAN"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select this to allow others to use your connection to access the internet."
|
||||
msgstr ""
|
||||
|
||||
msgid "Share your internet connection"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The IP range from which clients are assigned ip addresses (e.g. "
|
||||
"10.1.2.1/28). If this is a range inside your mesh network range, then it "
|
||||
"will be announced as HNA. Any other range will use NAT. If left empty then "
|
||||
"the defaults from the community profile will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "The given IP address is not inside the mesh network range"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
|
||||
"registered at your local community."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will setup a new virtual wireless interface in Access Point mode."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This wizard will assist you in setting up your router for Freifunk or "
|
||||
"another similar wireless community network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Virtual Access Point (VAP)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your device and neighbouring nodes have to use the same channel."
|
||||
msgstr ""
|
||||
|
||||
msgid "recommended"
|
||||
msgstr ""
|
Loading…
Reference in a new issue