diff --git a/emulator/server.c b/emulator/server.c
index 7d780bb..2436e56 100644
--- a/emulator/server.c
+++ b/emulator/server.c
ssize_t len;
uint16_t count;
- if (events & (EPOLLERR | EPOLLHUP))
+ if (events & (EPOLLERR | EPOLLHUP)) {
+ mainloop_remove_fd(client->fd);
return;
+ }
again:
len = recv(fd, buf + client->pkt_offset,
struct client *client;
enum btdev_type uninitialized_var(type);
- if (events & (EPOLLERR | EPOLLHUP))
+ if (events & (EPOLLERR | EPOLLHUP)) {
+ mainloop_remove_fd(server->fd);
return;
+ }
client = malloc(sizeof(*client));
if (!client)