Subversion Repositories ALCASAR

Rev

Go to most recent revision | Details | Last modification | View Log

Rev Author Line No. Line
2013 raphael.pi 1
#/bin/bash
2
# alcasar-dhcp.sh
3
 
4
# by Raphaël Pion
5
# This script is distributed under the Gnu General Public License (GPL)
6
 
7
# active ou desactive l'option NTP du DHCP sur le réseau de consultation
8
# enable or disable the NTP option of DHCP service on consultation LAN
9
 
10
 
11
#configuration files
12
SED="/bin/sed -i"
13
CHILLI_CONF_FILE="/etc/chilli.conf"
14
ALCASAR_CONF_FILE="/usr/local/etc/alcasar.conf"
15
 
16
#NTP parameters
17
NTP_STATE=$(grep 'DHCP=' $ALCASAR_CONF_FILE | cut -d'=' -f2)
18
CHILLI_NTP_IP=$(grep 'CHILLI_NTP_IP=' $ALCASAR_CONF_FILE | cut -d'=' -f2)
19
 
20
usage="Usage: alcasar-chilli_ntp.sh {--on | -on} | {--off | -off} "
21
nb_args=$#
22
args=$1
23
if [ $nb_args -eq 0 ]
24
then
25
	echo "$usage"
26
	exit 1
27
fi
28
case $args in
29
	-\? | -h | --h)
30
		echo "$usage"
31
		exit 0
32
		;;
33
	--off|-off) # disable NTP options over DHCP of coovachilli
34
		$SED "s?^CHILLI_NTP_ENABLED.*?CHILLI_NTP_ENABLED=off?g" $ALCASAR_CONF_FILE
35
		$SED "s?.*dhcpopt\t.*?#dhcpopt\t\t$CHILLI_NTP_IP?g" $CHILLI_CONF_FILE
36
		#/usr/bin/systemctl restart chilli
37
		;;
38
	--on|-on) # enable NTP options over DHCP of coovachilli
39
		if [ $NTP_STATE == "on" ]
40
		then
41
			#DHCP Options : rfc2132
42
			#dhcp option value will be convert in hexa.
43
			#NTP option (or 'option 42') is like :
44
			#			
45
			#    Code   Len         Address 1               Address 2
46
			#   +-----+-----+-----+-----+-----+-----+-----+-----+--
47
			#   |  42 |  n  |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 |  ...
48
			#   +-----+-----+-----+-----+-----+-----+-----+-----+--
49
			#
50
			#Code : 42 => 2a
51
			#Len : 4 => 04
52
			#Convert CHILLI_NTP_IP into hexadecimal value
53
			if [ $CHILLI_NTP_IP != "none" ]
54
			then
55
				a1=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f1))
56
				a2=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f2))
57
				a3=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f3))
58
				a4=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f4))
59
				HEXA_CHILLI_NTP_IP="2a04$a1$a2$a3$a4"
60
 
61
				$SED "s?.*dhcpopt.*?dhcpopt\t\t$HEXA_CHILLI_NTP_IP?g" $CHILLI_CONF_FILE
62
				$SED "s?^CHILLI_NTP_ENABLED.*?CHILLI_NTP_ENABLED=on?g" $ALCASAR_CONF_FILE
63
				/usr/bin/systemctl restart chilli
64
			else
65
				echo "Vous devez spécifier une addresse IP désignant votre serveur NTP"
66
			fi
67
		else
68
			echo "L'option NTP du DHCP de coovachilli ne peut pas s'activer. En effet le DHCP est 'off' sur ALCASAR"
69
		fi
70
		;;
71
	*)
72
		echo "Argument inconnu :$1";
73
		echo "$usage"
74
		exit 1
75
		;;
76
esac
77