From 0a4c67a874e7bce9e358c82489782c9e402a58a4 Mon Sep 17 00:00:00 2001 From: james <> Date: Mon, 10 Mar 2008 11:49:33 +0000 Subject: *** empty log message *** --- src/ansi.h | 9 +++--- src/cmd.h | 6 ++-- src/context.h | 6 ++-- src/crt.h | 12 ++++---- src/history.h | 9 +++--- src/ipc.h | 57 ++++++++++++++----------------------- src/keydis.c | 9 +++--- src/keydis.h | 6 ++-- src/lockfile.h | 12 ++++---- src/log.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++------ src/log.h | 8 ++++-- src/ptty.c | 6 ++-- src/raw.c | 9 +++--- src/ring.h | 6 ++-- src/rx.h | 6 ++-- src/serial.c | 6 ++-- src/slide.h | 6 ++-- src/symsocket.h | 6 ++-- src/terminal.c | 8 ++++-- src/tty.c | 6 ++-- src/tty.h | 12 ++++---- src/utf8.h | 6 ++-- src/vt102.h | 12 ++++---- 23 files changed, 199 insertions(+), 111 deletions(-) (limited to 'src') diff --git a/src/ansi.h b/src/ansi.h index 5ea6cad..6f412c7 100644 --- a/src/ansi.h +++ b/src/ansi.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.20 2008/03/10 11:49:32 james + * *** empty log message *** + * * Revision 1.19 2008/03/07 12:37:04 james * *** empty log message *** * @@ -79,8 +82,7 @@ #define ANSI_ESCAPE_BUF_LEN 10 #define ANSI_ESCAPE_TIMEOUT 100000 /* in ms */ -typedef struct -{ +typedef struct { int in_escape; struct timeval last_escape; char escape_buf[ANSI_ESCAPE_BUF_LEN]; @@ -90,8 +92,7 @@ typedef struct struct CRT_struct; struct Context_struct; -typedef struct ANSI_struct -{ +typedef struct ANSI_struct { ANSI_Parser parser; TTY *terminal; diff --git a/src/cmd.h b/src/cmd.h index 7094485..3e3f775 100644 --- a/src/cmd.h +++ b/src/cmd.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.8 2008/03/10 11:49:32 james + * *** empty log message *** + * * Revision 1.7 2008/03/07 12:37:04 james * *** empty log message *** * @@ -41,8 +44,7 @@ #define CMD_KEY 2 /* CTRL B */ #define CMD_CANCEL_KEY 3 /* CTRL C */ -typedef struct -{ +typedef struct { int active; int error; int disconnect; diff --git a/src/context.h b/src/context.h index 139a8f0..a1ce8d2 100644 --- a/src/context.h +++ b/src/context.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.13 2008/03/10 11:49:32 james + * *** empty log message *** + * * Revision 1.12 2008/03/07 12:37:04 james * *** empty log message *** * @@ -53,8 +56,7 @@ #ifndef __CONTEXT_H__ #define __CONTEXT_H__ -typedef struct Context_struct -{ +typedef struct Context_struct { VT102 *v; TTY *t; TTY_Parser *tp; diff --git a/src/crt.h b/src/crt.h index 7f5c1e1..68ecfd4 100644 --- a/src/crt.h +++ b/src/crt.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.18 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.17 2008/03/07 12:37:04 james * *** empty log message *** * @@ -114,22 +117,19 @@ typedef struct __attribute__ ((packed)) { uint8_t color; } CRT_CA; -typedef struct -{ +typedef struct { int x; int y; } CRT_Pos; -typedef struct -{ +typedef struct { CRT_Pos s; CRT_Pos e; int dir; } CRT_ScrollHint; -typedef struct CRT_struct -{ +typedef struct CRT_struct { CRT_CA screen[CRT_CELS]; CRT_Pos pos; int hide_cursor; diff --git a/src/history.h b/src/history.h index 8ca80b2..3baa097 100644 --- a/src/history.h +++ b/src/history.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.7 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.6 2008/03/07 12:37:04 james * *** empty log message *** * @@ -35,15 +38,13 @@ #ifndef __HISTORY_H__ #define __HISTORY_H__ -typedef struct -{ +typedef struct { int valid; time_t t; CRT_CA line[CRT_COLS]; } History_ent; -typedef struct -{ +typedef struct { History_ent *lines; int nlines; int wptr; diff --git a/src/ipc.h b/src/ipc.h index 9b2f438..212d3cf 100644 --- a/src/ipc.h +++ b/src/ipc.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.12 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.11 2008/03/07 14:13:40 james * *** empty log message *** * @@ -69,44 +72,38 @@ #define IPC_MSG_TYPE_RESET 14 #define IPC_MSG_TYPE_KILLME 15 -typedef struct -{ +typedef struct { int32_t size; int32_t type; uint8_t payload[0]; } IPC_Msg_hdr; -typedef struct -{ +typedef struct { int32_t size; int32_t type; } IPC_Msg_noop; -typedef struct -{ +typedef struct { int32_t size; int32_t type; char msg[0]; } IPC_Msg_debug; -typedef struct -{ +typedef struct { int32_t size; int32_t type; char msg[0]; } IPC_Msg_initialize; -typedef struct -{ +typedef struct { int32_t size; int32_t type; History_ent history; } IPC_Msg_history; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t len; @@ -114,15 +111,13 @@ typedef struct } IPC_Msg_VT102; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t key; } IPC_Msg_key; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t len; @@ -130,76 +125,66 @@ typedef struct } IPC_Msg_term; -typedef struct -{ +typedef struct { int32_t size; int32_t type; char status[0]; } IPC_Msg_status; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t baud; } IPC_Msg_setbaud; -typedef struct -{ +typedef struct { int32_t size; int32_t type; } IPC_Msg_sendbreak; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t flow; } IPC_Msg_setflow; -typedef struct -{ +typedef struct { int32_t size; int32_t type; int32_t ansi; } IPC_Msg_setansi; -typedef struct -{ +typedef struct { int32_t size; int32_t type; } IPC_Msg_hangup; -typedef struct -{ +typedef struct { int32_t size; int32_t type; CRT_Pos winsize; } IPC_Msg_setsize; -typedef struct -{ +typedef struct { int32_t size; int32_t type; } IPC_Msg_reset; -typedef struct -{ +typedef struct { int32_t size; int32_t type; } IPC_Msg_killme; -typedef union -{ +typedef union { IPC_Msg_hdr hdr; IPC_Msg_noop noop; IPC_Msg_debug debug; diff --git a/src/keydis.c b/src/keydis.c index 75c6d98..ad75996 100644 --- a/src/keydis.c +++ b/src/keydis.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.16 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.15 2008/03/07 13:16:02 james * *** empty log message *** * @@ -65,13 +68,11 @@ static char rcsid[] = "$Id$"; #define CMD_BUFLEN 128 -typedef struct -{ +typedef struct { KEYDIS_SIGNATURE; } KeyDis_VT102; -typedef struct -{ +typedef struct { KEYDIS_SIGNATURE; Socket *s; } KeyDis_IPC; diff --git a/src/keydis.h b/src/keydis.h index ac69b7a..f1f2c2b 100644 --- a/src/keydis.h +++ b/src/keydis.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.10 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.9 2008/03/07 12:37:04 james * *** empty log message *** * @@ -63,8 +66,7 @@ struct Context_struct; -typedef struct KeyDis_struct -{ +typedef struct KeyDis_struct { KEYDIS_SIGNATURE; } KeyDis; diff --git a/src/lockfile.h b/src/lockfile.h index b8b1775..cfd1899 100644 --- a/src/lockfile.h +++ b/src/lockfile.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.11 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.10 2008/03/07 12:37:04 james * *** empty log message *** * @@ -52,20 +55,17 @@ #define FILE_LIST_MAX_LEN 1024 -typedef struct Filelist_ent -{ +typedef struct Filelist_ent { char name[FILE_LIST_MAX_LEN]; struct Filelist_ent *next; } Filelist_ent; -typedef struct -{ +typedef struct { Filelist_ent *head; } Filelist; -typedef struct -{ +typedef struct { int mode; int i; struct timeval last_stale_purge; diff --git a/src/log.c b/src/log.c index c117779..b8b2186 100644 --- a/src/log.c +++ b/src/log.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.12 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.11 2008/03/07 13:16:02 james * *** empty log message *** * @@ -47,8 +50,7 @@ static char rcsid[] = "$Id$"; #include "project.h" -typedef struct -{ +typedef struct { LOG_SIGNATURE; int do_close; int rotate; @@ -56,6 +58,69 @@ typedef struct char *filename; } File_Log; + +static Log *loggers = NULL; + + +static void +sighup (int dummy) +{ + Log *l; + + for (l = loggers; l; l = l->next) { + if (l->sighup) + l->sighup (l); + } +} + + +void +log_register_handlers (void) +{ + struct sigaction sa = { 0 }; + + sa.sa_handler = sighup; + sa.sa_flags = SA_RESTART; + sigaction (SIGHUP, &sa, NULL); +} + + +void +log_add (Log * l) +{ + log_register_handlers (); + + l->next = loggers; + loggers = l; +} + +void +log_remove (Log * l) +{ + Log **ptr = &loggers; + + /* Take out of cleanup list */ + while (*ptr && (*ptr != l)) + ptr = &((*ptr)->next); + + if (*ptr) + *ptr = l->next; +} + + +static void +flog_sighup (Log * _l) +{ + File_Log *l = (File_Log *) _l; + if (!l->fp) + return; + + fclose (l->fp); + + l->fp = fopen (l->filename, "a+"); +} + + static void flog_log (Log * _l, char *buf) { @@ -110,28 +175,32 @@ Log * file_log_new (char *fn, int rotate) { File_Log *l; - FILE *f; int dc = 1; + l = xmalloc (sizeof (File_Log)); + if (fn && strcmp (fn, "-")) { - f = fopen (fn, "a+"); - if (!f) + l->fp = fopen (fn, "a+"); + if (!l->fp) { + free (l); return NULL; + } + l->sighup = flog_sighup; } else { - f = stderr; + l->fp = stderr; dc = 0; } - l = xmalloc (sizeof (File_Log)); l->log = flog_log; l->close = flog_close; - l->fp = f; l->do_close = dc; l->rotate = rotate; l->filename = strdup (fn); - fput_cp (f, 0xffef); + fput_cp (l->fp, 0xffef); + + log_add ((Log *) l); return (Log *) l; } diff --git a/src/log.h b/src/log.h index 27510b9..81a95c4 100644 --- a/src/log.h +++ b/src/log.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.6 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.5 2008/03/07 12:37:04 james * *** empty log message *** * @@ -33,11 +36,12 @@ #define __LOG_H__ #define LOG_SIGNATURE \ + struct Log_struct *next; \ void (*log)(struct Log_struct *,char *); \ + void (*sighup)(struct Log_struct *); \ void (*close)(struct Log_struct *) -typedef struct Log_struct -{ +typedef struct Log_struct { LOG_SIGNATURE; } Log; diff --git a/src/ptty.c b/src/ptty.c index 393eab6..000587b 100644 --- a/src/ptty.c +++ b/src/ptty.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.21 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.20 2008/03/07 13:16:02 james * *** empty log message *** * @@ -90,8 +93,7 @@ static char rcsid[] = "$Id$"; #include "project.h" -typedef struct -{ +typedef struct { TTY_SIGNATURE; int fd; pid_t child; diff --git a/src/raw.c b/src/raw.c index 15c12f8..4f4af5e 100644 --- a/src/raw.c +++ b/src/raw.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.8 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.7 2008/03/07 13:16:02 james * *** empty log message *** * @@ -36,15 +39,13 @@ static char rcsid[] = "$Id$"; #include "project.h" -typedef struct -{ +typedef struct { RX_SIGNATURE; int rfd; int wfd; } RX_Raw; -typedef struct -{ +typedef struct { TTY_SIGNATURE; } RAW_TERMINAL; diff --git a/src/ring.h b/src/ring.h index 303faca..51cf4c0 100644 --- a/src/ring.h +++ b/src/ring.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.6 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.5 2008/03/07 12:37:04 james * *** empty log message *** * @@ -32,8 +35,7 @@ #ifndef __RING_H__ #define __RING_H__ -typedef struct -{ +typedef struct { uint8_t *ring; int wptr; int rptr; diff --git a/src/rx.h b/src/rx.h index c1c58ea..d1a6110 100644 --- a/src/rx.h +++ b/src/rx.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.5 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.4 2008/03/07 12:37:04 james * *** empty log message *** * @@ -34,8 +37,7 @@ void (*close)(struct RX_struct *); -typedef struct RX_struct -{ +typedef struct RX_struct { RX_SIGNATURE; } RX; diff --git a/src/serial.c b/src/serial.c index 1592f9e..b32e48e 100644 --- a/src/serial.c +++ b/src/serial.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.17 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.16 2008/03/07 13:16:02 james * *** empty log message *** * @@ -93,8 +96,7 @@ static char rcsid[] = "$Id$"; #include -typedef struct -{ +typedef struct { TTY_SIGNATURE; Serial_lock *lock; int fd; diff --git a/src/slide.h b/src/slide.h index f42b99c..d92726b 100644 --- a/src/slide.h +++ b/src/slide.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.5 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.4 2008/03/07 12:37:04 james * *** empty log message *** * @@ -35,8 +38,7 @@ #ifndef __SLIDE_H__ #define __SLIDE_H__ -typedef struct -{ +typedef struct { uint8_t *slide; int nbytes; int target_size; diff --git a/src/symsocket.h b/src/symsocket.h index fdc4ff5..7d93beb 100644 --- a/src/symsocket.h +++ b/src/symsocket.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.6 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.5 2008/03/07 12:37:04 james * *** empty log message *** * @@ -32,8 +35,7 @@ #ifndef __SYMSOCKET_H__ #define __SYMSOCKET_H__ -typedef struct -{ +typedef struct { int fd; Slide *read_buf; diff --git a/src/terminal.c b/src/terminal.c index 48f57a3..e01a6f6 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -11,6 +11,9 @@ static char rcsid[] = /* * $Log$ + * Revision 1.20 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.19 2008/03/07 14:16:44 james * *** empty log message *** * @@ -91,8 +94,7 @@ static char rcsid[] = #include "project.h" -typedef struct TERMINAL_struct -{ +typedef struct TERMINAL_struct { TTY_SIGNATURE; struct termios orig_termios; struct TERMINAL_struct *next; @@ -140,6 +142,8 @@ terminal_close (TTY * _t) // // // + // + // // to // bottom t->xmit (_t, buf, i); diff --git a/src/tty.c b/src/tty.c index df1ad8f..86551d1 100644 --- a/src/tty.c +++ b/src/tty.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.26 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.25 2008/03/07 13:16:02 james * *** empty log message *** * @@ -377,8 +380,7 @@ tty_winch (TTY * t, CRT_Pos size) #if 0 -typedef struct -{ +typedef struct { int in_dle; int in_errmark; diff --git a/src/tty.h b/src/tty.h index b5b3888..f695c41 100644 --- a/src/tty.h +++ b/src/tty.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.16 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.15 2008/03/07 12:37:04 james * *** empty log message *** * @@ -81,8 +84,7 @@ #define TTY_BITFREQ_LEN 10 -typedef struct -{ +typedef struct { int in_dle; int in_errmark; @@ -94,13 +96,11 @@ typedef struct } TTY_Parser; -typedef struct TTY_struct -{ +typedef struct TTY_struct { TTY_SIGNATURE; } TTY; -typedef struct -{ +typedef struct { int lines; int blocked; struct termios termios; diff --git a/src/utf8.h b/src/utf8.h index e1958d5..0643e72 100644 --- a/src/utf8.h +++ b/src/utf8.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.8 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.7 2008/03/07 12:37:04 james * *** empty log message *** * @@ -40,8 +43,7 @@ #define __UTF8_H__ -typedef struct -{ +typedef struct { int in_utf8; uint8_t utf_buf[4]; diff --git a/src/vt102.h b/src/vt102.h index 54fa84c..246c6f0 100644 --- a/src/vt102.h +++ b/src/vt102.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.25 2008/03/10 11:49:33 james + * *** empty log message *** + * * Revision 1.24 2008/03/07 12:37:04 james * *** empty log message *** * @@ -101,8 +104,7 @@ #define VT102_NMODES 32 -typedef struct -{ +typedef struct { int in_escape; int in_cmd; @@ -112,8 +114,7 @@ typedef struct char cmd_buf[VT102_CMD_LEN]; } VT102_parser; -typedef struct -{ +typedef struct { CRT_Pos pos; int attr; int color; @@ -121,8 +122,7 @@ typedef struct } VT102_State; -typedef struct -{ +typedef struct { CRT_Pos top_margin, bottom_margin; CRT_Pos screen_start, screen_end; VT102_parser parser; -- cgit v1.2.3