From 2b58c226db055eff4bbb971fa00938b42690f4ac Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 11 Feb 2021 09:39:29 +0000 Subject: Add a couple of helper functions, and flush imsgs on exit. --- file.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'file.c') 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, -- cgit