gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r31513 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r31513 - gnunet/src/transport
Date: Wed, 18 Dec 2013 11:08:50 +0100

Author: grothoff
Date: 2013-12-18 11:08:50 +0100 (Wed, 18 Dec 2013)
New Revision: 31513

Modified:
   gnunet/src/transport/gnunet-service-transport_plugins.c
Log:
-properly unload incomplete plugins

Modified: gnunet/src/transport/gnunet-service-transport_plugins.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_plugins.c     2013-12-18 
10:02:15 UTC (rev 31512)
+++ gnunet/src/transport/gnunet-service-transport_plugins.c     2013-12-18 
10:08:50 UTC (rev 31513)
@@ -120,14 +120,16 @@
       GNUNET_CONFIGURATION_get_value_string (GST_cfg, "TRANSPORT", "PLUGINS",
                                              &plugs))
     return;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Starting transport plugins `%s'\n"),
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              _("Starting transport plugins `%s'\n"),
               plugs);
   for (pos = strtok (plugs, " "); pos != NULL; pos = strtok (NULL, " "))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Loading `%s' transport plugin\n"),
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                _("Loading `%s' transport plugin\n"),
                 pos);
     GNUNET_asprintf (&libname, "libgnunet_plugin_transport_%s", pos);
-    plug = GNUNET_malloc (sizeof (struct TransportPlugin));
+    plug = GNUNET_new (struct TransportPlugin);
     plug->short_name = GNUNET_strdup (pos);
     plug->lib_name = libname;
     plug->env.cfg = GST_cfg;
@@ -151,7 +153,7 @@
     plug = next;
     next = plug->next;
     plug->api = GNUNET_PLUGIN_load (plug->lib_name, &plug->env);
-    if (plug->api == NULL)
+    if (NULL == plug->api)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   _("Failed to load transport plugin for `%s'\n"),
@@ -237,7 +239,7 @@
     }
     if (NULL == plug->api->query_keepalive_factor)
     {
-        fail = GNUNET_YES;
+      fail = GNUNET_YES;
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   _("Missing function `%s' in transport plugin for `%s'\n"),
                   "query_keepalive_factor",
@@ -248,6 +250,7 @@
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   _("Did not load plugin `%s' due to missing functions\n"),
                   plug->lib_name);
+      GNUNET_break (NULL == GNUNET_PLUGIN_unload (plug->lib_name, plug->api));
       GNUNET_CONTAINER_DLL_remove (plugins_head, plugins_tail, plug);
       GNUNET_free (plug->short_name);
       GNUNET_free (plug->lib_name);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]