README.txt
author viric@llimona
Tue, 30 May 2006 13:07:54 +0200
changeset 60 07f049b2c1b6
parent 59 a8776c046a53
permissions -rw-r--r--
Added tag 3a_entrega for changeset a8776c046a530bf7665426108b6b501e2944645a
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
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    11
Per a testejar una mica el programa (no completament!), hi ha un petit script
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    12
de test que 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
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    24
                             alhora. A més, inclou el tcp server.
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
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    37
tcp_manager=1234   (Port per on rebre els logs per tcp)
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    38
log_file=file.log
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    39
pid_file=syslog.pid
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    40
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    41
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
    42
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
    43
valdrà el valor per defecte.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    44
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
    45
activa.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    46
17
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    47
Notes:
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    48
--------------------------------------
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    49
El programa està escrit en c99.
589406eaaf43 Versió a entregar, quasi segur.
viric@llimona
parents:
diff changeset
    50
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    51
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
    52
read(). Només pot llegir un missatge per crida.
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    53
Això és perquè no he implementat completament l'especificació rfc3164.
17
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
59
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    72
El syslog_kernel escriu el seu pid a pid_file. Si engeguem syslog_kernel i el
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    73
fitxer existeix amb el pid d'un syslog_kernel actiu, no s'engega un segon
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    74
syslog_kernel sino que s'envia SIGHUP a l'existent.
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    75
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    76
El syslog_kernel inclou un servidor tcp per a poder consultar els logs. Quan
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    77
un client tcp es connecta a ell, s'envia el contingut del log_file (si
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    78
es fa servir), i es tanca la connexió.
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    79
a8776c046a53 Readme adapted to the last version.
viric@llimona
parents: 46
diff changeset
    80
El syslog_kernel pare entén els senyals:
46
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    81
- SIGHUP - rellegir i reaplicar el que digui el fitxer de configuració.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    82
- SIGTERM o SIGINT - matar els fills, i després morir ell.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    83
  (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
    84
  processos del terminal; així, si hem executat el kernel, els fills
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    85
  rebran SIGINT igualment)
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    86
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    87
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
    88
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    89
El programa dóna informació de debug per stderr.
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    90
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    91
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
    92
el programa simplement abortarà - a vegades amb assert(). De tota manera,
875902155b06 Documentation for the latest release.
viric@llimona
parents: 18
diff changeset
    93
tots els casos crítics crec que estan sota control.