Code

frontend: Close a connection when receiving an exception of the fd.
authorSebastian Harl <sh@tokkee.org>
Thu, 10 Apr 2014 19:44:18 +0000 (21:44 +0200)
committerSebastian Harl <sh@tokkee.org>
Thu, 10 Apr 2014 19:44:18 +0000 (21:44 +0200)
src/frontend/sock.c

index 3b9799496df8bf1e70d501393e36b91de0ebd86e..70f22d705b694a4e24b6ff0639cd4cd33e0f4932 100644 (file)
@@ -381,9 +381,14 @@ socket_handle_incoming(sdb_fe_socket_t *sock,
        while (sdb_llist_iter_has_next(iter)) {
                sdb_object_t *obj = sdb_llist_iter_get_next(iter);
 
-               if (FD_ISSET(CONN(obj)->fd, exceptions))
+               if (FD_ISSET(CONN(obj)->fd, exceptions)) {
                        sdb_log(SDB_LOG_INFO, "Exception on fd %d",
                                        CONN(obj)->fd);
+                       /* close the connection */
+                       sdb_llist_iter_remove_current(iter);
+                       sdb_object_deref(obj);
+                       continue;
+               }
 
                if (FD_ISSET(CONN(obj)->fd, ready)) {
                        sdb_llist_iter_remove_current(iter);