17
|
1 |
|
|
2 |
Compilació:
|
|
3 |
--------------------------------------
|
|
4 |
Per compilar-lo fent servir gcc (crec que com a mínim 3.4, pel c99):
|
|
5 |
$ make
|
|
6 |
|
|
7 |
Per compilar-lo fent servir tcc (que suporta c99, és fàcil d'instal·lar, etc.
|
|
8 |
(Tiny C Compiler, http://fabrice.bellard.free.fr/tcc/ ):
|
|
9 |
$ make -f Makefile.tcc
|
|
10 |
|
|
11 |
Per a testejar el programa, hi ha un petit script de test que requereix bash.
|
|
12 |
Per a execultar-lo:
|
|
13 |
$ ./test.sh
|
|
14 |
|
|
15 |
|
|
16 |
Els fitxers:
|
|
17 |
--------------------------------------
|
|
18 |
syslog_in_udp <port> Espera missatges pel port UDP especificat
|
|
19 |
(IPv4 i IPv6)
|
|
20 |
syslog_in_npipe <npipe> Espera missatges per la named pipe (ha d'existir!)
|
|
21 |
syslog_in_unix <usocket> Crea i escolta el socket unix per missatges
|
|
22 |
syslog_kernel Executa els anteriors programes, i llegeix de tots
|
|
23 |
alhora.
|
18
|
24 |
unix_writer <usocket> Programa per escriure a un Unix socket
|
17
|
25 |
|
|
26 |
Notes:
|
|
27 |
--------------------------------------
|
|
28 |
El programa està escrit en c99.
|
|
29 |
|
|
30 |
El programa no gestiona bé lectures de múltiples missatges per crida read().
|
|
31 |
Això és perquè encara en prou feines hem implementat alguna cosa de la
|
|
32 |
rfc 3164.
|
|
33 |
|
|
34 |
Els syslog_in_* entenen el missatge "close", cosa que fa que morin. Si moren
|
|
35 |
tots els fills de syslog_kernel, el kernel també mor.
|
|
36 |
|
|
37 |
El fitxer syslog_in_udp té una variable global que indica si es farà servir
|
|
38 |
IPv6 o no en temps d'execució.
|
18
|
39 |
|
|
40 |
El codi de llegir la "named pipe" intenta fer el possible amb locks i
|
|
41 |
reobertures de la pipe de manera que no es perdi mai la lectura de la
|
|
42 |
named pipe donada.
|