From 0229295c8374d83dccfbe6c7afe100cae54d9eff Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 14 Jan 2005 18:43:47 +0000 Subject: [PATCH] 2005-01-14 Colin Walters * named/nm-named-manager.c (generate_named_conf): Write config and pid files into NM_NAMED_DATA_DIR; this allows things to work better with FC3 named SELinux policy. Also fix up silly format error. * configure.in: Add --with-named-dir option. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@376 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 9 +++++++++ configure.in | 2 ++ named/nm-named-manager.c | 34 +++++++++++++++++++++++++++------- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index ca56a2aa05..2c20cda4a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-01-14 Colin Walters + + * named/nm-named-manager.c (generate_named_conf): Write config + and pid files into NM_NAMED_DATA_DIR; this allows things to + work better with FC3 named SELinux policy. Also fix up silly + format error. + + * configure.in: Add --with-named-dir option. + 2005-01-14 Colin Walters * configure.in: Make named support require passing --with-named. diff --git a/configure.in b/configure.in index e88892ef9a..3c553e5844 100644 --- a/configure.in +++ b/configure.in @@ -158,10 +158,12 @@ AC_SUBST(DBUS_SYS_DIR) AC_DEFINE_UNQUOTED(DBUS_SYSTEMD_DIR, "$DBUS_SYS_DIR", [Where system.d dir for DBUS is]) AC_ARG_WITH(named, AC_HELP_STRING([--with-named=], [path to the named binary])) +AC_ARG_WITH(named_dir, AC_HELP_STRING([--with-named-dir=], [path to the named data directory])) if test "x${with_named}" = x; then AC_DEFINE(NM_NO_NAMED,,[Define if you want to disable named support]) fi AC_DEFINE_UNQUOTED(NM_NAMED_BINARY_PATH, "$with_named", [Define to path of named binary]) +AC_DEFINE_UNQUOTED(NM_NAMED_DATA_DIR, "$with_named_dir", [Define to path of named data directory]) AC_ARG_ENABLE(notification-icon, [ --enable-notification-icon builds the wireless applet as a notification icon], enable_notification_icon=$enableval, enable_notification_icon=yes) diff --git a/named/nm-named-manager.c b/named/nm-named-manager.c index 4cc016138f..e11913a12b 100644 --- a/named/nm-named-manager.c +++ b/named/nm-named-manager.c @@ -232,21 +232,41 @@ generate_named_conf (NMNamedManager *mgr, GError **error) if (!mgr->priv->named_conf) { - out_fd = g_file_open_tmp ("NetworkManager-named.conf-XXXXXX", - &mgr->priv->named_conf, - error); + mgr->priv->named_conf = g_build_filename (NM_NAMED_DATA_DIR, + "NetworkManager-named.conf", + NULL); + unlink (mgr->priv->named_conf); + out_fd = open (mgr->priv->named_conf, O_CREAT|O_EXCL, 0600); if (out_fd < 0) + { + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_EXIST, + "Couldn't create %s: %s", + mgr->priv->named_conf, + g_strerror (errno)); return FALSE; + } close (out_fd); } if (!mgr->priv->named_pid_file) { - out_fd = g_file_open_tmp ("NetworkManager-named-pid-XXXXXX", - &mgr->priv->named_pid_file, - error); + mgr->priv->named_pid_file = g_build_filename (NM_NAMED_DATA_DIR, + "NetworkManager-pid-named", + NULL); + unlink (mgr->priv->named_pid_file); + out_fd = open (mgr->priv->named_pid_file, O_CREAT|O_EXCL, 0600); if (out_fd < 0) + { + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_EXIST, + "Couldn't create %s: %s", + mgr->priv->named_pid_file, + g_strerror (errno)); return FALSE; + } close (out_fd); } @@ -525,7 +545,7 @@ rewrite_resolv_conf (NMNamedManager *mgr, GError **error) goto lose; } #ifndef NM_NO_NAMED - if (fprintf (f, "%s", "; Use a local caching nameserver controlled by NetworkManager\n", searches, "\nnameserver 127.0.0.1\n") < 0) { + if (fprintf (f, "%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n", searches, "\nnameserver 127.0.0.1\n") < 0) { goto lose; } #else