summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/control.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/control.c b/src/control.c
index 6eb42d13..13602914 100644
--- a/src/control.c
+++ b/src/control.c
@@ -193,11 +193,10 @@ control_handle_data(void *arg, unsigned short events)
{
struct fd_list *fd = arg;
- if (events != ELE_READ && events != ELE_WRITE &&
- events != (ELE_READ | ELE_WRITE))
+ if (!(events & (ELE_READ | ELE_WRITE)))
logerrx("%s: unexpected event 0x%04x", __func__, events);
- if (events & ELE_WRITE)
+ if (events & ELE_WRITE && !(events & ELE_HANGUP))
control_handle_write(fd);
if (events & ELE_READ)
control_handle_read(fd);