]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Remove thread_mode field of multi_context
authorArne Schwabe <arne@rfc2549.org>
Thu, 1 Apr 2021 13:13:33 +0000 (15:13 +0200)
committerGert Doering <gert@greenie.muc.de>
Fri, 2 Apr 2021 14:52:07 +0000 (16:52 +0200)
This is leftover of a never functional multi threaded openvpn
implementation attempt. It serves no purposes anymore.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20210401131337.3684-11-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21952.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/mtcp.c
src/openvpn/mudp.c
src/openvpn/multi.c
src/openvpn/multi.h

index 7d2a69b991eb1160fcc8e99ebaeee47407955468..babed29efe4feb73379c4e06474180de029bd82e 100644 (file)
@@ -789,7 +789,7 @@ tunnel_server_tcp(struct context *top)
     }
 
     /* initialize global multi_context object */
-    multi_init(&multi, top, true, MC_SINGLE_THREADED);
+    multi_init(&multi, top, true);
 
     /* initialize our cloned top object */
     multi_top_init(&multi, top);
index 7977ece5dd0a67d179accda028d2ceaf6a4866d1..90e32a8ec8b95e4051c710716fc8f0b3b57564e9 100644 (file)
@@ -300,7 +300,7 @@ tunnel_server_udp(struct context *top)
     }
 
     /* initialize global multi_context object */
-    multi_init(&multi, top, false, MC_SINGLE_THREADED);
+    multi_init(&multi, top, false);
 
     /* initialize our cloned top object */
     multi_top_init(&multi, top);
index 56b4fc0d3d1c10d825e02f96186f7e6ef1713f24..f92b5c4aaf52ebd6cac45643b74417e3dc6c2fd8 100644 (file)
@@ -290,7 +290,7 @@ int_compare_function(const void *key1, const void *key2)
  * Main initialization function, init multi_context object.
  */
 void
-multi_init(struct multi_context *m, struct context *t, bool tcp_mode, int thread_mode)
+multi_init(struct multi_context *m, struct context *t, bool tcp_mode)
 {
     int dev = DEV_TYPE_UNDEF;
 
@@ -308,8 +308,6 @@ multi_init(struct multi_context *m, struct context *t, bool tcp_mode, int thread
      */
     CLEAR(*m);
 
-    m->thread_mode = thread_mode;
-
     /*
      * Real address hash table (source port number is
      * considered to be part of the address).  Used
@@ -703,53 +701,44 @@ multi_close_instance(struct multi_context *m,
 void
 multi_uninit(struct multi_context *m)
 {
-    if (m->thread_mode & MC_WORK_THREAD)
-    {
-        multi_top_free(m);
-        m->thread_mode = MC_UNDEF;
-    }
-    else if (m->thread_mode)
+    if (m->hash)
     {
-        if (m->hash)
-        {
-            struct hash_iterator hi;
-            struct hash_element *he;
+        struct hash_iterator hi;
+        struct hash_element *he;
 
-            hash_iterator_init(m->iter, &hi);
-            while ((he = hash_iterator_next(&hi)))
-            {
-                struct multi_instance *mi = (struct multi_instance *) he->value;
-                mi->did_iter = false;
-                multi_close_instance(m, mi, true);
-            }
-            hash_iterator_free(&hi);
+        hash_iterator_init(m->iter, &hi);
+        while ((he = hash_iterator_next(&hi)))
+        {
+            struct multi_instance *mi = (struct multi_instance *) he->value;
+            mi->did_iter = false;
+            multi_close_instance(m, mi, true);
+        }
+        hash_iterator_free(&hi);
 
-            multi_reap_all(m);
+        multi_reap_all(m);
 
-            hash_free(m->hash);
-            hash_free(m->vhash);
-            hash_free(m->iter);
+        hash_free(m->hash);
+        hash_free(m->vhash);
+        hash_free(m->iter);
 #ifdef ENABLE_MANAGEMENT
-            hash_free(m->cid_hash);
+        hash_free(m->cid_hash);
 #endif
-            m->hash = NULL;
+        m->hash = NULL;
 
-            free(m->instances);
+        free(m->instances);
 
 #ifdef ENABLE_ASYNC_PUSH
-            hash_free(m->inotify_watchers);
-            m->inotify_watchers = NULL;
+        hash_free(m->inotify_watchers);
+        m->inotify_watchers = NULL;
 #endif
 
-            schedule_free(m->schedule);
-            mbuf_free(m->mbuf);
-            ifconfig_pool_free(m->ifconfig_pool);
-            frequency_limit_free(m->new_connection_limiter);
-            multi_reap_free(m->reaper);
-            mroute_helper_free(m->route_helper);
-            multi_tcp_free(m->mtcp);
-            m->thread_mode = MC_UNDEF;
-        }
+        schedule_free(m->schedule);
+        mbuf_free(m->mbuf);
+        ifconfig_pool_free(m->ifconfig_pool);
+        frequency_limit_free(m->new_connection_limiter);
+        multi_reap_free(m->reaper);
+        mroute_helper_free(m->route_helper);
+        multi_tcp_free(m->mtcp);
     }
 }
 
index 7669508c35bfd020fabee23fdd277dba14c39492..b7078b711cdb0cd3653e6125e01aafc59ce8141f 100644 (file)
@@ -150,14 +150,6 @@ struct multi_instance {
  * server-mode.
  */
 struct multi_context {
-#define MC_UNDEF                      0
-#define MC_SINGLE_THREADED            (1<<0)
-#define MC_MULTI_THREADED_MASTER      (1<<1)
-#define MC_MULTI_THREADED_WORKER      (1<<2)
-#define MC_MULTI_THREADED_SCHEDULER   (1<<3)
-#define MC_WORK_THREAD                (MC_MULTI_THREADED_WORKER|MC_MULTI_THREADED_SCHEDULER)
-    int thread_mode;
-
     struct multi_instance **instances;  /**< Array of multi_instances. An instance can be
                                          * accessed using peer-id as an index. */
 
@@ -261,7 +253,7 @@ const char *multi_instance_string(const struct multi_instance *mi, bool null, st
  * Called by mtcp.c, mudp.c, or other (to be written) protocol drivers
  */
 
-void multi_init(struct multi_context *m, struct context *t, bool tcp_mode, int thread_mode);
+void multi_init(struct multi_context *m, struct context *t, bool tcp_mode);
 
 void multi_uninit(struct multi_context *m);