hs-test: more debug output in http3 test
[vpp.git] / src / vcl / vcl_private.c
index 95cc0bf..4af79e9 100644 (file)
@@ -138,6 +138,9 @@ vcl_api_app_worker_add (void)
 void
 vcl_api_app_worker_del (vcl_worker_t * wrk)
 {
+  if (wrk->api_client_handle == ~0)
+    return;
+
   if (vcm->cfg.vpp_app_socket_api)
     return vcl_sapi_app_worker_del (wrk);
 
@@ -249,6 +252,7 @@ vcl_worker_alloc_and_init ()
 
   wrk = vcl_worker_alloc ();
   vcl_set_worker_index (wrk->wrk_index);
+  wrk->api_client_handle = ~0;
   wrk->thread_id = pthread_self ();
   wrk->current_pid = getpid ();
 
@@ -337,7 +341,8 @@ vcl_session_read_ready (vcl_session_t * s)
          if (ph.data_length + SESSION_CONN_HDR_LEN > max_deq)
            return 0;
 
-         return ph.data_length;
+         /* Allow zero legth datagrams */
+         return ph.data_length ? ph.data_length : 1;
        }
 
       return svm_fifo_max_dequeue_cons (s->rx_fifo);
@@ -431,6 +436,7 @@ vcl_segment_attach (u64 segment_handle, char *name, ssvm_segment_type_t type,
   if ((rv = fifo_segment_attach (&vcm->segment_main, a)))
     {
       clib_warning ("svm_fifo_segment_attach ('%s') failed", name);
+      clib_rwlock_writer_unlock (&vcm->segment_table_lock);
       return rv;
     }
   hash_set (vcm->segment_table, segment_handle, a->new_segment_indices[0]);
@@ -474,7 +480,7 @@ vcl_segment_detach (u64 segment_handle)
 
   clib_rwlock_writer_unlock (&vcm->segment_table_lock);
 
-  VDBG (0, "detached segment %u handle %u", segment_index, segment_handle);
+  VDBG (0, "detached segment %u handle %lx", segment_index, segment_handle);
 }
 
 void