[network-manager-libreswan/th/vpn-plugin-debug-bgo766872: 1/20] service: show better error message when /etc/ipsec.d/ does not exist
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-libreswan/th/vpn-plugin-debug-bgo766872: 1/20] service: show better error message when /etc/ipsec.d/ does not exist
- Date: Tue, 14 Jun 2016 13:11:07 +0000 (UTC)
commit beb2bf1d075ad79c1f83b7644d14a5d4ff2e470e
Author: Thomas Haller <thaller redhat com>
Date: Fri May 27 11:03:31 2016 +0200
service: show better error message when /etc/ipsec.d/ does not exist
The service wants to write the secrets there. Show a better error
message when that fails due to a non-existing target directory.
src/nm-libreswan-service.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/nm-libreswan-service.c b/src/nm-libreswan-service.c
index b5355d5..df28b3e 100644
--- a/src/nm-libreswan-service.c
+++ b/src/nm-libreswan-service.c
@@ -653,6 +653,7 @@ nm_libreswan_config_psk_write (NMSettingVpn *s_vpn,
{
const char *pw_type, *psk, *leftid, *right;
int fd;
+ int errsv;
/* Check for ignored group password */
pw_type = nm_setting_vpn_get_data_item (s_vpn, NM_LIBRESWAN_PSK_INPUT_MODES);
@@ -667,11 +668,26 @@ nm_libreswan_config_psk_write (NMSettingVpn *s_vpn,
errno = 0;
fd = open (secrets_path, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
if (fd < 0) {
+ errsv = errno;
+
+ if (errsv == ENOENT) {
+ gs_free char *dirname = g_path_get_dirname (secrets_path);
+
+ if (!g_file_test (dirname, G_FILE_TEST_IS_DIR)) {
+ g_set_error (error,
+ NM_VPN_PLUGIN_ERROR,
+ NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,
+ "Failed to open secrets file: no directory %s",
+ dirname);
+ return FALSE;
+ }
+ }
+
g_set_error (error,
NM_VPN_PLUGIN_ERROR,
NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,
"Failed to open secrets file: (%d) %s.",
- errno, g_strerror (errno));
+ errsv, g_strerror (errsv));
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]