UDPC: Fix open segfault with multiple workers 40/19140/2
authorAloys Augustin <aloaugus@cisco.com>
Wed, 24 Apr 2019 11:21:43 +0000 (13:21 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 24 Apr 2019 14:54:05 +0000 (14:54 +0000)
Change-Id: Ib4a64f17831e2419f1d6140a6d24649c096bdfa5
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
src/vnet/udp/udp.c

index 46a26e4..138fe57 100644 (file)
@@ -344,9 +344,11 @@ int
 udpc_connection_open (transport_endpoint_cfg_t * rmt)
 {
   udp_connection_t *uc;
+  /* Reproduce the logic of udp_open_connection to find the correct thread */
+  u32 thread_index = vlib_num_workers ()? 1 : vlib_get_main ()->thread_index;
   u32 uc_index;
   uc_index = udp_open_connection (rmt);
-  uc = udp_connection_get (uc_index, vlib_get_thread_index ());
+  uc = udp_connection_get (uc_index, thread_index);
   uc->is_connected = 1;
   return uc_index;
 }