/* NetworkManager -- Network link manager * * Backend implementation for the Magellan Linux distribution http://www.magellan-linux.de * * Niels Rogalla * * Heavily based on NetworkManagerGentoo.c by Robert Paskowitz * * Dan Williams * Dan Willemsen * Robert Paskowitz * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * (C) Copyright 2004 Red Hat, Inc. * (C) Copyright 2004 Dan Willemsen * (C) Copyright 2004 Robert Paskowitz */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include "NetworkManagerGeneric.h" #include "nm-system.h" #include "NetworkManagerUtils.h" #include "nm-logging.h" #define BUFFER_SIZE 512 static void sysvinit_start_lo_if_necessary() { /* No need to run net.lo if it is already running */ if (nm_spawn_process ("/etc/rc.d/init.d/localnet status") != 0) nm_spawn_process ("/etc/rc.d/init.d/localnet start"); } /* * nm_system_enable_loopback * * Bring up the loopback interface * */ void nm_system_enable_loopback (void) { gchar *comm = NULL; if (g_strstr_len (comm, -1, "systemd")) { /* We use the generic loopback enabler if using systemd. */ nm_log_info (LOGD_CORE, "NetworkManager is running with systemd..."); nm_generic_enable_loopback (); } else { /* SySVInit otherwise. */ nm_log_info (LOGD_CORE, "NetworkManager is running with SySVInit..."); sysvinit_start_lo_if_necessary(); } } /* * nm_system_update_dns * * Make glibc/nscd aware of any changes to the resolv.conf file by * restarting nscd. Only restart if already running. * */ void nm_system_update_dns (void) { if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) { nm_log_info (LOGD_DNS, "Clearing nscd hosts cache."); nm_spawn_process ("/usr/sbin/nscd -i hosts"); } }