diff options
Diffstat (limited to 'src/transport/gnunet-service-transport_plugins.c')
-rw-r--r-- | src/transport/gnunet-service-transport_plugins.c | 29 |
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); |