summaryrefslogtreecommitdiff
path: root/src/wire/wire.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wire/wire.c')
-rw-r--r--src/wire/wire.c149
1 files changed, 0 insertions, 149 deletions
diff --git a/src/wire/wire.c b/src/wire/wire.c
deleted file mode 100644
index 60ae9e6ed..000000000
--- a/src/wire/wire.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- This file is part of TALER
- (C) 2015, 2016, 2017, 2018 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-*/
-
-/**
- * @file wire/wire.c
- * @brief Functions for loading wire plugins
- * @author Christian Grothoff <christian@grothoff.org>
- */
-#include "platform.h"
-#include "taler_util.h"
-#include "taler_wire_lib.h"
-
-
-/**
- * A wire plugin that we have loaded.
- */
-struct WirePlugin
-{
- /**
- * We keep these in a DLL.
- */
- struct WirePlugin *next;
-
- /**
- * We keep these in a DLL.
- */
- struct WirePlugin *prev;
-
- /**
- * Type of this wire plugin.
- */
- char *type;
-
- /**
- * Wire plugin
- */
- struct TALER_WIRE_Plugin *plugin;
-
- /**
- * Reference counter for the plugin.
- */
- unsigned int rc;
-};
-
-
-/**
- * Head of the DLL of loaded wire plugins.
- */
-static struct WirePlugin *wp_head;
-
-/**
- * Tail of the DLL of loaded wire plugins.
- */
-static struct WirePlugin *wp_tail;
-
-
-/**
- * Load a WIRE plugin.
- *
- * @param cfg configuration to use
- * @param plugin_name name of the plugin to load
- * @return the plugin object pointer, or NULL upon errors.
- */
-struct TALER_WIRE_Plugin *
-TALER_WIRE_plugin_load (const struct GNUNET_CONFIGURATION_Handle *cfg,
- const char *plugin_name)
-{
- char *lib_name;
- struct TALER_WIRE_Plugin *plugin;
- struct WirePlugin *wp;
-
- for (wp = wp_head; NULL != wp; wp = wp->next)
- if (0 == strcasecmp (plugin_name,
- wp->type))
- {
- wp->rc++;
- return wp->plugin;
- }
- (void) GNUNET_asprintf (&lib_name,
- "libtaler_plugin_wire_%s",
- plugin_name);
- plugin = GNUNET_PLUGIN_load (lib_name,
- (void *) cfg);
- if (NULL != plugin)
- plugin->library_name = lib_name;
- else
- GNUNET_free (lib_name);
- if (NULL == plugin)
- return NULL;
- wp = GNUNET_new (struct WirePlugin);
- wp->plugin = plugin;
- wp->type = GNUNET_strdup (plugin_name);
- GNUNET_CONTAINER_DLL_insert (wp_head,
- wp_tail,
- wp);
- wp->rc = 1;
- return plugin;
-}
-
-
-/**
- * Unload a WIRE plugin.
- *
- * @param plugin the plugin to unload
- */
-void
-TALER_WIRE_plugin_unload (struct TALER_WIRE_Plugin *plugin)
-{
- struct WirePlugin *wp;
- char *lib_name;
-
- if (NULL == plugin)
- return;
- for (wp = wp_head; NULL != wp; wp = wp->next)
- {
- if (plugin == wp->plugin)
- {
- wp->rc--;
- if (0 < wp->rc)
- return;
- GNUNET_CONTAINER_DLL_remove (wp_head,
- wp_tail,
- wp);
- GNUNET_free (wp->type);
- GNUNET_free (wp);
- break;
- }
- }
- lib_name = plugin->library_name;
- GNUNET_assert (NULL == GNUNET_PLUGIN_unload (lib_name,
- plugin));
- GNUNET_free (lib_name);
-}
-
-
-/* end of wire.c */