summaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authornicm <nicm>2021-02-11 09:39:29 +0000
committernicm <nicm>2021-02-11 09:39:29 +0000
commit2b58c226db055eff4bbb971fa00938b42690f4ac (patch)
tree99ef851469726bd9f6f7f6087cce68cd660a0b67 /file.c
parent79e1984962281d94b25ff14ac3de31bc63358ead (diff)
Add a couple of helper functions, and flush imsgs on exit.
Diffstat (limited to 'file.c')
-rw-r--r--file.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/file.c b/file.c
index 495568fa..8eb4e178 100644
--- a/file.c
+++ b/file.c
@@ -477,6 +477,26 @@ file_push(struct client_file *cf)
free(msg);
}
+/* Check if any files have data left to write. */
+int
+file_write_left(struct client_files *files)
+{
+ struct client_file *cf;
+ size_t left;
+ int waiting = 0;
+
+ RB_FOREACH (cf, client_files, files) {
+ if (cf->event == NULL)
+ continue;
+ left = EVBUFFER_LENGTH(cf->event->output);
+ if (left != 0) {
+ waiting++;
+ log_debug("file %u %zu bytes left", cf->stream, left);
+ }
+ }
+ return (waiting != 0);
+}
+
/* Client file write error callback. */
static void
file_write_error_callback(__unused struct bufferevent *bev, __unused short what,