vcl: switch to closed state after app close

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I851db474538de76d5f70dd6d6f83a6487a5a02bd
diff --git a/src/vcl/ldp.c b/src/vcl/ldp.c
index 34eba37..d0cf2b9 100644
--- a/src/vcl/ldp.c
+++ b/src/vcl/ldp.c
@@ -653,6 +653,7 @@
   /* *INDENT-OFF* */
   clib_bitmap_foreach (si, vclb, ({
     vlsh = vls_session_index_to_vlsh (si);
+    ASSERT (vlsh != VLS_INVALID_HANDLE);
     fd = ldp_vlsh_to_fd (vlsh);
     if (PREDICT_FALSE (fd < 0))
       {
diff --git a/src/vcl/vcl_private.h b/src/vcl/vcl_private.h
index fd9d73c..f9fa066 100644
--- a/src/vcl/vcl_private.h
+++ b/src/vcl/vcl_private.h
@@ -64,7 +64,7 @@
 
 typedef enum
 {
-  STATE_START = 0,
+  STATE_CLOSED = 0,
   STATE_CONNECT = 0x01,
   STATE_LISTEN = 0x02,
   STATE_ACCEPT = 0x04,
diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c
index 916ddf9..892d65c 100644
--- a/src/vcl/vppcom.c
+++ b/src/vcl/vppcom.c
@@ -60,8 +60,8 @@
 
   switch (state)
     {
-    case STATE_START:
-      st = "STATE_START";
+    case STATE_CLOSED:
+      st = "STATE_CLOSED";
       break;
 
     case STATE_CONNECT:
@@ -1220,7 +1220,7 @@
   session = vcl_session_alloc (wrk);
 
   session->session_type = proto;
-  session->session_state = STATE_START;
+  session->session_state = STATE_CLOSED;
   session->vpp_handle = ~0;
   session->is_dgram = vcl_proto_is_dgram (proto);
 
@@ -1309,6 +1309,8 @@
 				    session->vpp_handle, 0);
     }
 
+  session->session_state = STATE_CLOSED;
+
   /* Session is removed only after vpp confirms the disconnect */
   return rv;