summaryrefslogtreecommitdiffstats
path: root/server-fn.c
diff options
context:
space:
mode:
authornicm <nicm>2015-11-14 09:41:06 +0000
committernicm <nicm>2015-11-14 09:41:06 +0000
commitc56b81a2ce815f6d289232f20bb6e07cfd0e36ec (patch)
tree7a018a8f9d4354684ad5748e4d218fd8d3273fc5 /server-fn.c
parent908e6bb68f127f2bdf0c15ac25dde9ccc06e9104 (diff)
Push stdout and stderr to clients more aggressively, and add an event to
continue if the send fails.
Diffstat (limited to 'server-fn.c')
-rw-r--r--server-fn.c44
1 files changed, 0 insertions, 44 deletions
diff --git a/server-fn.c b/server-fn.c
index e9a04cb5..bded7246 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -450,50 +450,6 @@ server_callback_identify(unused int fd, unused short events, void *data)
server_clear_identify(c);
}
-/* Push stdout to client if possible. */
-void
-server_push_stdout(struct client *c)
-{
- struct msg_stdout_data data;
- size_t size;
-
- size = EVBUFFER_LENGTH(c->stdout_data);
- if (size == 0)
- return;
- if (size > sizeof data.data)
- size = sizeof data.data;
-
- memcpy(data.data, EVBUFFER_DATA(c->stdout_data), size);
- data.size = size;
-
- if (proc_send(c->peer, MSG_STDOUT, -1, &data, sizeof data) == 0)
- evbuffer_drain(c->stdout_data, size);
-}
-
-/* Push stderr to client if possible. */
-void
-server_push_stderr(struct client *c)
-{
- struct msg_stderr_data data;
- size_t size;
-
- if (c->stderr_data == c->stdout_data) {
- server_push_stdout(c);
- return;
- }
- size = EVBUFFER_LENGTH(c->stderr_data);
- if (size == 0)
- return;
- if (size > sizeof data.data)
- size = sizeof data.data;
-
- memcpy(data.data, EVBUFFER_DATA(c->stderr_data), size);
- data.size = size;
-
- if (proc_send(c->peer, MSG_STDERR, -1, &data, sizeof data) == 0)
- evbuffer_drain(c->stderr_data, size);
-}
-
/* Set stdin callback. */
int
server_set_stdin_callback(struct client *c, void (*cb)(struct client *, int,