From 7a28b8904a1d92528c92eb5c4fe7ce8f217b3393 Mon Sep 17 00:00:00 2001 From: james <> Date: Tue, 11 Mar 2008 17:47:24 +0000 Subject: *** empty log message *** --- apps/clients.c | 13 ++++++--- apps/clients.h | 7 +++-- apps/mainloop.c | 5 +++- sympathy.1 | 82 +++++++++++++++++++++++++++++++++++++++++---------------- 4 files changed, 78 insertions(+), 29 deletions(-) diff --git a/apps/clients.c b/apps/clients.c index d040431..6175492 100644 --- a/apps/clients.c +++ b/apps/clients.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.23 2008/03/11 17:47:24 james + * *** empty log message *** + * * Revision 1.22 2008/03/07 14:16:44 james * *** empty log message *** * @@ -177,6 +180,7 @@ clients_new_client (Clients * cs, Socket * s, Context * ctx) fprintf (stderr, "Client at %p created\n", c); #endif + log_f(ctx->l,"",c,cs->n); if (ipc_msg_send_debug (s, "new_client")) c->dead++; @@ -185,7 +189,7 @@ clients_new_client (Clients * cs, Socket * s, Context * ctx) } void -clients_reap (Clients * cs) +clients_reap (Clients * cs,Context *ctx) { Client **p, *c; @@ -197,6 +201,7 @@ clients_reap (Clients * cs) *p = c->next; client_free (c); cs->n--; + log_f(ctx->l,"",c,cs->n); } else { p = &(c->next); } @@ -247,12 +252,12 @@ clients_post_select (Clients * cs, Context * ctx, fd_set * rfds, } if (deaded) - clients_reap (cs); + clients_reap (cs,ctx); } void -clients_shutdown (Clients * cs) +clients_shutdown (Clients * cs,Context *ctx) { Client *c; @@ -261,7 +266,7 @@ clients_shutdown (Clients * cs) } - clients_reap (cs); + clients_reap (cs,ctx); } diff --git a/apps/clients.h b/apps/clients.h index b2e669a..5c8b419 100644 --- a/apps/clients.h +++ b/apps/clients.h @@ -12,6 +12,9 @@ /* * $Log$ + * Revision 1.10 2008/03/11 17:47:24 james + * *** empty log message *** + * * Revision 1.9 2008/03/10 11:49:32 james * *** empty log message *** * @@ -60,12 +63,12 @@ typedef struct { /* clients.c */ extern void client_free (Client * c); extern Client *clients_new_client (Clients * cs, Socket * s, Context * ctx); -extern void clients_reap (Clients * cs); +extern void clients_reap (Clients * cs,Context *ctx); extern Clients *clients_new (void); extern void clients_pre_select (Clients * cs, fd_set * rfds, fd_set * wfds); extern void clients_post_select (Clients * cs, Context * ctx, fd_set * rfds, fd_set * wfds); -extern void clients_shutdown (Clients * cs); +extern void clients_shutdown (Clients * cs,Context *ctx); extern int send_output (Clients * cs, void *buf, int len); extern int send_status (Clients * cs, char *msg); diff --git a/apps/mainloop.c b/apps/mainloop.c index 74e456e..4cc65a0 100644 --- a/apps/mainloop.c +++ b/apps/mainloop.c @@ -11,6 +11,9 @@ static char rcsid[] = /* * $Log$ + * Revision 1.30 2008/03/11 17:47:24 james + * *** empty log message *** + * * Revision 1.29 2008/03/10 11:49:32 james * *** empty log message *** * @@ -557,5 +560,5 @@ mainloop (Context * c, ANSI * ansi, Socket * server_socket, } if (clients) - clients_shutdown (clients); + clients_shutdown (clients,c); } diff --git a/sympathy.1 b/sympathy.1 index 5f795cc..2dacc6d 100644 --- a/sympathy.1 +++ b/sympathy.1 @@ -424,37 +424,75 @@ Feb 27 23:24:42.509440 .I Sympathy logs a line to the file whenever the cursor leaves the line. Additionally .I sympathy -logs certain other events to the file. When the baud\-rate is changed -.I sympathy -writes . Whenever a modem control line changes state +.IP \(bu 3 +logs certain other events to the file: +.IP \(bu 3 +serial port parameter changes: baud\-rate and flow control. +.IP \(bu 3 +serial port control line state changes. +.IP \(bu 3 +serial port line discipline errors. +.IP \(bu 3 +serial port errors. +.IP \(bu 3 +suggested baud rates and bit frequency analyses. +.IP \(bu 3 +transmission of breaks. +.IP \(bu 3 +sending of the hangup signal (dropping the DTR line). +.IP \(bu 3 +unknown or unhandled messages sent on the socket. +.IP \(bu 3 +connexion and disconexion of clients. +.IP \(bu 3 +recpetion of SIGHUP. +.IP \(bu 3 +invalid UTF-8 sequences. +.IP \(bu 3 +terminal size changes +.IP \(bu 3 +unhandled terminal command sequences +.PP +The log file is rotated when it gets too large if the \fI\-R\fP option +is specified, and the log file is re-opened on recipt of a \fBSIGHUP\fP +which together with the \fB\-P\fP allows the use of of a program such +as logrotate(8) +.SH AUTOMATIC BAUD RATE ALGORYTM +If .I sympathy -appends to the log. Where \fI+\fP -indicates that \fIline\fP was asserted and \fI-\fP indicates that it was de-asserted. -.I Sympathy -writes a message of the form whenever the screen size is -changed, either by escape sequences, or via a user command. -When the terminal device reports receive errors -.I sympathy -adds additional information to the log. It reports the character sequence reporting the error +detects a framing error on the serial port it displays the count of +errors on the status line, and logs the error. .IP .PP -the observed frequencies of the different bit periods -.IP +The count is reset to zero after ten seconds +have elapsed during which no errors have occured. +.I Sympathy +looks at bit patterns of the characters recevied, and +measures the length (in units of the reciving UART's +bit period) of any runs of '1's delimited by '0's and vice\-versa. It +then calculates the statistics on the length of these runs, and logs these. +.IP .PP -and the conclusions of the baud\-rate guessing algorithm +For a typical +stream of ASCII data, the most common run length will be the correct bit +period. +.I Sympathy +uses this togetehr with the current bit period to calculate the most probable +correct baud\-rate, which is displayed in the status line, and logged. +If the correct baud\irate is higher than the current baud\-rate then the most common bit frequencey will be '0' or '1' and the correct baud\-rate cannot be +determined. In this case sympathy will display and log the message 'try higher'. .IP .PP -Invalid UTF\-8 sequences are also reported -.IP - -.PP -The log file is rotated when it gets too large if the \fI\-R\fP option -is specified, and the log file is re-opened on recipt of a \fBSIGHUP\fP -which together with the \fB\-P\fP allows the use of of a program such -as logrotate(8) +The algorythm only works well if the data stream is normal. If the data stream +is generated by the reception, at the wrong baud\-rate, of characters emited +by +.I sympathy +then the algoryhtm will be biased towards suggesting that the baud\-rate +is too low. Noise on the line will also result in sympathy concluding that +the baud\-rate is too low. .SH SIGNALS .I Sympathy reacts to a set of signals. You can use the \fB-P\fP option -- cgit v1.2.3