VCL: Handle epoll HUP events in sock_test_server 29/11129/2
authorDave Wallace <dwallacelf@gmail.com>
Tue, 13 Mar 2018 23:37:54 +0000 (19:37 -0400)
committerDamjan Marion <dmarion.lists@gmail.com>
Wed, 14 Mar 2018 13:33:25 +0000 (13:33 +0000)
Change-Id: I7b13319228c498a565f8556b73628e7ff3b106c4
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
src/vcl/sock_test_server.c

index c0baefa..39ffb8e 100644 (file)
@@ -704,6 +704,16 @@ main (int argc, char **argv)
        }
       for (i = 0; i < num_ev; i++)
        {
+         conn = &ssm->conn_pool[ssm->wait_events[i].data.u32];
+         if (ssm->wait_events[i].events & (EPOLLHUP | EPOLLRDHUP))
+           {
+#ifdef VCL_TEST
+             vppcom_session_close (conn->fd);
+#else
+             close (conn->fd);
+#endif
+             continue;
+           }
          if (ssm->wait_events[i].data.u32 == ~0)
            {
              new_client ();
@@ -717,7 +727,6 @@ main (int argc, char **argv)
              continue;
            }
 #endif
-         conn = &ssm->conn_pool[ssm->wait_events[i].data.u32];
 #endif
          client_fd = conn->fd;