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;
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"),
}
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",
plug->lib_name);
}
+ if (NULL == plug->api->update_session_timeout)
+ {
+ fail = GNUNET_YES;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Missing function `%s' in transport plugin for `%s'\n"),
+ "update_session_timeout",
+ plug->lib_name);
+ }
if (GNUNET_YES == fail)
{
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);