print active/inactive information
[oweals/gnunet.git] / src / peerinfo-tool / gnunet-peerinfo_plugins.c
index ba7c1d3925f4dd6bf6b6eee28c31396bca11db19..37553f2f7df587b0041f310d7b035278ec740fa1 100644 (file)
@@ -109,7 +109,7 @@ GPI_plugins_load (const struct GNUNET_CONFIGURATION_Handle *cfg)
     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 = cfg;
@@ -167,8 +167,27 @@ GPI_plugins_find (const char *name)
 {
   struct TransportPlugin *head = plugins_head;
 
-  while ((head != NULL) && (0 != strcmp (name, head->short_name)))
+  char *stripped = GNUNET_strdup (name);
+  char *head_stripped;
+  char *sep = strchr (stripped, '_');
+  if (NULL != sep)
+    sep[0] = '\0';
+
+  while (head != NULL)
+  {
+       head_stripped = GNUNET_strdup(head->short_name);
+    char *head_sep = strchr (head_stripped, '_');
+    if (NULL != head_sep)
+       head_sep[0] = '\0';
+    if (0 == strcmp (head_stripped, stripped))
+    {
+       GNUNET_free (head_stripped);
+      break;
+    }
+    GNUNET_free (head_stripped);
     head = head->next;
+  }
+  GNUNET_free (stripped);
   if (NULL == head)
     return NULL;
   return head->api;