From fc338d9b30500f311d9555545477e4ba1775b403 Mon Sep 17 00:00:00 2001 From: james <> Date: Sat, 23 Feb 2008 11:49:23 +0000 Subject: *** empty log message *** --- apps/mainloop.c | 58 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 15 deletions(-) (limited to 'apps/mainloop.c') diff --git a/apps/mainloop.c b/apps/mainloop.c index 7fb269a..ad2812e 100644 --- a/apps/mainloop.c +++ b/apps/mainloop.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.9 2008/02/23 11:48:51 james + * *** empty log message *** + * * Revision 1.8 2008/02/22 23:39:30 james * *** empty log message *** * @@ -300,8 +303,29 @@ check_status (Context * c, Clients * cs) sprintf (ptr, ", %d client%s", status.nclients, (status.nclients == 1) ? "" : "s"); + if (c->tp->biterrs) + { + + ptr += + sprintf (ptr, ", %d err%s", c->tp->biterrs, + (c->tp->biterrs == 1) ? "" : "s"); + + if (c->tp->guessed_baud == -1) + { + ptr += sprintf (ptr, " try higher"); + } + else if (c->tp->guessed_baud > 0) + { + ptr += sprintf (ptr, " try %d", status.baud / c->tp->guessed_baud); + } + } + *ptr = 0; +#if 0 + log_f (c->l, "%s:%d %s", __FILE__, __LINE__, buf); +#endif + if (cs) send_status (cs, buf); else @@ -311,7 +335,7 @@ check_status (Context * c, Clients * cs) static int -msg_from_server (ANSI *a,IPC_Msg * m, Context * c) +msg_from_server (ANSI * a, IPC_Msg * m, Context * c) { switch (m->hdr.type) { @@ -330,10 +354,11 @@ msg_from_server (ANSI *a,IPC_Msg * m, Context * c) *(c->v) = m->vt102.vt102; - if (a->one_shot) { - a->one_shot(a,&c->v->crt); - return 1; - } + if (a->one_shot) + { + a->one_shot (a, &c->v->crt); + return 1; + } //FIXME HTML hook break; case IPC_MSG_TYPE_TERM: @@ -345,7 +370,7 @@ msg_from_server (ANSI *a,IPC_Msg * m, Context * c) default: fprintf (stderr, "Unhandeled message type %d\n", m->hdr.type); } -return 0; + return 0; } @@ -357,6 +382,8 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, Context c = { 0 }; Clients *clients; + c.tp = tty_parser_new (); + c.u = utf8_new (); c.v = vt102_new (); c.h = history_new (nhistory); @@ -401,7 +428,7 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, for (;;) { - struct timeval tv = { 1, 0 }; + struct timeval tv = { 0, 250000 }; if ((c.d) && (c.d->disconnect)) break; @@ -476,18 +503,19 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, /*any data from the server */ if (client_socket) { - int one_shot; + int one_shot; if (socket_post_select (client_socket, &rfds, &wfds)) break; while (client_socket->msg) { - if (msg_from_server (ansi,client_socket->msg, &c)) - one_shot++; - + if (msg_from_server (ansi, client_socket->msg, &c)) + one_shot++; + socket_consume_msg (client_socket); } - if (one_shot) break; + if (one_shot) + break; } @@ -495,10 +523,10 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, if (ansi) { if (ansi->dispatch) - ansi->dispatch (ansi, &c); + ansi->dispatch (ansi, &c); - if (ansi->update) - ansi->update (ansi, &c); + if (ansi->update) + ansi->update (ansi, &c); } } -- cgit v1.2.3