On Friday 14 March 2008 16:53:07 Andrés Ambrois wrote:
>    Holas!
>
>    Les cuento lo que he avanzado con OLSR.
>
>    Ayer constaté que lo que dice el man del dnsmasq no es mentira, y que:
>
>       "When it receives a SIGHUP, dnsmasq clears its cache and then re-loads
> /etc/hosts and /etc/ethers.  If --no-poll is set SIGHUP also re-reads
> /etc/resolv.conf.  SIGHUP does NOT re-read the configuration file."
>
>    Esto nos convierte en personas altamente felices, ya que los nodos que
> quieran utilizar dnsmasq para servir a aquellos clientes que no corran
> OLSRd (y por lo tanto no puedan hacer uso de su plugin nameservice), sólo
> necesitan mandarle SIGHUP al dnsmasq cuando tengan una entrada nueva en
> /etc/hosts (o donde su plugin nameservice esté escribiendo).
>
>    Para facilitar esto, estaría bueno que el mismo plugin nameservice le
> mande el SIGHUP cuando agrega alguna entrada. Por eso preparé un patch para
> nameservice.c que llama a un script (cuyo path se especifica como opción en
> olsrd.conf) que puede hacer cosas locas (como mandarle el SIGHUP a dnsmasq,
> actualizar una página en el wiki con los datos del nuevo nodo, formatear el
> disco, etc.). Hay maneras mucho mejores de hacerlo, pero ésta es simple y
> funciona. El patch va adjunto.
>
> Un ejemplo, entonces, de la configuración de mi plugin nameservice:
>
> LoadPlugin "olsrd_nameservice.so.0.3"
> {
>         PlParam "change-script" "/home/blade/holasoyunscriptloco.sh"
>         PlParam "name" "matrix.sirius"
>         #PlParam "a.b.c.d" "xxx-eth"
>         #PlParam "a.b.c.e" "xxx-bbb"
>         #PlParam "a.b.c.f" "xxx-olsr"
>         PlParam "suffix" ".mvdl"
>         PlParam "hosts-file" "/etc/hosts"
>         PlParam "add-hosts" "/etc/hosts"
>         PlParam "resolv-file" "/etc/resolv.conf"
>         PlParam "lat" "-34.893702"
>         PlParam "lon" "-56.116397"
>         PlParam "latlon-file" "/home/blade/latlon.js"
> }
>
> y un ejemplo de holasoyunscriptloco.sh:
>
> if [ -r "/var/run/dnsmasq.pid" ]
> then
>   kill -HUP `cat /var/run/dnsmasq.pid`
>   echo "dnsmasq successfuly updated. Happy times."
> else
>   echo "Warning: dnsmasq not started."
> fi
>
>    También he encontrado un bug en el plugin, y es que no borra las
> entradas de nodos que hicieron timeout (ver que en la función
> timeout_old_names() en nameservice.c, olsr_timed_out(&(*tmp)->timer)
> siempre es verdadero, aunque se desconecte el nodo). De todas maneras los
> nodos se pueden caer, pero no van a cambiar de IP, así que no es tan
> terrible.
>
>    Salú!
>
>    -Andrés

   La primer línea del script debería ser:  if [ -r "/var/run/dnsmasq.pid" ] 
&& [ -r "/proc/`cat /var/run/dnsmasq.pid`" ]

 :)

   También me doy cuenta que esto tendría que estar dirigido a la lista de 
desarrollo. Las disculpas del caso. 

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
General mailing list
[email protected]
http://lists.montevideolibre.org/listinfo.cgi/general-montevideolibre.org

Responder a