diff options
author | Tiago Cunha <tcunha@gmx.com> | 2009-11-08 22:58:38 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2009-11-08 22:58:38 +0000 |
commit | 971a7b2fe0d86c9e41bd0802997d20c61eeed2a3 (patch) | |
tree | 443ec5a72c5bafef68cc023d98ea013bd9b00c94 /server-client.c | |
parent | 7851bb81f5c445422da168393e4f617069c18925 (diff) | |
download | rtmux-971a7b2fe0d86c9e41bd0802997d20c61eeed2a3.tar.gz rtmux-971a7b2fe0d86c9e41bd0802997d20c61eeed2a3.tar.bz2 rtmux-971a7b2fe0d86c9e41bd0802997d20c61eeed2a3.zip |
Sync OpenBSD patchset 495:
Switch tty fds over to a bufferevent.
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/server-client.c b/server-client.c index dfa4fa3a..cc88d95b 100644 --- a/server-client.c +++ b/server-client.c @@ -1,4 +1,4 @@ -/* $Id: server-client.c,v 1.13 2009-11-08 22:40:36 tcunha Exp $ */ +/* $Id: server-client.c,v 1.14 2009-11-08 22:58:37 tcunha Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -135,8 +135,7 @@ server_client_lost(struct client *c) close(c->ibuf.fd); imsg_clear(&c->ibuf); event_del(&c->event); - event_del(&c->tty.event); - + for (i = 0; i < ARRAY_LENGTH(&dead_clients); i++) { if (ARRAY_ITEM(&dead_clients, i) == NULL) { ARRAY_SET(&dead_clients, i, c); @@ -171,18 +170,6 @@ server_client_prepare(void) event_set(&c->event, c->ibuf.fd, events, server_client_callback, c); event_add(&c->event, NULL); - - if (c->tty.fd == -1) - continue; - if (c->flags & CLIENT_SUSPENDED || c->session == NULL) - continue; - events = EV_READ; - if (BUFFER_USED(c->tty.out) > 0) - events |= EV_WRITE; - event_del(&c->tty.event); - event_set(&c->tty.event, - c->tty.fd, events, server_client_callback, c); - event_add(&c->tty.event, NULL); } } @@ -208,14 +195,6 @@ server_client_callback(int fd, short events, void *data) if (events & EV_READ && server_client_msg_dispatch(c) != 0) goto client_lost; } - - if (c->tty.fd != -1 && fd == c->tty.fd) { - if (c->flags & CLIENT_SUSPENDED || c->session == NULL) - return; - - if (buffer_poll(fd, events, c->tty.in, c->tty.out) != 0) - goto client_lost; - } return; |