From 6a4255cf4a29954108907716e9e69c72f041d5da Mon Sep 17 00:00:00 2001 From: james <> Date: Fri, 9 May 2008 12:35:57 +0000 Subject: *** empty log message *** --- apps/clients.c | 199 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 90 deletions(-) (limited to 'apps/clients.c') diff --git a/apps/clients.c b/apps/clients.c index 5971a67..0a38095 100644 --- a/apps/clients.c +++ b/apps/clients.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.25 2008/05/09 12:35:57 james + * *** empty log message *** + * * Revision 1.24 2008/03/11 17:56:04 james * *** empty log message *** * @@ -104,51 +107,53 @@ client_initialize (Client * c, Context * ctx) void client_execute_message (Client * client, IPC_Msg * m, Context * c) { - switch (m->hdr.type) { - case IPC_MSG_TYPE_NOOP: - break; - case IPC_MSG_TYPE_DEBUG: - log_f (c->l, "", m->debug.msg); - break; - case IPC_MSG_TYPE_KEY: - vt102_send (c, m->key.key); - break; - case IPC_MSG_TYPE_SETBAUD: - tty_set_baud (c->t, m->setbaud.baud); - tty_parse_reset (c); - log_f (c->l, "", m->setbaud.baud); - break; - case IPC_MSG_TYPE_SENDBREAK: - log_f (c->l, ""); - tty_send_break (c->t); - break; - case IPC_MSG_TYPE_SETFLOW: - log_f (c->l, "", m->setflow.flow ? "on" : "off"); - tty_set_flow (c->t, m->setflow.flow); - break; - case IPC_MSG_TYPE_SETANSI: - vt102_set_ansi (c->v, m->setansi.ansi); - break; - case IPC_MSG_TYPE_HANGUP: - log_f (c->l, ""); - tty_hangup (c->t); - break; - case IPC_MSG_TYPE_SETSIZE: - vt102_resize (c, m->setsize.winsize); - break; - case IPC_MSG_TYPE_RESET: - vt102_reset (c); - break; - case IPC_MSG_TYPE_INITIALIZE: - client_initialize (client, c); - break; - case IPC_MSG_TYPE_KILLME: - client->dead++; - break; - - default: - log_f (c->l, "", m->hdr.type); - } + switch (m->hdr.type) + { + case IPC_MSG_TYPE_NOOP: + break; + case IPC_MSG_TYPE_DEBUG: + log_f (c->l, "", m->debug.msg); + break; + case IPC_MSG_TYPE_KEY: + vt102_send (c, m->key.key); + break; + case IPC_MSG_TYPE_SETBAUD: + tty_set_baud (c->t, m->setbaud.baud); + tty_parse_reset (c); + log_f (c->l, "", m->setbaud.baud); + break; + case IPC_MSG_TYPE_SENDBREAK: + log_f (c->l, ""); + tty_send_break (c->t); + break; + case IPC_MSG_TYPE_SETFLOW: + log_f (c->l, "", + m->setflow.flow ? "on" : "off"); + tty_set_flow (c->t, m->setflow.flow); + break; + case IPC_MSG_TYPE_SETANSI: + vt102_set_ansi (c->v, m->setansi.ansi); + break; + case IPC_MSG_TYPE_HANGUP: + log_f (c->l, ""); + tty_hangup (c->t); + break; + case IPC_MSG_TYPE_SETSIZE: + vt102_resize (c, m->setsize.winsize); + break; + case IPC_MSG_TYPE_RESET: + vt102_reset (c); + break; + case IPC_MSG_TYPE_INITIALIZE: + client_initialize (client, c); + break; + case IPC_MSG_TYPE_KILLME: + client->dead++; + break; + + default: + log_f (c->l, "", m->hdr.type); + } } @@ -197,18 +202,23 @@ clients_reap (Clients * cs, Context * ctx) Client **p, *c; - for (p = &cs->head; *p;) { - Client *c = *p; + for (p = &cs->head; *p;) + { + Client *c = *p; - if (c->dead) { - *p = c->next; - client_free (c); - cs->n--; - log_f (ctx->l, "", c, cs->n); - } else { - p = &(c->next); + if (c->dead) + { + *p = c->next; + client_free (c); + cs->n--; + log_f (ctx->l, "", c, + cs->n); + } + else + { + p = &(c->next); + } } - } } Clients * @@ -227,9 +237,10 @@ clients_pre_select (Clients * cs, fd_set * rfds, fd_set * wfds) { Client *c; - for (c = cs->head; c; c = c->next) { - socket_pre_select (c->s, rfds, wfds); - } + for (c = cs->head; c; c = c->next) + { + socket_pre_select (c->s, rfds, wfds); + } } void @@ -239,21 +250,24 @@ clients_post_select (Clients * cs, Context * ctx, fd_set * rfds, Client *c; int deaded = 0; - for (c = cs->head; c; c = c->next) { - if (socket_post_select (c->s, rfds, wfds)) { - c->dead++; - deaded++; - } + for (c = cs->head; c; c = c->next) + { + if (socket_post_select (c->s, rfds, wfds)) + { + c->dead++; + deaded++; + } + + if (c->s->msg) + { + client_execute_message (c, c->s->msg, ctx); + socket_consume_msg (c->s); + if (c->dead) + deaded++; + } - if (c->s->msg) { - client_execute_message (c, c->s->msg, ctx); - socket_consume_msg (c->s); - if (c->dead) - deaded++; } - } - if (deaded) clients_reap (cs, ctx); } @@ -264,9 +278,10 @@ clients_shutdown (Clients * cs, Context * ctx) { Client *c; - for (c = cs->head; c; c = c->next) { - c->dead++; - } + for (c = cs->head; c; c = c->next) + { + c->dead++; + } clients_reap (cs, ctx); @@ -300,11 +315,12 @@ send_status (Clients * cs, char *msg) strncpy (m->status, msg, IPC_MAX_BUF); m->status[IPC_MAX_BUF - 1] = 0; - for (c = cs->head; c; c = c->next) { - if (!c->dead && c->initialized) - if (ipc_msg_send (c->s, (IPC_Msg *) m)) - c->dead++; - } + for (c = cs->head; c; c = c->next) + { + if (!c->dead && c->initialized) + if (ipc_msg_send (c->s, (IPC_Msg *) m)) + c->dead++; + } return len; } @@ -328,11 +344,12 @@ send_output (Clients * cs, void *buf, int len) m->len = len; memcpy (m->term, buf, len); - for (c = cs->head; c; c = c->next) { - if (!c->dead && c->initialized) - if (ipc_msg_send (c->s, (IPC_Msg *) m)) - c->dead++; - } + for (c = cs->head; c; c = c->next) + { + if (!c->dead && c->initialized) + if (ipc_msg_send (c->s, (IPC_Msg *) m)) + c->dead++; + } return len; @@ -346,16 +363,18 @@ send_history (History * h, Client * c) HISTORY_INC (h, rptr); HISTORY_INC (h, rptr); - while (rptr != h->wptr) { - History_ent *l = &h->lines[rptr]; - if (l->valid) { + while (rptr != h->wptr) + { + History_ent *l = &h->lines[rptr]; + if (l->valid) + { - if (ipc_msg_send_history (c->s, l)) - c->dead++; + if (ipc_msg_send_history (c->s, l)) + c->dead++; + } + HISTORY_INC (h, rptr); } - HISTORY_INC (h, rptr); - } } void -- cgit v1.2.3