# HG changeset patch # User viric@llimona # Date 1147708300 -7200 # Node ID 875902155b066a45e28d768c6fc9b8175f68157a # Parent b65e0d8469c329a7029c06f7a07a8a62c89012f2 Documentation for the latest release. diff -r b65e0d8469c3 -r 875902155b06 README.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 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 = 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. diff -r b65e0d8469c3 -r 875902155b06 TODO.txt --- 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 ----------------