Magellan Linux

Annotation of /trunk/networkmanager/NetworkManagerMagellan.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1502 - (hide annotations) (download)
Fri Aug 26 18:57:01 2011 UTC (12 years, 8 months ago) by niro
File MIME type: text/plain
File size: 2567 byte(s)
-added systemd/sysvinit auto-detection support
1 niro 980 /* NetworkManager -- Network link manager
2     *
3     * Backend implementation for the Magellan Linux distribution http://www.magellan-linux.de
4     *
5     * Niels Rogalla <niro@magellan-linux.de>
6     *
7     * Heavily based on NetworkManagerGentoo.c by Robert Paskowitz
8     *
9 niro 1502 * Dan Williams <dcbw@redhat.com>
10     * Dan Willemsen <dan@willemsen.us>
11     * Robert Paskowitz
12     *
13 niro 980 * This program is free software; you can redistribute it and/or modify
14     * it under the terms of the GNU General Public License as published by
15     * the Free Software Foundation; either version 2 of the License, or
16     * (at your option) any later version.
17     *
18     * This program is distributed in the hope that it will be useful,
19     * but WITHOUT ANY WARRANTY; without even the implied warranty of
20     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21     * GNU General Public License for more details.
22     *
23     * You should have received a copy of the GNU General Public License along
24     * with this program; if not, write to the Free Software Foundation, Inc.,
25     * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26     *
27     * (C) Copyright 2004 Red Hat, Inc.
28 niro 1502 * (C) Copyright 2004 Dan Willemsen
29     * (C) Copyright 2004 Robert Paskowitz
30 niro 980 */
31    
32     #ifdef HAVE_CONFIG_H
33     #include <config.h>
34     #endif
35    
36     #include <stdio.h>
37     #include <string.h>
38     #include <stdlib.h>
39 niro 1502 #include <gio/gio.h>
40 niro 980
41     #include "NetworkManagerGeneric.h"
42 niro 1153 #include "nm-system.h"
43 niro 980 #include "NetworkManagerUtils.h"
44 niro 1153 #include "nm-logging.h"
45 niro 980
46 niro 1502 #define BUFFER_SIZE 512
47    
48     static void sysvinit_start_lo_if_necessary()
49     {
50     /* No need to run net.lo if it is already running */
51     if (nm_spawn_process ("/etc/rc.d/init.d/localnet status") != 0)
52     nm_spawn_process ("/etc/rc.d/init.d/localnet start");
53     }
54    
55 niro 980 /*
56     * nm_system_enable_loopback
57     *
58     * Bring up the loopback interface
59     *
60     */
61     void nm_system_enable_loopback (void)
62     {
63 niro 1502 gchar *comm = NULL;
64    
65     if (g_strstr_len (comm, -1, "systemd")) {
66     /* We use the generic loopback enabler if using systemd. */
67     nm_log_info (LOGD_CORE, "NetworkManager is running with systemd...");
68     nm_generic_enable_loopback ();
69     } else {
70     /* SySVInit otherwise. */
71     nm_log_info (LOGD_CORE, "NetworkManager is running with SySVInit...");
72     sysvinit_start_lo_if_necessary();
73     }
74 niro 980 }
75    
76     /*
77     * nm_system_update_dns
78     *
79     * Make glibc/nscd aware of any changes to the resolv.conf file by
80     * restarting nscd. Only restart if already running.
81     *
82     */
83     void nm_system_update_dns (void)
84     {
85 niro 1153 if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
86     nm_log_info (LOGD_DNS, "Clearing nscd hosts cache.");
87     nm_spawn_process ("/usr/sbin/nscd -i hosts");
88     }
89 niro 980 }
90 niro 1502