forked from freifunk-franken/firmware
configurator: separate sync hostname
Signed-off-by: Tim Niemeyer <tim.niemeyer@mastersword.de> Reviewed-by: Steffen Pankratz <kratz00@gmx.de>
This commit is contained in:
parent
e571c0f84f
commit
101cd5900d
|
@ -15,7 +15,6 @@ if [ -f /etc/config/configurator ];then
|
|||
SCRIPT_VERSION=`uci get configurator.@script[0].version`
|
||||
SCRIPT_ERROR_LEVEL=`uci get configurator.@script[0].error_level`
|
||||
SCRIPT_LOGFILE=`uci get configurator.@script[0].logfile`
|
||||
SCRIPT_SYNC_HOSTNAME=`uci get configurator.@script[0].sync_hostname`
|
||||
CRAWL_METHOD=`uci get configurator.@crawl[0].method`
|
||||
CRAWL_ROUTER_ID=`uci get configurator.@crawl[0].router_id`
|
||||
CRAWL_UPDATE_HASH=`uci get configurator.@crawl[0].update_hash`
|
||||
|
@ -44,42 +43,6 @@ else
|
|||
}
|
||||
fi
|
||||
|
||||
sync_hostname() {
|
||||
err "Syncing hostname"
|
||||
api_return=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=get_hostname&authentificationmethod=$CRAWL_METHOD&nickname=$CRAWL_NICKNAME&password=$CRAWL_PASSWORD&router_auto_update_hash=$CRAWL_UPDATE_HASH&router_id=$CRAWL_ROUTER_ID")
|
||||
ret=${api_return%%,*}
|
||||
if [ "$ret" != "success" ]; then
|
||||
err "Ther was an error fetching the hostname"
|
||||
exit 0
|
||||
elif [ "$ret" = "success" ]; then
|
||||
netmon_hostname=${api_return%,*}
|
||||
netmon_hostname=${netmon_hostname#*,}
|
||||
|
||||
#check for valid hostname as specified in rfc 1123
|
||||
#see http://stackoverflow.com/a/3824105
|
||||
regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
|
||||
regex=$regex'(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$'
|
||||
if [ "${#netmon_hostname}" -le "255" ]; then
|
||||
if echo -n $netmon_hostname | egrep -q "$regex"; then
|
||||
if [ "$netmon_hostname" != "`cat /proc/sys/kernel/hostname`" ]; then
|
||||
err "Setting new hostname: $netmon_hostname"
|
||||
uci set system.@system[0].hostname=$netmon_hostname
|
||||
uci commit
|
||||
echo $netmon_hostname > /proc/sys/kernel/hostname
|
||||
else
|
||||
err "Hostname is up to date"
|
||||
fi
|
||||
else
|
||||
err "Hostname ist malformed"
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
err "Hostname exceeds the maximum length of 255 characters"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
assign_router() {
|
||||
hostname=`cat /proc/sys/kernel/hostname`
|
||||
|
||||
|
@ -168,7 +131,3 @@ fi
|
|||
if [ "$AUTOADD_IPV6_ADDRESS" = "1" ]; then
|
||||
autoadd_ipv6_address
|
||||
fi
|
||||
|
||||
if [ "$SCRIPT_SYNC_HOSTNAME" = "1" ]; then
|
||||
sync_hostname
|
||||
fi
|
|
@ -1,4 +1,4 @@
|
|||
*/5 * * * * sh /etc/fastdstart.sh; sh /etc/nodewatcher.sh; sh /etc/configurator.sh
|
||||
*/5 * * * * sh /etc/fastdstart.sh; sh /etc/nodewatcher.sh; sh /etc/configurator.sh; /etc/syncHostname.sh
|
||||
*/1 * * * * /usr/sbin/batctl gw off; sleep 1; /usr/sbin/batctl gw client
|
||||
|
||||
#15 01 * * * rdate -s time.fu-berlin.de > /dev/null
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/sh
|
||||
# Netmon Configurator (C) 2010-2012 Freifunk Oldenburg
|
||||
# Lizenz: GPL v3
|
||||
|
||||
test -f /tmp/started || exit
|
||||
|
||||
#Get the configuration from the uci configuration file
|
||||
#If it does not exists, then get it from a normal bash file with variables.
|
||||
if [ -f /etc/config/configurator ];then
|
||||
API_IPV4_ADRESS=`uci get configurator.@api[0].ipv4_address`
|
||||
API_IPV6_ADRESS=`uci get configurator.@api[0].ipv6_address`
|
||||
API_IPV6_INTERFACE=`uci get configurator.@api[0].ipv6_interface`
|
||||
API_TIMEOUT=`uci get configurator.@api[0].timeout`
|
||||
SCRIPT_ERROR_LEVEL=`uci get configurator.@script[0].error_level`
|
||||
SCRIPT_LOGFILE=`uci get configurator.@script[0].logfile`
|
||||
SCRIPT_SYNC_HOSTNAME=`uci get configurator.@script[0].sync_hostname`
|
||||
CRAWL_METHOD=`uci get configurator.@crawl[0].method`
|
||||
CRAWL_ROUTER_ID=`uci get configurator.@crawl[0].router_id`
|
||||
CRAWL_UPDATE_HASH=`uci get configurator.@crawl[0].update_hash`
|
||||
CRAWL_NICKNAME=`uci get configurator.@crawl[0].nickname`
|
||||
CRAWL_PASSWORD=`uci get configurator.@crawl[0].password`
|
||||
else
|
||||
. `dirname $0`/configurator_config
|
||||
fi
|
||||
|
||||
if [ "$API_IPV4_ADRESS" != "1" ]; then
|
||||
netmon_api=$API_IPV4_ADRESS
|
||||
else
|
||||
netmon_api="[$API_IPV6_ADRESS"%"$API_IPV6_INTERFACE]"
|
||||
fi
|
||||
|
||||
if [ "$SCRIPT_ERROR_LEVEL" -gt "1" ]; then
|
||||
err() {
|
||||
echo "$(date) [configurator]: $1" >> $SCRIPT_LOGFILE
|
||||
}
|
||||
else
|
||||
err() {
|
||||
:
|
||||
}
|
||||
fi
|
||||
|
||||
sync_hostname() {
|
||||
err "Syncing hostname"
|
||||
api_return=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=get_hostname&authentificationmethod=$CRAWL_METHOD&nickname=$CRAWL_NICKNAME&password=$CRAWL_PASSWORD&router_auto_update_hash=$CRAWL_UPDATE_HASH&router_id=$CRAWL_ROUTER_ID")
|
||||
ret=${api_return%%,*}
|
||||
if [ "$ret" != "success" ]; then
|
||||
err "Ther was an error fetching the hostname"
|
||||
exit 0
|
||||
elif [ "$ret" = "success" ]; then
|
||||
netmon_hostname=${api_return%,*}
|
||||
netmon_hostname=${netmon_hostname#*,}
|
||||
|
||||
#check for valid hostname as specified in rfc 1123
|
||||
#see http://stackoverflow.com/a/3824105
|
||||
regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
|
||||
regex=$regex'(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$'
|
||||
if [ "${#netmon_hostname}" -le "255" ]; then
|
||||
if echo -n $netmon_hostname | egrep -q "$regex"; then
|
||||
if [ "$netmon_hostname" != "`cat /proc/sys/kernel/hostname`" ]; then
|
||||
err "Setting new hostname: $netmon_hostname"
|
||||
uci set system.@system[0].hostname=$netmon_hostname
|
||||
uci commit
|
||||
echo $netmon_hostname > /proc/sys/kernel/hostname
|
||||
else
|
||||
err "Hostname is up to date"
|
||||
fi
|
||||
else
|
||||
err "Hostname ist malformed"
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
err "Hostname exceeds the maximum length of 255 characters"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$SCRIPT_SYNC_HOSTNAME" = "1" ]; then
|
||||
sync_hostname
|
||||
fi
|
Loading…
Reference in New Issue