Index: dhcp-server-denegar/trunk/dhcp-server-denegar
===================================================================
--- dhcp-server-denegar/trunk/dhcp-server-denegar	(revision 506)
+++ dhcp-server-denegar/trunk/dhcp-server-denegar	(revision 507)
@@ -7,20 +7,17 @@
 # Should-Stop:
 # Default-Start:        2
 # Default-Stop:         
-# Short-Description:    Genera el fichero dhcpd.conf, denegando la entrada a los no permitidos
+# Short-Description:    Genera el fichero dhcpd.conf, denegando la entrada a los no permitidos.
 # Description:          Controla el acceso al sistema. Los equipos denegados no tomarán ip
 ### END INIT INFO
 
 # *********************************************************************************************************** 
 # Antonio J. Abasolo Sierra (Dic-2012)
-# IES Rodriguez Moñino
 #
 # Controla el acceso al sistema, filtrando los equipos a los que el servidor dhcp del centro ofrecerá ip, 
 # y por lo tanto podrán navegar.
 # Se base en el sistema de lista blanca (mantenida por el usuario), 
 # y lista negra (obtenida por filtrado de entradas del fichero del servidor dhcp: dhcpd.leases)
-# Las entradas manuales que se hagan en la lista negra, también se mantienen.
-# Si un equipo está en ambas listas, se le denegará el acceso: sistema deny,access
 #
 # La Lista_Blanca de equipos que dejamos conectarse la mantenemos nosotros, y debe tener este formato:
 # MAC,EQUIPO[,IP][,NOMBRE]
@@ -28,16 +25,7 @@
 # [,IP] --> Se rellenará automáticamente por el script.
 # [,NOMBRE] --> Se rellenará automáticamente por el script (si lo tiene).
 #
-# Para dejarlo operativo colocaremos un crontab (crontab -e) que ejecute este script cada 5 min. (por ej.):
-# 05 * * * 1-5 /root/dhcp-server-denegar start  --> cada 5 minutos de lunes a viernes
-#
-# O bien, lo pondremos en los script de arranque del sistema con estos pasos:
-# cp dhcp-server-denegar /etc/init.d/
-# update-rc.d dhcp-server-denegar defaults
-# 
-# Tiene dos opciones de ejecución: 
-#   - start --> hace lo indicado: bloquea accesos al sistema por MAC
-#   - stop  --> anula el bloqueo por MAC, y deja el sistema tal como estaba antes (por defecto).
+# Para dejarlo operativo colocaremos un crontab que ejecute este script cada 5 min. (por ej.)
 # *********************************************************************************************************** 
 
 FILE_CONF=/etc/dhcp/dhcpd.conf
@@ -93,8 +81,8 @@
 	  if [ ! $esta ]; then
 	    echo "$MacPC,$IpPC,$NombrePC" >> pcs
 	  fi
+          NombrePc=""
 	fi
-	NombrePc=""
 	;;
       "")
 	;;
@@ -107,7 +95,7 @@
 Obtener_ListaNegra() {
   # Recorremos el fichero de leases obtenido, y lo filtramos con la lista-blanca
   echo "   - Creamos $LISTA_NEGRA: lista de equipos a denegar (lista negra)"
-  #rm -f $LISTA_NEGRA 2>/dev/null ; touch $LISTA_NEGRA
+  # rm -f $LISTA_NEGRA 2>/dev/null ; touch $LISTA_NEGRA
   cat pcs.leases | while read linea; do
     MAC=`echo $linea | cut -f1 -d,`
     IP=`echo $linea | cut -f2 -d,`
@@ -128,11 +116,14 @@
       mv tmp $LISTA_NEGRA
     fi
   done
+  rm -f pcs.leases
 }
 
 Crear_Configuracion() {
   echo "   - Creamos $FILE_CONF: fichero de configuración de dhcp-server"
   Configuracion_Base
+  if [ ! -e $LISTA_BLANCA ]; then touch $LISTA_BLANCA; fi
+  if [ ! -e $LISTA_NEGRA ]; then touch $LISTA_NEGRA; fi
   NUMPC=0
   echo "" >> $FILE_CONF
   echo "# Equipos con entrada denegada:" >> $FILE_CONF
@@ -145,6 +136,14 @@
     if [ "$PC" ]; then
       EQUIPO=$EQUIPO"_"$PC
     fi
+#      ESTA=`grep $PC $FILE_CONF` 2>/dev/null
+#      #if [ "$ESTA" ]; then PC=Equipo_$NUMPC; fi
+##      if [ "$ESTA" ]; then
+#	PC=$PC"_"$NUMPC
+# #     fi
+#    else
+#      PC=Equipo_$NUMPC
+#    fi
     if [ "$MAC" ]; then
       echo "host $EQUIPO {
 	hardware ethernet $MAC;
@@ -168,6 +167,13 @@
   echo ""
 }
 
+Vaciar_Leases() {
+  echo "   - Vaciamos la lista de equipos de $FILE_LEASES:"
+  echo "# The format of this file is documented in the dhcpd.leases(5) manual page.
+# This lease file was written by isc-dhcp-4.1.1-P1
+" > $FILE_LEASES
+}
+
 # -----------------------------------------------------------------------------
 case "$1" in
   start)
@@ -179,6 +185,7 @@
 	Obtener_ListaNegra
 
 	Crear_Configuracion
+	Vaciar_Leases
 	Reiniciar_Servicio
 
 	;;
