Documentation for the latest release. 2a_entrega
authorviric@llimona
Mon, 15 May 2006 17:51:40 +0200
changeset 46 875902155b06
parent 45 b65e0d8469c3
child 47 f39ca1ce598b
Documentation for the latest release.
README.txt
TODO.txt
--- 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.
--- a/TODO.txt	Mon May 15 17:51:29 2006 +0200
+++ b/TODO.txt	Mon May 15 17:51:40 2006 +0200
@@ -1,11 +1,13 @@
 * Verificar les mides de buffers a read, recv, fgets
-* Fer que in_npipe crei la named pipe?
-* establir els permisos del unix socket
+  Should be ok.
+* Fer que in_npipe crei la named pipe? No sé què és millor. És un fàstic
+  això de voler llegir d'una named pipe de manera segura.
+* establir els permisos del unix socket. Com fer-ho sense race-condition?
 
 * Implementar la sortida UDP.
   Done.
 * Implementar el HUP al kernel - rellegir la configuració.
-  This requires asynchronous receiving in the kernel. If not, how? !!!
+  Done.
 * Implementar catxé de log-file amb SIGUSR1 associat. (De veritat?!)
   I won't do that for this release.
 * Implementar una mort neta dels childs (SIGTERM) i el kernel.
@@ -13,6 +15,7 @@
 
 * The childs should control SIGINT. Otherwise, they become killed on Control-C
   under an xterm.
+  Done in syslog_in_unix. I think it's not needed in other syslog_in_*
 
 Known problems
 ----------------