README.txt
changeset 46 875902155b06
parent 18 84fa30ea0b0d
child 59 a8776c046a53
--- a/README.txt	Mon May 15 17:51:29 2006 +0200
+++ b/README.txt	Mon May 15 17:51:40 2006 +0200
@@ -8,7 +8,8 @@
    (Tiny C Compiler, http://fabrice.bellard.free.fr/tcc/ ):
 $ make -f Makefile.tcc
 
-Per a testejar el programa, hi ha un petit script de test que requereix bash.
+Per a testejar una mica el programa, hi ha un petit script de test que
+requereix bash.
 Per a execultar-lo:
 $ ./test.sh
 
@@ -23,20 +24,62 @@
                              alhora.
    unix_writer <usocket>     Programa per escriure a un Unix socket
 
+
+Configuració del programa:
+--------------------------------------
+La configuració la trobem al fitxer "syslog.conf". Aquests són els seus
+valors per defecte (a config.c):
+from_unix=unixlog
+from_npipe=disabled
+from_udp=disabled
+to_udp_host=localhost
+to_udp_port=1235
+tcp_manager=1234   (No s'utilitza encara!)
+log_file=file.log
+
+No hi poden haver espais; el format és <paràmetre>=<valor> per cada línia.
+Si el fitxer de configuració "syslog.conf" no defineix res d'un paràmetre,
+valdrà el valor per defecte.
+Si a un paràmetre li donem el valor "disabled", la part afectada no estarà
+activa.
+
 Notes:
 --------------------------------------
 El programa està escrit en c99.
 
-El programa no gestiona bé lectures de múltiples missatges per crida read().
-Això és perquè encara en prou feines hem implementat alguna cosa de la
+El programa no gestiona bé lectures de múltiples missatges per cada crida
+read(). Només pot llegir un missatge per crida.
+Això és perquè encara en prou feines he implementat alguna cosa de la
 rfc 3164.
 
 Els syslog_in_* entenen el missatge "close", cosa que fa que morin. Si moren
 tots els fills de syslog_kernel, el kernel també mor.
 
-El fitxer syslog_in_udp té una variable global que indica si es farà servir
-IPv6 o no en temps d'execució.
+Al fitxer syslog_in_udp se li pot passar el paràmetre de port en negatiu,
+cosa que vol dir que escoltarà també per IPv6 al port "-(port)" donat. Si es
+dóna en positiu, només escoltarà IPv4.
 
 El codi de llegir la "named pipe" intenta fer el possible amb locks i
 reobertures de la pipe de manera que no es perdi mai la lectura de la
 named pipe donada.
+
+Els syslog_in_* ignoren el senyal HUP. El syslog_in_unix capta SIGTERM i
+SIGINT, perquè a més de tancar els handles, també ha de tancar el unix socket.
+
+El syslog_kernel pot passar missatges a un servidor udp. També pot escriure
+els missatges rebuts a un fitxer de log.
+
+El syslog_kernel entén els senyals:
+- SIGHUP - rellegir i reaplicar el que digui el fitxer de configuració.
+- SIGTERM o SIGINT - matar els fills, i després morir ell.
+  (Atenció - si apretem Control-C des d'un xterm, envia SIGINT al grup de
+  processos del terminal; així, si hem executat el kernel, els fills
+  rebran SIGINT igualment)
+
+No he implementat el SIGUSR1 per a buidar el caché de missatges rebuts a disc.
+
+El programa dóna informació de debug per stderr.
+
+El programa no és gaire "error-safe": si no es compleixen certes condicions,
+el programa simplement abortarà - a vegades amb assert(). De tota manera,
+tots els casos crítics crec que estan sota control.