aboutsummaryrefslogtreecommitdiff
path: root/src/lib/libkogata/mainloop.c
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2015-03-11 12:11:02 +0100
committerAlex Auvolat <alex@adnab.me>2015-03-11 12:11:02 +0100
commit35c1120a6069414dd279b988eb772f4eec0966f7 (patch)
treeae8ac18dc704b80a450692b6862f02d8b1ff186e /src/lib/libkogata/mainloop.c
parentbde334e6393b142d9953328e9ea2881ce88a1a7b (diff)
downloadkogata-35c1120a6069414dd279b988eb772f4eec0966f7.tar.gz
kogata-35c1120a6069414dd279b988eb772f4eec0966f7.zip
Clear screen from GIP client (in login)
Diffstat (limited to 'src/lib/libkogata/mainloop.c')
-rw-r--r--src/lib/libkogata/mainloop.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/libkogata/mainloop.c b/src/lib/libkogata/mainloop.c
index d3c0c50..d8890e7 100644
--- a/src/lib/libkogata/mainloop.c
+++ b/src/lib/libkogata/mainloop.c
@@ -99,12 +99,14 @@ void mainloop_run() {
int i = 0;
for (mainloop_fd_t *fd = mainloop_fds; fd != 0 && !mainloop_fds_change; fd = fd->next) {
if (sel_arg[i].got_flags & SEL_ERROR) {
+ ASSERT(fd->on_error != 0);
fd->on_error(fd);
} else if ((sel_arg[i].got_flags & SEL_READ) && fd->rd_buf != 0) {
fd->rd_buf_filled +=
read(fd->fd, 0, fd->rd_buf_expect_size - fd->rd_buf_filled, fd->rd_buf + fd->rd_buf_filled);
if (fd->rd_buf_filled == fd->rd_buf_expect_size) {
fd->rd_buf_filled = 0;
+ ASSERT(fd->rd_on_full != 0);
fd->rd_on_full(fd);
}
} else if ((sel_arg[i].got_flags & SEL_WRITE) && fd->wr_bufs[0].buf != 0) {
@@ -118,7 +120,7 @@ void mainloop_run() {
for (int i = 1; i < MAINLOOP_MAX_WR_BUFS; i++) {
fd->wr_bufs[i-1] = fd->wr_bufs[i];
}
- memset(&fd->wr_bufs[MAINLOOP_MAX_WR_BUFS-1].buf, 0, sizeof(mainloop_wr_buf_t));
+ fd->wr_bufs[MAINLOOP_MAX_WR_BUFS-1].buf = 0;
}
}
i++;