README.txt
author viric@llimona
Tue, 30 May 2006 12:57:31 +0200
changeset 58 c03287b2c3c1
parent 46 875902155b06
child 59 a8776c046a53
permissions -rw-r--r--
Now the tcp_server handles well the situation where there isn't a log file.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     1
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     2
Compilació:
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     3
--------------------------------------
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     4
Per compilar-lo fent servir gcc (crec que com a mínim 3.4, pel c99):
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     5
$ make
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     6
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     7
Per compilar-lo fent servir tcc (que suporta c99, és fàcil d'instal·lar, etc.
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     8
   (Tiny C Compiler, http://fabrice.bellard.free.fr/tcc/ ):
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
     9
$ make -f Makefile.tcc
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    10
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    11
Per a testejar una mica el programa, hi ha un petit script de test que
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    12
requereix bash.
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    13
Per a execultar-lo:
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    14
$ ./test.sh
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    15
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    16
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    17
Els fitxers:
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    18
--------------------------------------
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    19
   syslog_in_udp <port>      Espera missatges pel port UDP especificat
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    20
                             (IPv4 i IPv6)
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    21
   syslog_in_npipe <npipe>   Espera missatges per la named pipe (ha d'existir!)
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    22
   syslog_in_unix <usocket>  Crea i escolta el socket unix per missatges
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    23
   syslog_kernel             Executa els anteriors programes, i llegeix de tots
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    24
                             alhora.
18
84fa30ea0b0d Ara sí - versió 1
viric@llimona
parents: 17
diff changeset
    25
   unix_writer <usocket>     Programa per escriure a un Unix socket
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    26
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    27
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    28
Configuració del programa:
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    29
--------------------------------------
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    30
La configuració la trobem al fitxer "syslog.conf". Aquests són els seus
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    31
valors per defecte (a config.c):
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    32
from_unix=unixlog
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    33
from_npipe=disabled
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    34
from_udp=disabled
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    35
to_udp_host=localhost
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    36
to_udp_port=1235
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    37
tcp_manager=1234   (No s'utilitza encara!)
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    38
log_file=file.log
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    39
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    40
No hi poden haver espais; el format és <paràmetre>=<valor> per cada línia.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    41
Si el fitxer de configuració "syslog.conf" no defineix res d'un paràmetre,
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    42
valdrà el valor per defecte.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    43
Si a un paràmetre li donem el valor "disabled", la part afectada no estarà
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    44
activa.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    45
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    46
Notes:
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    47
--------------------------------------
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    48
El programa està escrit en c99.
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    49
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    50
El programa no gestiona bé lectures de múltiples missatges per cada crida
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    51
read(). Només pot llegir un missatge per crida.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    52
Això és perquè encara en prou feines he implementat alguna cosa de la
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    53
rfc 3164.
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    54
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    55
Els syslog_in_* entenen el missatge "close", cosa que fa que morin. Si moren
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    56
tots els fills de syslog_kernel, el kernel també mor.
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    57
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    58
Al fitxer syslog_in_udp se li pot passar el paràmetre de port en negatiu,
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    59
cosa que vol dir que escoltarà també per IPv6 al port "-(port)" donat. Si es
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    60
dóna en positiu, només escoltarà IPv4.
18
84fa30ea0b0d Ara sí - versió 1
viric@llimona
parents: 17
diff changeset
    61
84fa30ea0b0d Ara sí - versió 1
viric@llimona
parents: 17
diff changeset
    62
El codi de llegir la "named pipe" intenta fer el possible amb locks i
84fa30ea0b0d Ara sí - versió 1
viric@llimona
parents: 17
diff changeset
    63
reobertures de la pipe de manera que no es perdi mai la lectura de la
84fa30ea0b0d Ara sí - versió 1
viric@llimona
parents: 17
diff changeset
    64
named pipe donada.
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    65
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    66
Els syslog_in_* ignoren el senyal HUP. El syslog_in_unix capta SIGTERM i
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    67
SIGINT, perquè a més de tancar els handles, també ha de tancar el unix socket.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    68
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    69
El syslog_kernel pot passar missatges a un servidor udp. També pot escriure
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    70
els missatges rebuts a un fitxer de log.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    71
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    72
El syslog_kernel entén els senyals:
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    73
- SIGHUP - rellegir i reaplicar el que digui el fitxer de configuració.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    74
- SIGTERM o SIGINT - matar els fills, i després morir ell.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    75
  (Atenció - si apretem Control-C des d'un xterm, envia SIGINT al grup de
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    76
  processos del terminal; així, si hem executat el kernel, els fills
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    77
  rebran SIGINT igualment)
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    78
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    79
No he implementat el SIGUSR1 per a buidar el caché de missatges rebuts a disc.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    80
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    81
El programa dóna informació de debug per stderr.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    82
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    83
El programa no és gaire "error-safe": si no es compleixen certes condicions,
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    84
el programa simplement abortarà - a vegades amb assert(). De tota manera,
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    85
tots els casos crítics crec que estan sota control.