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;
{
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;