aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_plugins.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-service-transport_plugins.c')
-rw-r--r--src/transport/gnunet-service-transport_plugins.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/transport/gnunet-service-transport_plugins.c b/src/transport/gnunet-service-transport_plugins.c
index 3e0e6601d..79f7f4ddd 100644
--- a/src/transport/gnunet-service-transport_plugins.c
+++ b/src/transport/gnunet-service-transport_plugins.c
@@ -108,15 +108,19 @@ GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
108 int fail; 108 int fail;
109 109
110 if (GNUNET_OK != 110 if (GNUNET_OK !=
111 GNUNET_CONFIGURATION_get_value_number (GST_cfg, "TRANSPORT", 111 GNUNET_CONFIGURATION_get_value_number (GST_cfg,
112 "NEIGHBOUR_LIMIT", &tneigh)) 112 "TRANSPORT",
113 "NEIGHBOUR_LIMIT",
114 &tneigh))
113 { 115 {
114 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 116 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
115 _("Transport service is lacking NEIGHBOUR_LIMIT option.\n")); 117 _("Transport service is lacking NEIGHBOUR_LIMIT option.\n"));
116 return; 118 return;
117 } 119 }
118 if (GNUNET_OK != 120 if (GNUNET_OK !=
119 GNUNET_CONFIGURATION_get_value_string (GST_cfg, "TRANSPORT", "PLUGINS", 121 GNUNET_CONFIGURATION_get_value_string (GST_cfg,
122 "TRANSPORT",
123 "PLUGINS",
120 &plugs)) 124 &plugs))
121 return; 125 return;
122 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 126 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -127,7 +131,9 @@ GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
127 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 131 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
128 _("Loading `%s' transport plugin\n"), 132 _("Loading `%s' transport plugin\n"),
129 pos); 133 pos);
130 GNUNET_asprintf (&libname, "libgnunet_plugin_transport_%s", pos); 134 GNUNET_asprintf (&libname,
135 "libgnunet_plugin_transport_%s",
136 pos);
131 plug = GNUNET_new (struct TransportPlugin); 137 plug = GNUNET_new (struct TransportPlugin);
132 plug->short_name = GNUNET_strdup (pos); 138 plug->short_name = GNUNET_strdup (pos);
133 plug->lib_name = libname; 139 plug->lib_name = libname;
@@ -143,7 +149,9 @@ GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
143 plug->env.update_address_metrics = metric_update_cb; 149 plug->env.update_address_metrics = metric_update_cb;
144 plug->env.max_connections = tneigh; 150 plug->env.max_connections = tneigh;
145 plug->env.stats = GST_stats; 151 plug->env.stats = GST_stats;
146 GNUNET_CONTAINER_DLL_insert (plugins_head, plugins_tail, plug); 152 GNUNET_CONTAINER_DLL_insert (plugins_head,
153 plugins_tail,
154 plug);
147 } 155 }
148 GNUNET_free (plugs); 156 GNUNET_free (plugs);
149 next = plugins_head; 157 next = plugins_head;
@@ -151,13 +159,16 @@ GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
151 { 159 {
152 plug = next; 160 plug = next;
153 next = plug->next; 161 next = plug->next;
154 plug->api = GNUNET_PLUGIN_load (plug->lib_name, &plug->env); 162 plug->api = GNUNET_PLUGIN_load (plug->lib_name,
163 &plug->env);
155 if (NULL == plug->api) 164 if (NULL == plug->api)
156 { 165 {
157 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 166 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
158 _("Failed to load transport plugin for `%s'\n"), 167 _("Failed to load transport plugin for `%s'\n"),
159 plug->lib_name); 168 plug->lib_name);
160 GNUNET_CONTAINER_DLL_remove (plugins_head, plugins_tail, plug); 169 GNUNET_CONTAINER_DLL_remove (plugins_head,
170 plugins_tail,
171 plug);
161 GNUNET_free (plug->short_name); 172 GNUNET_free (plug->short_name);
162 GNUNET_free (plug->lib_name); 173 GNUNET_free (plug->lib_name);
163 GNUNET_free (plug); 174 GNUNET_free (plug);
@@ -258,7 +269,9 @@ GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
258 _("Did not load plugin `%s' due to missing functions\n"), 269 _("Did not load plugin `%s' due to missing functions\n"),
259 plug->lib_name); 270 plug->lib_name);
260 GNUNET_break (NULL == GNUNET_PLUGIN_unload (plug->lib_name, plug->api)); 271 GNUNET_break (NULL == GNUNET_PLUGIN_unload (plug->lib_name, plug->api));
261 GNUNET_CONTAINER_DLL_remove (plugins_head, plugins_tail, plug); 272 GNUNET_CONTAINER_DLL_remove (plugins_head,
273 plugins_tail,
274 plug);
262 GNUNET_free (plug->short_name); 275 GNUNET_free (plug->short_name);
263 GNUNET_free (plug->lib_name); 276 GNUNET_free (plug->lib_name);
264 GNUNET_free (plug); 277 GNUNET_free (plug);