ConnMan creates a /var/run/connman state directory even though nothing
writes files there. ConnMan VPNd uses the directory for l2tp and ppp
configuration files. Fix this by removing the state directory creation
from ConnMan and modifying ConnMan VPNd to create a state directory
named /var/run/connman-vpn instead.
Thanks to Roman Kubiak for noticing this.
---
Need not say this but please test,
Patrik
Makefile.am | 4 +++-
Makefile.plugins | 10 +++++-----
src/main.c | 6 ------
vpn/main.c | 2 +-
vpn/plugins/l2tp.c | 8 ++++----
5 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index b2778cc..38fe805 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -153,6 +153,7 @@ endif
CLEANFILES = src/connman.conf $(BUILT_SOURCES)
statedir = $(localstatedir)/run/connman
+vpn_statedir = $(localstatedir)/run/connman-vpn
if VPN
vpn_plugindir = $(libdir)/connman/plugins-vpn
@@ -185,6 +186,7 @@ AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \
@GNUTLS_CFLAGS@ $(builtin_cflags) \
-DCONNMAN_PLUGIN_BUILTIN \
-DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DPLUGINDIR=\""$(build_plugindir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\" \
-DSTORAGEDIR=\""$(storagedir)\"" \
@@ -215,7 +217,7 @@ if VPN
vpn_connman_vpnd_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ \
$(builtin_vpn_cflags) \
-DCONNMAN_PLUGIN_BUILTIN \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DPLUGINDIR=\""$(build_vpn_plugindir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\" \
-DSTORAGEDIR=\""$(storagedir)\"" \
diff --git a/Makefile.plugins b/Makefile.plugins
index cf0f9a8..294cae0 100644
--- a/Makefile.plugins
+++ b/Makefile.plugins
@@ -75,7 +75,7 @@ vpn_plugins_openconnect_la_SOURCES = vpn/plugins/vpn.h
vpn/plugins/vpn.c \
vpn/plugins/openconnect.c
vpn_plugins_openconnect_la_CFLAGS = $(plugin_cflags) \
-DOPENCONNECT=\"@OPENCONNECT@\" \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_openconnect_la_LDFLAGS = $(plugin_ldflags)
endif
@@ -93,7 +93,7 @@ vpn_plugin_objects += $(plugins_openvpn_la_OBJECTS)
vpn_plugins_openvpn_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
vpn/plugins/openvpn.c
vpn_plugins_openvpn_la_CFLAGS = $(plugin_cflags) -DOPENVPN=\"@OPENVPN@\" \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_openvpn_la_LDFLAGS = $(plugin_ldflags)
endif
@@ -111,7 +111,7 @@ vpn_plugin_objects += $(plugins_vpnc_la_OBJECTS)
vpn_plugins_vpnc_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
vpn/plugins/vpnc.c
vpn_plugins_vpnc_la_CFLAGS = $(plugin_cflags) -DVPNC=\"@VPNC@\" \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_vpnc_la_LDFLAGS = $(plugin_ldflags)
endif
@@ -129,7 +129,7 @@ vpn_plugin_objects += $(plugins_l2tp_la_OBJECTS)
vpn_plugins_l2tp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
vpn/plugins/l2tp.c
vpn_plugins_l2tp_la_CFLAGS = $(plugin_cflags) -DL2TP=\"@L2TP@\" \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_l2tp_la_LDFLAGS = $(plugin_ldflags)
endif
@@ -148,7 +148,7 @@ vpn_plugins_pptp_la_SOURCES = vpn/plugins/vpn.h
vpn/plugins/vpn.c \
vpn/plugins/pptp.c
vpn_plugins_pptp_la_CFLAGS = $(plugin_cflags) -DPPPD=\"@PPPD@\" \
-DPPTP=\"@PPTP@\" \
- -DSTATEDIR=\""$(statedir)"\" \
+ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_pptp_la_LDFLAGS = $(plugin_ldflags)
endif
diff --git a/src/main.c b/src/main.c
index 862a93e..7169c8d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -603,12 +603,6 @@ int main(int argc, char *argv[])
}
}
- if (mkdir(STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
- S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) {
- if (errno != EEXIST)
- perror("Failed to create state directory");
- }
-
if (mkdir(STORAGEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) {
if (errno != EEXIST)
diff --git a/vpn/main.c b/vpn/main.c
index 1d837b7..ee88aac 100644
--- a/vpn/main.c
+++ b/vpn/main.c
@@ -267,7 +267,7 @@ int main(int argc, char *argv[])
}
}
- if (mkdir(STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
+ if (mkdir(VPN_STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) {
if (errno != EEXIST)
perror("Failed to create state directory");
diff --git a/vpn/plugins/l2tp.c b/vpn/plugins/l2tp.c
index d12e0bc..91acc85 100644
--- a/vpn/plugins/l2tp.c
+++ b/vpn/plugins/l2tp.c
@@ -472,11 +472,11 @@ static void l2tp_died(struct connman_task *task, int
exit_code, void *user_data)
vpn_died(task, exit_code, user_data);
- conf_file = g_strdup_printf("/var/run/connman/connman-xl2tpd.conf");
+ conf_file = g_strdup_printf(VPN_STATEDIR "/connman-xl2tpd.conf");
unlink(conf_file);
g_free(conf_file);
- conf_file = g_strdup_printf("/var/run/connman/connman-ppp-option.conf");
+ conf_file = g_strdup_printf(VPN_STATEDIR "/connman-ppp-option.conf");
unlink(conf_file);
g_free(conf_file);
}
@@ -640,7 +640,7 @@ static int run_connect(struct vpn_provider *provider,
DBG("username %s password %p", username, password);
- l2tp_name = g_strdup_printf("/var/run/connman/connman-xl2tpd.conf");
+ l2tp_name = g_strdup_printf(VPN_STATEDIR "/connman-xl2tpd.conf");
l2tp_fd = open(l2tp_name, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
if (l2tp_fd < 0) {
@@ -650,7 +650,7 @@ static int run_connect(struct vpn_provider *provider,
goto done;
}
- pppd_name = g_strdup_printf("/var/run/connman/connman-ppp-option.conf");
+ pppd_name = g_strdup_printf(VPN_STATEDIR "/connman-ppp-option.conf");
pppd_fd = open(pppd_name, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
if (pppd_fd < 0) {
--
1.8.5.3
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman