From 9fbad1544764c515cb1f22bc552f33bb41206e92 Mon Sep 17 00:00:00 2001 From: cbdev Date: Wed, 14 Jun 2023 22:51:13 +0200 Subject: Skeleton structure implementation --- reader.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 reader.c (limited to 'reader.c') diff --git a/reader.c b/reader.c new file mode 100644 index 0000000..1186800 --- /dev/null +++ b/reader.c @@ -0,0 +1,36 @@ +#include +#include +#include + +#include "reader.h" +#include "config.h" + +#define MAX_PLUGIN_PATH NAME_MAX +void* reader_module = NULL; + +int reader_init(){ + char plugin[MAX_PLUGIN_PATH] = ""; + char* reader = config_get("nfc", "reader"); + + if(!reader){ + printf("No reader plugin configured\n"); + return -1; + } + + snprintf(plugin, sizeof(plugin), "./reader_%s.so", reader); + reader_module = dlopen(plugin, RTLD_NOW); + + if(!reader_module){ + printf("Failed to load reader plugin %s\n", plugin); + return -1; + } + + return 0; +} + +void reader_free(){ + if(reader_module){ + dlclose(reader_module); + reader_module = NULL; + } +} -- cgit v1.2.3