Compilació:
--------------------------------------
Per compilar-lo fent servir gcc (crec que com a mínim 3.4, pel c99):
$ make
Per compilar-lo fent servir tcc (que suporta c99, és fàcil d'instal·lar, etc.
(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 execultar-lo:
$ ./test.sh
Els fitxers:
--------------------------------------
syslog_in_udp <port> Espera missatges pel port UDP especificat
(IPv4 i IPv6)
syslog_in_npipe <npipe> Espera missatges per la named pipe (ha d'existir!)
syslog_in_unix <usocket> Crea i escolta el socket unix per missatges
syslog_kernel Executa els anteriors programes, i llegeix de tots
alhora.
unix_writer <usocket> Programa per escriure a un Unix socket
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
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ó.
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.