Blob Blame History Raw
From f1207f311ec04aeda07759e04538d65d41d4ea4a Mon Sep 17 00:00:00 2001
Message-Id: <f1207f311ec04aeda07759e04538d65d41d4ea4a.1624465064.git.dcaratti@redhat.com>
From: dcaratti <davide.caratti@gmail.com>
Date: Wed, 23 Jun 2021 18:12:41 +0200
Subject: [PATCH] Allow empty values of "plugin_dir" in mptcpd.conf. (#145)

The plugin dirname is $(libdir)/mptcpd/ on standard configurations:
use this value in case the value of plugin_dir is empty in
/etc/mptcpd/mptcpd.conf.
---
 src/Makefile.am     |  3 ++-
 src/configuration.c | 27 ++++++++++-----------------
 2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 09ca74c..4aa5037 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -31,7 +31,8 @@ libpath_manager_la_LIBADD =			\
 
 libpath_manager_la_CPPFLAGS =	\
 	$(AM_CPPFLAGS)		\
-	-DMPTCPD_CONFIG_FILE='"$(sysconfdir)/@PACKAGE@/@PACKAGE@.conf"'
+	-DMPTCPD_CONFIG_FILE='"$(sysconfdir)/@PACKAGE@/@PACKAGE@.conf"' \
+	-DMPTCPD_DEFAULT_PLUGINDIR='"$(libdir)/@PACKAGE@"'
 
 EXTRA_DIST = mptcp.service.in
 
diff --git a/src/configuration.c b/src/configuration.c
index 2a48405..70a8e19 100644
--- a/src/configuration.c
+++ b/src/configuration.c
@@ -304,8 +304,6 @@ static bool check_file_perms(char const *f)
 static bool parse_config_file(struct mptcpd_config *config,
                               char const *filename)
 {
-        bool parsed = true;
-
         assert(filename != NULL);
 
         if (!check_file_perms(filename))
@@ -337,22 +335,17 @@ static bool parse_config_file(struct mptcpd_config *config,
                                               group,
                                               "plugin-dir");
 
-                if (plugin_dir == NULL) {
-                        l_error("No plugin directory set in mptcpd "
-                                "configuration.");
+                set_plugin_dir(config,
+			       plugin_dir ? plugin_dir :
+					    l_strdup(MPTCPD_DEFAULT_PLUGINDIR));
 
-                        parsed = false;
-                } else {
-                        set_plugin_dir(config, plugin_dir);
-
-                        // Default plugin name.  Can be NULL.
-                        char *const default_plugin =
-                                l_settings_get_string(settings,
-                                                      group,
-                                                      "path-manager");
+                // Default plugin name.  Can be NULL.
+                char *const default_plugin =
+                        l_settings_get_string(settings,
+                                              group,
+                                              "path-manager");
 
-                        set_default_plugin(config, default_plugin);
-                }
+                set_default_plugin(config, default_plugin);
         } else {
                 l_debug("Unable to mptcpd load settings from file '%s'",
                         filename);
@@ -360,7 +353,7 @@ static bool parse_config_file(struct mptcpd_config *config,
 
         l_settings_free(settings);
 
-        return parsed;
+        return true;
 }
 
 /**
-- 
2.31.1