mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
network/NetworkManager: Updated for version 0.8.4.0.
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
parent
b0722d6a02
commit
4202088db2
24 changed files with 7 additions and 2810 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Slackware build script for NetworkManager
|
||||
|
||||
# Copyright 2010 Robby Workman, Northport, Alabama, USA
|
||||
# Copyright 2010,2011 Robby Workman, Northport, Alabama, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -23,8 +23,8 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PRGNAM=NetworkManager
|
||||
VERSION=${VERSION:-0.8.2}
|
||||
BUILD=${BUILD:-5}
|
||||
VERSION=${VERSION:-0.8.4.0}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -69,33 +69,6 @@ find . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# Fix Slackware init script
|
||||
patch -p1 < $CWD/patches/fixup_rc.networkmanager.patch
|
||||
|
||||
# Apply some patches from the 0.8 branch in NM git
|
||||
patch -p1 < $CWD/patches/keyfile-create-keyfile-data-directory-during-install.patch
|
||||
patch -p1 < $CWD/patches/keyfile-quiet-keyfile-plugin-when-re-read-connection.patch
|
||||
patch -p1 < $CWD/patches/build-create-NM-state-directory-at-install-time.patch
|
||||
patch -p1 < $CWD/patches/keyfile-ignore-temporary-files-bgo-602868.patch
|
||||
patch -p1 < $CWD/patches/dhcpcd-prevent-dhcpcd-from-messing-with-routing-bgo-.patch
|
||||
patch -p1 < $CWD/patches/wired-fix-uninitialized-variable.patch
|
||||
patch -p1 < $CWD/patches/core-correct-TIMESTAMP-type-fixes-potential-crash-wh.patch
|
||||
patch -p1 < $CWD/patches/dhcp-ensure-that-dhcp-client-is-exited.patch
|
||||
patch -p1 < $CWD/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch
|
||||
patch -p1 < $CWD/patches/core-handle-device-removal-when-properties-are-unrea.patch
|
||||
patch -p1 < $CWD/patches/examples-fix-querying-active-connections.patch
|
||||
patch -p1 < $CWD/patches/core-suppress-error-message-when-user-settings-servi.patch
|
||||
patch -p1 < $CWD/patches/dns-fix-a-crash-due-to-uninitialized-nis_domain-nove.patch
|
||||
patch -p1 < $CWD/patches/libnm-glib-actually-define-the-ip-interface-property.patch
|
||||
patch -p1 < $CWD/patches/libnm-util-fix-a-memory-leaks-in-nm_setting_to_strin.patch
|
||||
patch -p1 < $CWD/patches/dns-direct-IPv4-reverse-DNS-queries-to-split-DNS-ser.patch
|
||||
patch -p1 < $CWD/patches/policy-stop-touching-etc-hosts.patch
|
||||
patch -p1 < $CWD/patches/modem-handle-IP-Method-changes-after-modem-has-been-.patch
|
||||
patch -p1 < $CWD/patches/policy-don-t-update-hostname-on-exit.patch
|
||||
patch -p1 < $CWD/patches/core-handle-D-Bus-disconnect-better-on-exit.patch
|
||||
|
||||
autoreconf
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
|
@ -131,15 +104,7 @@ mkdir -p $PKG/etc/NetworkManager
|
|||
cat $CWD/NetworkManager.conf.new > \
|
||||
$PKG/etc/NetworkManager/NetworkManager.conf.new
|
||||
|
||||
# This file should actually be shipped with Slackware's wpa_supplicant
|
||||
# package, but since we missed it there (oops), we'll do it here:
|
||||
mkdir -p $PKG/usr/share/dbus-1/system-services
|
||||
cat $CWD/fi.epitest.hostap.WPASupplicant.service > \
|
||||
$PKG/usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service
|
||||
|
||||
# pm-utils upstream ships this file, but it shouldn't really, and it's going
|
||||
# to be removed from the Slackware package, so we'll include it here just to
|
||||
# be sure. Once upower is part of Slackware, this file can be removed, since
|
||||
# Once upower is part of Slackware, this file can be removed, since
|
||||
# NM listens to upower events to know when to sleep/wake
|
||||
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d
|
||||
cp $CWD/55NetworkManager $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d/
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="NetworkManager"
|
||||
VERSION="0.8.2"
|
||||
VERSION="0.8.4.0"
|
||||
HOMEPAGE="http://projects.gnome.org/NetworkManager/"
|
||||
DOWNLOAD="ftp://ftp.gnome.org/pub/GNOME/sources/NetworkManager/0.8/NetworkManager-0.8.2.tar.bz2"
|
||||
MD5SUM="951158258544f761d9c09c052a7072e2"
|
||||
DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/0.8/NetworkManager-0.8.4.0.tar.bz2"
|
||||
MD5SUM="61645617b2e8ce14a1198ad359202aea"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
MAINTAINER="Robby Workman"
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[D-BUS Service]
|
||||
Name=fi.epitest.hostap.WPASupplicant
|
||||
Exec=/usr/sbin/wpa_supplicant -u
|
||||
User=root
|
|
@ -1,27 +0,0 @@
|
|||
From ce741199c1b304e8f2cc0791f9c4d439ab8bd196 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Mon, 8 Nov 2010 09:09:54 -0600
|
||||
Subject: [PATCH 2/3] build: create NM state directory at install time
|
||||
|
||||
---
|
||||
src/Makefile.am | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 8c01df0..d7dccaa 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -275,8 +275,10 @@ EXTRA_DIST = \
|
||||
$(NetworkManager_DATA)
|
||||
|
||||
rundir=$(localstatedir)/run/NetworkManager
|
||||
+statedir=$(localstatedir)/lib/NetworkManager
|
||||
install-data-hook:
|
||||
$(mkinstalldirs) -m 0700 $(DESTDIR)$(rundir)
|
||||
+ $(mkinstalldirs) -m 0700 $(DESTDIR)$(statedir)
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
From b8ff25eb43c9fa5eb534495a501c73169649d0a6 Mon Sep 17 00:00:00 2001
|
||||
From: Jiří Klimeš <jklimes@redhat.com>
|
||||
Date: Tue, 23 Nov 2010 18:06:58 +0000
|
||||
Subject: core: correct TIMESTAMP type; fixes potential crash when time() is 32bit
|
||||
|
||||
The Crash appeared on some platforms in glib while processing variable
|
||||
arguments.
|
||||
---
|
||||
diff --git a/src/system-settings/nm-default-wired-connection.c b/src/system-settings/nm-default-wired-connection.c
|
||||
index 1cda3d9..0d19dea 100644
|
||||
--- a/src/system-settings/nm-default-wired-connection.c
|
||||
+++ b/src/system-settings/nm-default-wired-connection.c
|
||||
@@ -163,7 +163,7 @@ constructor (GType type,
|
||||
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
|
||||
NM_SETTING_CONNECTION_UUID, uuid,
|
||||
NM_SETTING_CONNECTION_READ_ONLY, priv->read_only,
|
||||
- NM_SETTING_CONNECTION_TIMESTAMP, time (NULL),
|
||||
+ NM_SETTING_CONNECTION_TIMESTAMP, (guint64) time (NULL),
|
||||
NULL);
|
||||
|
||||
g_free (id);
|
||||
--
|
||||
cgit v0.8.3-6-g21f6
|
|
@ -1,35 +0,0 @@
|
|||
From 9751335f013248749d7d05c56c9c18af1410baa1 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Sun, 2 Jan 2011 10:49:36 -0600
|
||||
Subject: [PATCH 8/8] core: handle D-Bus disconnect better on exit
|
||||
|
||||
We're just going to quit here anyway, so we don't need to
|
||||
make sure the property filter is unregistered. Fixes a
|
||||
crash on exit if D-Bus has quit before NM has.
|
||||
---
|
||||
src/nm-manager.c | 9 +++++----
|
||||
1 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/nm-manager.c b/src/nm-manager.c
|
||||
index afcc6ad..9bd5354 100644
|
||||
--- a/src/nm-manager.c
|
||||
+++ b/src/nm-manager.c
|
||||
@@ -4364,10 +4364,11 @@ dispose (GObject *object)
|
||||
|
||||
/* Unregister property filter */
|
||||
bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
|
||||
- g_assert (bus);
|
||||
- dbus_connection = dbus_g_connection_get_connection (bus);
|
||||
- g_assert (dbus_connection);
|
||||
- dbus_connection_remove_filter (dbus_connection, prop_filter, manager);
|
||||
+ if (bus) {
|
||||
+ dbus_connection = dbus_g_connection_get_connection (bus);
|
||||
+ g_assert (dbus_connection);
|
||||
+ dbus_connection_remove_filter (dbus_connection, prop_filter, manager);
|
||||
+ }
|
||||
g_object_unref (priv->dbus_mgr);
|
||||
|
||||
if (priv->bluez_mgr)
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 8698e62fb9ba492bd4decd14d4faa7fded661ba2 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Tue, 23 Nov 2010 13:10:01 -0600
|
||||
Subject: [PATCH 1/4] core: handle device removal when properties are unreadable
|
||||
|
||||
By the time we get the udev device removal notification we may not
|
||||
be able to read properties, since the device has already been
|
||||
removed from sysfs. That means we can't get the ifindex, so we need
|
||||
to fall back to the interface name. But we always want to prefer
|
||||
the ifindex since that will never change as long as the device is
|
||||
connected, unlike the interface name.
|
||||
---
|
||||
src/nm-manager.c | 8 ++++++++
|
||||
1 files changed, 8 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/nm-manager.c b/src/nm-manager.c
|
||||
index eb393fa..48f2173 100644
|
||||
--- a/src/nm-manager.c
|
||||
+++ b/src/nm-manager.c
|
||||
@@ -2426,6 +2426,14 @@ udev_device_removed_cb (NMUdevManager *manager,
|
||||
|
||||
ifindex = g_udev_device_get_property_as_int (udev_device, "IFINDEX");
|
||||
device = find_device_by_ifindex (self, ifindex);
|
||||
+ if (!device) {
|
||||
+ /* On removal we won't always be able to read properties anymore, as
|
||||
+ * they may have already been removed from sysfs. Instead, we just
|
||||
+ * have to fall back to the device's interface name.
|
||||
+ */
|
||||
+ device = find_device_by_iface (self, g_udev_device_get_name (udev_device));
|
||||
+ }
|
||||
+
|
||||
if (device)
|
||||
priv->devices = remove_one_device (self, priv->devices, device, FALSE);
|
||||
}
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 83e02840b5ce1cf8c122cc70918ddd57396c91db Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Tue, 23 Nov 2010 22:17:21 -0600
|
||||
Subject: [PATCH 3/4] core: suppress error message when user settings service is not active
|
||||
|
||||
Don't bother trying to initialize the user settings proxy when it
|
||||
isn't even active. Would trigger a warning to syslog if PolicyKit
|
||||
permissions changed via changes to /usr/share/polkit-1/actions/.
|
||||
---
|
||||
src/nm-manager.c | 9 +++++++--
|
||||
1 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/nm-manager.c b/src/nm-manager.c
|
||||
index 48f2173..afcc6ad 100644
|
||||
--- a/src/nm-manager.c
|
||||
+++ b/src/nm-manager.c
|
||||
@@ -1356,6 +1356,12 @@ user_proxy_init (NMManager *self)
|
||||
g_return_if_fail (self != NULL);
|
||||
g_return_if_fail (priv->user_proxy == NULL);
|
||||
|
||||
+ /* Don't try to initialize the user settings proxy if the user
|
||||
+ * settings service doesn't actually exist.
|
||||
+ */
|
||||
+ if (!nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
|
||||
+ return;
|
||||
+
|
||||
bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
|
||||
priv->user_proxy = dbus_g_proxy_new_for_name_owner (bus,
|
||||
NM_DBUS_SERVICE_USER_SETTINGS,
|
||||
@@ -3975,8 +3981,7 @@ nm_manager_start (NMManager *self)
|
||||
* they will be queried when the user settings service shows up on the
|
||||
* bus in nm_manager_name_owner_changed().
|
||||
*/
|
||||
- if (nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
|
||||
- user_proxy_init (self);
|
||||
+ user_proxy_init (self);
|
||||
|
||||
nm_udev_manager_query_devices (priv->udev_mgr);
|
||||
bluez_manager_resync_devices (self);
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From 3d3c87774381cee77bae911367a12e8c86d6ad99 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Efremov <sem@altlinux.org>
|
||||
Date: Fri, 19 Nov 2010 16:52:55 -0600
|
||||
Subject: [PATCH 3/4] dhcp: ensure that dhcp client is exited
|
||||
|
||||
On restart ensure that the client we're trying to kill has
|
||||
actually exited even if it's not our child.
|
||||
---
|
||||
src/dhcp-manager/nm-dhcp-client.c | 12 ++++++++----
|
||||
1 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
|
||||
index 0c7f3d4..3a8b194 100644
|
||||
--- a/src/dhcp-manager/nm-dhcp-client.c
|
||||
+++ b/src/dhcp-manager/nm-dhcp-client.c
|
||||
@@ -156,11 +156,15 @@ stop_process (GPid pid, const char *iface)
|
||||
|
||||
if (ret == -1) {
|
||||
/* Child already exited */
|
||||
- if (errno == ECHILD)
|
||||
+ if (errno == ECHILD) {
|
||||
+ /* Was it really our child and it exited? */
|
||||
+ if (kill (pid, 0) < 0 && errno == ESRCH)
|
||||
+ break;
|
||||
+ } else {
|
||||
+ /* Took too long; shoot it in the head */
|
||||
+ i = 0;
|
||||
break;
|
||||
- /* Took too long; shoot it in the head */
|
||||
- i = 0;
|
||||
- break;
|
||||
+ }
|
||||
}
|
||||
g_usleep (G_USEC_PER_SEC / 5);
|
||||
}
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From d60a988518cb0851488bc21732271a971877cdcd Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Thu, 18 Nov 2010 16:30:00 -0600
|
||||
Subject: [PATCH 1/4] dhcpcd: prevent dhcpcd from messing with routing (bgo #634983)
|
||||
|
||||
Since NM is already handling that.
|
||||
---
|
||||
src/dhcp-manager/nm-dhcp-dhcpcd.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c
|
||||
index 378a97b..4fb703c 100644
|
||||
--- a/src/dhcp-manager/nm-dhcp-dhcpcd.c
|
||||
+++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c
|
||||
@@ -128,6 +128,8 @@ real_ip4_start (NMDHCPClient *client,
|
||||
|
||||
g_ptr_array_add (argv, (gpointer) "-L"); /* Disable built-in IPv4LL since we use avahi-autoipd */
|
||||
|
||||
+ g_ptr_array_add (argv, (gpointer) "-G"); /* Let NM handle routing */
|
||||
+
|
||||
g_ptr_array_add (argv, (gpointer) "-c"); /* Set script file */
|
||||
g_ptr_array_add (argv, (gpointer) ACTION_SCRIPT_PATH );
|
||||
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
From 93249f1901cc3f1f08d5f8f66f7cd6f7bd918946 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Thu, 16 Dec 2010 17:47:59 -0600
|
||||
Subject: [PATCH] dns: direct IPv4 reverse DNS queries to split DNS servers
|
||||
|
||||
When split DNS is used for a local caching nameserver, make sure
|
||||
that reverse DNS queries for hosts within the VPN tunnel are directed
|
||||
to the VPN's nameservers, not to the public upstream nameservers.
|
||||
---
|
||||
src/dns-manager/Makefile.am | 4 +-
|
||||
src/dns-manager/nm-dns-dnsmasq.c | 22 +++++++--
|
||||
src/dns-manager/nm-dns-utils.c | 99 ++++++++++++++++++++++++++++++++++++++
|
||||
src/dns-manager/nm-dns-utils.h | 28 +++++++++++
|
||||
4 files changed, 148 insertions(+), 5 deletions(-)
|
||||
create mode 100644 src/dns-manager/nm-dns-utils.c
|
||||
create mode 100644 src/dns-manager/nm-dns-utils.h
|
||||
|
||||
diff --git a/src/dns-manager/Makefile.am b/src/dns-manager/Makefile.am
|
||||
index 1ffe62d..7b5fc4f 100644
|
||||
--- a/src/dns-manager/Makefile.am
|
||||
+++ b/src/dns-manager/Makefile.am
|
||||
@@ -14,7 +14,9 @@ libdns_manager_la_SOURCES = \
|
||||
nm-dns-dnsmasq.h \
|
||||
nm-dns-dnsmasq.c \
|
||||
nm-dns-bind.h \
|
||||
- nm-dns-bind.c
|
||||
+ nm-dns-bind.c \
|
||||
+ nm-dns-utils.h \
|
||||
+ nm-dns-utils.c
|
||||
|
||||
libdns_manager_la_CPPFLAGS = \
|
||||
$(DBUS_CFLAGS) \
|
||||
diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
|
||||
index 41c8e2a..9cc0197 100644
|
||||
--- a/src/dns-manager/nm-dns-dnsmasq.c
|
||||
+++ b/src/dns-manager/nm-dns-dnsmasq.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "nm-logging.h"
|
||||
#include "nm-ip4-config.h"
|
||||
#include "nm-ip6-config.h"
|
||||
+#include "nm-dns-utils.h"
|
||||
|
||||
G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN)
|
||||
|
||||
@@ -75,9 +76,11 @@ add_ip4_config (GString *str, NMIP4Config *ip4, gboolean split)
|
||||
gboolean added = FALSE;
|
||||
|
||||
if (split) {
|
||||
+ char **domains, **iter;
|
||||
+
|
||||
/* FIXME: it appears that dnsmasq can only handle one nameserver
|
||||
- * per domain (at the manpage seems to indicate that) so only use
|
||||
- * the first nameserver here.
|
||||
+ * per domain (and the manpage says this too) so only use the first
|
||||
+ * nameserver here.
|
||||
*/
|
||||
addr.s_addr = nm_ip4_config_get_nameserver (ip4, 0);
|
||||
memset (&buf[0], 0, sizeof (buf));
|
||||
@@ -103,6 +106,17 @@ add_ip4_config (GString *str, NMIP4Config *ip4, gboolean split)
|
||||
added = TRUE;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ /* Ensure reverse-DNS works by directing queries for in-addr.arpa
|
||||
+ * domains to the split domain's nameserver.
|
||||
+ */
|
||||
+ domains = nm_dns_utils_get_ip4_rdns_domains (ip4);
|
||||
+ if (domains) {
|
||||
+ for (iter = domains; iter && *iter; iter++)
|
||||
+ g_string_append_printf (str, "server=/%s/%s\n", *iter, buf);
|
||||
+ g_strfreev (domains);
|
||||
+ added = TRUE;
|
||||
+ }
|
||||
}
|
||||
|
||||
/* If no searches or domains, just add the namservers */
|
||||
@@ -216,7 +230,7 @@ update (NMDnsPlugin *plugin,
|
||||
}
|
||||
|
||||
/* Now add interface configs without split DNS */
|
||||
- for (iter = (GSList *) dev_configs; iter;iter = g_slist_next (iter)) {
|
||||
+ for (iter = (GSList *) dev_configs; iter; iter = g_slist_next (iter)) {
|
||||
if (NM_IS_IP4_CONFIG (iter->data))
|
||||
add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
|
||||
else if (NM_IS_IP6_CONFIG (iter->data))
|
||||
@@ -224,7 +238,7 @@ update (NMDnsPlugin *plugin,
|
||||
}
|
||||
|
||||
/* And any other random configs */
|
||||
- for (iter = (GSList *) other_configs; iter;iter = g_slist_next (iter)) {
|
||||
+ for (iter = (GSList *) other_configs; iter; iter = g_slist_next (iter)) {
|
||||
if (NM_IS_IP4_CONFIG (iter->data))
|
||||
add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
|
||||
else if (NM_IS_IP6_CONFIG (iter->data))
|
||||
diff --git a/src/dns-manager/nm-dns-utils.c b/src/dns-manager/nm-dns-utils.c
|
||||
new file mode 100644
|
||||
index 0000000..615adfd
|
||||
--- /dev/null
|
||||
+++ b/src/dns-manager/nm-dns-utils.c
|
||||
@@ -0,0 +1,99 @@
|
||||
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
+/* 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, 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.
|
||||
+ *
|
||||
+ * Copyright (C) 2010 Red Hat, Inc.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include <arpa/inet.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+#include "nm-dns-utils.h"
|
||||
+#include "nm-utils.h"
|
||||
+
|
||||
+static void
|
||||
+add_ip4_to_rdns_array (guint32 ip, GPtrArray *domains) /* network byte order */
|
||||
+{
|
||||
+ guint32 defprefix;
|
||||
+ guchar *p;
|
||||
+ char *str = NULL;
|
||||
+ int i;
|
||||
+
|
||||
+ defprefix = nm_utils_ip4_get_default_prefix (ip);
|
||||
+
|
||||
+ /* Convert to host byte order, mask the host bits, and convert back */
|
||||
+ ip = ntohl (ip);
|
||||
+ ip &= 0xFFFFFFFF << (32 - defprefix);
|
||||
+ ip = htonl (ip);
|
||||
+ p = (guchar *) &ip;
|
||||
+
|
||||
+ if (defprefix == 8)
|
||||
+ str = g_strdup_printf ("%u.in-addr.arpa", p[0] & 0xFF);
|
||||
+ else if (defprefix == 16)
|
||||
+ str = g_strdup_printf ("%u.%u.in-addr.arpa", p[1] & 0xFF, p[0] & 0xFF);
|
||||
+ else if (defprefix == 24)
|
||||
+ str = g_strdup_printf ("%u.%u.%u.in-addr.arpa", p[2] & 0xFF, p[1] & 0xFF, p[0] & 0xFF);
|
||||
+
|
||||
+ g_return_if_fail (str != NULL);
|
||||
+
|
||||
+ /* Suppress duplicates */
|
||||
+ for (i = 0; i < domains->len; i++) {
|
||||
+ if (strcmp (str, g_ptr_array_index (domains, i)) == 0)
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (i == domains->len)
|
||||
+ g_ptr_array_add (domains, str);
|
||||
+ else
|
||||
+ g_free (str);
|
||||
+}
|
||||
+
|
||||
+char **
|
||||
+nm_dns_utils_get_ip4_rdns_domains (NMIP4Config *ip4)
|
||||
+{
|
||||
+ GPtrArray *domains = NULL;
|
||||
+ int i;
|
||||
+
|
||||
+ g_return_val_if_fail (ip4 != NULL, NULL);
|
||||
+
|
||||
+ domains = g_ptr_array_sized_new (5);
|
||||
+
|
||||
+ /* To calculate the reverse DNS domains for this IP4 config, we take
|
||||
+ * all the IP addresses and routes in the config, calculate the network
|
||||
+ * portion, and convert that to classful, and use the network bits for
|
||||
+ * the final domain. FIXME: better handle classless routing, which might
|
||||
+ * require us to add multiple domains for each actual network prefix to
|
||||
+ * cover all the separate networks in that block.
|
||||
+ */
|
||||
+
|
||||
+ for (i = 0; i < nm_ip4_config_get_num_addresses (ip4); i++) {
|
||||
+ NMIP4Address *addr = nm_ip4_config_get_address (ip4, i);
|
||||
+
|
||||
+ add_ip4_to_rdns_array (nm_ip4_address_get_address (addr), domains);
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < nm_ip4_config_get_num_routes (ip4); i++) {
|
||||
+ NMIP4Route *route = nm_ip4_config_get_route (ip4, i);
|
||||
+
|
||||
+ add_ip4_to_rdns_array (nm_ip4_route_get_dest (route), domains);
|
||||
+ }
|
||||
+
|
||||
+ /* Terminating NULL so we can use g_strfreev() to free it */
|
||||
+ g_ptr_array_add (domains, NULL);
|
||||
+
|
||||
+ /* Free the array and return NULL if the only element was the ending NULL */
|
||||
+ return (char **) g_ptr_array_free (domains, (domains->len == 1));
|
||||
+}
|
||||
+
|
||||
diff --git a/src/dns-manager/nm-dns-utils.h b/src/dns-manager/nm-dns-utils.h
|
||||
new file mode 100644
|
||||
index 0000000..daa6711
|
||||
--- /dev/null
|
||||
+++ b/src/dns-manager/nm-dns-utils.h
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
+/* 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, 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.
|
||||
+ *
|
||||
+ * Copyright (C) 2010 Red Hat, Inc.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef NM_DNS_UTILS_H
|
||||
+#define NM_DNS_UTILS_H
|
||||
+
|
||||
+#include "nm-ip4-config.h"
|
||||
+
|
||||
+char **nm_dns_utils_get_ip4_rdns_domains (NMIP4Config *ip4);
|
||||
+
|
||||
+#endif /* NM_DNS_UTILS_H */
|
||||
+
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 45ae52523158f4e7c0cc3fb5af56859c41512f66 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
||||
Date: Wed, 24 Nov 2010 12:51:08 +0100
|
||||
Subject: [PATCH 4/4] dns: fix a crash due to uninitialized nis_domain (novell #655685)
|
||||
|
||||
Reported and tested by Raymond Wooninck. Thanks!
|
||||
---
|
||||
src/dns-manager/nm-dns-manager.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
|
||||
index 7a6fbbc..b0cdcc2 100644
|
||||
--- a/src/dns-manager/nm-dns-manager.c
|
||||
+++ b/src/dns-manager/nm-dns-manager.c
|
||||
@@ -583,6 +583,7 @@ update_dns (NMDnsManager *self,
|
||||
rc.nameservers = g_ptr_array_new ();
|
||||
rc.domain = NULL;
|
||||
rc.searches = g_ptr_array_new ();
|
||||
+ rc.nis_domain = NULL;
|
||||
rc.nis_servers = g_ptr_array_new ();
|
||||
|
||||
if (priv->ip4_vpn_config)
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 14617f6916124d29f65e380a3602746841203a57 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Tue, 23 Nov 2010 16:28:25 -0600
|
||||
Subject: [PATCH 2/4] examples: fix querying active connections
|
||||
|
||||
---
|
||||
examples/python/nm-state.py | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/examples/python/nm-state.py b/examples/python/nm-state.py
|
||||
index fddd2da..2bbdd2d 100644
|
||||
--- a/examples/python/nm-state.py
|
||||
+++ b/examples/python/nm-state.py
|
||||
@@ -47,13 +47,13 @@ active = manager_prop_iface.Get("org.freedesktop.NetworkManager", "ActiveConnect
|
||||
for a in active:
|
||||
ac_proxy = bus.get_object("org.freedesktop.NetworkManager", a)
|
||||
prop_iface = dbus.Interface(ac_proxy, "org.freedesktop.DBus.Properties")
|
||||
- state = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "State")
|
||||
+ state = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "State")
|
||||
|
||||
# Connections in NM are a collection of settings that describe everything
|
||||
# needed to connect to a specific network. Lets get those details so we
|
||||
# can find the user-readable name of the connection.
|
||||
- con_path = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "Connection")
|
||||
- con_service = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "ServiceName")
|
||||
+ con_path = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "Connection")
|
||||
+ con_service = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "ServiceName")
|
||||
|
||||
# ask the provider of the connection for its details
|
||||
service_proxy = bus.get_object(con_service, con_path)
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
diff -Nur NetworkManager-0.8.2.orig//initscript/Slackware/rc.networkmanager NetworkManager-0.8.2/initscript/Slackware/rc.networkmanager
|
||||
--- NetworkManager-0.8.2.orig//initscript/Slackware/rc.networkmanager 2010-11-03 15:11:32.000000000 -0500
|
||||
+++ NetworkManager-0.8.2/initscript/Slackware/rc.networkmanager 2010-12-23 00:39:39.858508485 -0600
|
||||
@@ -27,11 +27,6 @@
|
||||
return
|
||||
fi
|
||||
|
||||
- if [ "`pgrep hald`" = "" ]; then
|
||||
- echo "HAL must be running to start NetworkManager"
|
||||
- return
|
||||
- fi
|
||||
-
|
||||
# Just in case the pidfile is still there, we may need to nuke it.
|
||||
if [ -e "$PIDFILE" ]; then
|
||||
rm -f $PIDFILE
|
||||
@@ -67,6 +62,7 @@
|
||||
nm_restart()
|
||||
{
|
||||
nm_stop
|
||||
+ sleep 2
|
||||
nm_start
|
||||
}
|
||||
|
||||
diff -Nur NetworkManager-0.8.2.orig//initscript/Slackware/rc.networkmanager.in NetworkManager-0.8.2/initscript/Slackware/rc.networkmanager.in
|
||||
--- NetworkManager-0.8.2.orig//initscript/Slackware/rc.networkmanager.in 2009-12-23 12:30:29.000000000 -0600
|
||||
+++ NetworkManager-0.8.2/initscript/Slackware/rc.networkmanager.in 2010-12-23 00:39:52.207382807 -0600
|
||||
@@ -27,11 +27,6 @@
|
||||
return
|
||||
fi
|
||||
|
||||
- if [ "`pgrep hald`" = "" ]; then
|
||||
- echo "HAL must be running to start NetworkManager"
|
||||
- return
|
||||
- fi
|
||||
-
|
||||
# Just in case the pidfile is still there, we may need to nuke it.
|
||||
if [ -e "$PIDFILE" ]; then
|
||||
rm -f $PIDFILE
|
||||
@@ -67,6 +62,7 @@
|
||||
nm_restart()
|
||||
{
|
||||
nm_stop
|
||||
+ sleep 2
|
||||
nm_start
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From e01c7b69abb9c118b9e0087803ca203ff157aa0a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
||||
Date: Tue, 23 Nov 2010 16:27:21 +0100
|
||||
Subject: [PATCH 4/4] keyfile: allow uppercase MAC addresses in unmanaged-devices in config file (rh #654714)
|
||||
|
||||
---
|
||||
system-settings/plugins/keyfile/plugin.c | 20 ++++++++++++++++++--
|
||||
1 files changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/system-settings/plugins/keyfile/plugin.c b/system-settings/plugins/keyfile/plugin.c
|
||||
index 5a927ce..da6456d 100644
|
||||
--- a/system-settings/plugins/keyfile/plugin.c
|
||||
+++ b/system-settings/plugins/keyfile/plugin.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
+#include <netinet/ether.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gmodule.h>
|
||||
@@ -418,8 +419,23 @@ get_unmanaged_specs (NMSystemConfigInterface *config)
|
||||
udis = g_strsplit (str, ";", -1);
|
||||
g_free (str);
|
||||
|
||||
- for (i = 0; udis[i] != NULL; i++)
|
||||
- specs = g_slist_append (specs, udis[i]);
|
||||
+ for (i = 0; udis[i] != NULL; i++) {
|
||||
+ /* Verify unmanaged specification and add it to the list */
|
||||
+ if (strlen (udis[i]) > 4 && !strncmp (udis[i], "mac:", 4) && ether_aton (udis[i] + 4)) {
|
||||
+ char *p = udis[i];
|
||||
+
|
||||
+ /* To accept uppercase MACs in configuration file, we have to convert values to lowercase here.
|
||||
+ * Unmanaged MACs in specs are always in lowercase. */
|
||||
+ while (*p) {
|
||||
+ *p = g_ascii_tolower (*p);
|
||||
+ p++;
|
||||
+ }
|
||||
+ specs = g_slist_append (specs, udis[i]);
|
||||
+ } else {
|
||||
+ g_warning ("Error in file '%s': invalid unmanaged-devices entry: '%s'", priv->conf_file, udis[i]);
|
||||
+ g_free (udis[i]);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
g_free (udis); /* Yes, g_free, not g_strfreev because we need the strings in the list */
|
||||
}
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 7deea59ad1d018888f18cee5ae3f70ee79ea6463 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Mon, 8 Nov 2010 09:07:08 -0600
|
||||
Subject: [PATCH 1/3] keyfile: create keyfile data directory during install
|
||||
|
||||
So distributions don't have to do it.
|
||||
---
|
||||
system-settings/plugins/keyfile/Makefile.am | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/system-settings/plugins/keyfile/Makefile.am b/system-settings/plugins/keyfile/Makefile.am
|
||||
index 1c1fd4a..c519adc 100644
|
||||
--- a/system-settings/plugins/keyfile/Makefile.am
|
||||
+++ b/system-settings/plugins/keyfile/Makefile.am
|
||||
@@ -49,6 +49,8 @@ libnm_settings_plugin_keyfile_la_LIBADD = \
|
||||
$(DBUS_LIBS) \
|
||||
$(GIO_LIBS)
|
||||
|
||||
+keyfiledir=$(sysconfdir)/NetworkManager/system-connections
|
||||
+
|
||||
install-data-hook:
|
||||
$(mkinstalldirs) -m 0755 $(DESTDIR)$(keyfiledir)
|
||||
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,208 +0,0 @@
|
|||
From 0376f6b1ceda64e279e64bfb37ab67f0c36478b6 Mon Sep 17 00:00:00 2001
|
||||
From: Jiří Klimeš <jklimes@redhat.com>
|
||||
Date: Wed, 10 Nov 2010 15:21:25 +0000
|
||||
Subject: keyfile: ignore temporary files (bgo #602868)
|
||||
|
||||
Ignore temporary files created by vim editor and temporary files created
|
||||
internally by g_file_set_contents() (mkstemp()) when writing connections.
|
||||
---
|
||||
diff --git a/system-settings/plugins/keyfile/Makefile.am b/system-settings/plugins/keyfile/Makefile.am
|
||||
index c519adc..128775e 100644
|
||||
--- a/system-settings/plugins/keyfile/Makefile.am
|
||||
+++ b/system-settings/plugins/keyfile/Makefile.am
|
||||
@@ -16,6 +16,8 @@ libkeyfile_io_la_SOURCES = \
|
||||
writer.c \
|
||||
writer.h \
|
||||
errors.c \
|
||||
+ utils.c \
|
||||
+ utils.h \
|
||||
common.h
|
||||
|
||||
libkeyfile_io_la_CPPFLAGS = \
|
||||
diff --git a/system-settings/plugins/keyfile/common.h b/system-settings/plugins/keyfile/common.h
|
||||
index 7d94a70..6c8f9ce 100644
|
||||
--- a/system-settings/plugins/keyfile/common.h
|
||||
+++ b/system-settings/plugins/keyfile/common.h
|
||||
@@ -23,6 +23,9 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
+#define SWP_TAG ".swp"
|
||||
+#define SWPX_TAG ".swpx"
|
||||
+
|
||||
#define KEYFILE_PLUGIN_NAME "keyfile"
|
||||
#define KEYFILE_PLUGIN_INFO "(c) 2007 - 2010 Red Hat, Inc. To report bugs please use the NetworkManager mailing list."
|
||||
|
||||
diff --git a/system-settings/plugins/keyfile/plugin.c b/system-settings/plugins/keyfile/plugin.c
|
||||
index f57a4b6..5a927ce 100644
|
||||
--- a/system-settings/plugins/keyfile/plugin.c
|
||||
+++ b/system-settings/plugins/keyfile/plugin.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "nm-keyfile-connection.h"
|
||||
#include "writer.h"
|
||||
#include "common.h"
|
||||
+#include "utils.h"
|
||||
|
||||
#define CONF_FILE SYSCONFDIR "/NetworkManager/NetworkManager.conf"
|
||||
#define OLD_CONF_FILE SYSCONFDIR "/NetworkManager/nm-system-settings.conf"
|
||||
@@ -89,6 +90,9 @@ read_connections (NMSystemConfigInterface *config)
|
||||
NMKeyfileConnection *connection;
|
||||
char *full_path;
|
||||
|
||||
+ if (utils_should_ignore_file (item))
|
||||
+ continue;
|
||||
+
|
||||
full_path = g_build_filename (KEYFILE_DIR, item, NULL);
|
||||
PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "parsing %s ... ", item);
|
||||
connection = nm_keyfile_connection_new (full_path, &error);
|
||||
@@ -192,6 +196,11 @@ dir_changed (GFileMonitor *monitor,
|
||||
GError *error = NULL;
|
||||
|
||||
name = g_file_get_path (file);
|
||||
+ if (utils_should_ignore_file (name)) {
|
||||
+ g_free (name);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
connection = g_hash_table_lookup (priv->hash, name);
|
||||
|
||||
switch (event_type) {
|
||||
diff --git a/system-settings/plugins/keyfile/utils.c b/system-settings/plugins/keyfile/utils.c
|
||||
new file mode 100644
|
||||
index 0000000..de64f79
|
||||
--- a/dev/null
|
||||
+++ b/system-settings/plugins/keyfile/utils.c
|
||||
@@ -0,0 +1,97 @@
|
||||
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
+/* NetworkManager system settings service
|
||||
+ *
|
||||
+ * 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 2010 Red Hat, Inc.
|
||||
+ */
|
||||
+
|
||||
+#include <glib.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include "utils.h"
|
||||
+
|
||||
+
|
||||
+static const char temp_letters[] =
|
||||
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
+
|
||||
+/*
|
||||
+ * Check '.[a-zA-Z0-9]{6}' file suffix used for temporary files by g_file_set_contents() (mkstemp()).
|
||||
+ */
|
||||
+static gboolean
|
||||
+check_mkstemp_suffix (const char *path)
|
||||
+{
|
||||
+ const char *ptr;
|
||||
+
|
||||
+ g_return_val_if_fail (path != NULL, FALSE);
|
||||
+
|
||||
+ /* Matches *.[a-zA-Z0-9]{6} suffix of mkstemp()'s temporary files */
|
||||
+ ptr = strrchr (path, '.');
|
||||
+ if (ptr && (strspn (ptr + 1, temp_letters) == 6) && (! ptr[7]))
|
||||
+ return TRUE;
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+static gboolean
|
||||
+check_prefix (const char *base, const char *tag)
|
||||
+{
|
||||
+ int len, tag_len;
|
||||
+
|
||||
+ g_return_val_if_fail (base != NULL, TRUE);
|
||||
+ g_return_val_if_fail (tag != NULL, TRUE);
|
||||
+
|
||||
+ len = strlen (base);
|
||||
+ tag_len = strlen (tag);
|
||||
+ if ((len > tag_len) && !strncasecmp (base, tag, tag_len))
|
||||
+ return TRUE;
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+static gboolean
|
||||
+check_suffix (const char *base, const char *tag)
|
||||
+{
|
||||
+ int len, tag_len;
|
||||
+
|
||||
+ g_return_val_if_fail (base != NULL, TRUE);
|
||||
+ g_return_val_if_fail (tag != NULL, TRUE);
|
||||
+
|
||||
+ len = strlen (base);
|
||||
+ tag_len = strlen (tag);
|
||||
+ if ((len > tag_len) && !strcasecmp (base + len - tag_len, tag))
|
||||
+ return TRUE;
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+gboolean
|
||||
+utils_should_ignore_file (const char *filename)
|
||||
+{
|
||||
+ char *base;
|
||||
+ gboolean ignore = FALSE;
|
||||
+
|
||||
+ g_return_val_if_fail (filename != NULL, TRUE);
|
||||
+
|
||||
+ base = g_path_get_basename (filename);
|
||||
+ g_return_val_if_fail (base != NULL, TRUE);
|
||||
+
|
||||
+ /* Ignore files with certain patterns */
|
||||
+ if ( (check_prefix (base, ".") && check_suffix (base, SWP_TAG)) /* vim temporary files: .filename.swp */
|
||||
+ || (check_prefix (base, ".") && check_suffix (base, SWPX_TAG)) /* vim temporary files: .filename.swpx */
|
||||
+ || check_mkstemp_suffix (base)) /* temporary files created by mkstemp() */
|
||||
+ ignore = TRUE;
|
||||
+
|
||||
+ g_free (base);
|
||||
+ return ignore;
|
||||
+}
|
||||
+
|
||||
diff --git a/system-settings/plugins/keyfile/utils.h b/system-settings/plugins/keyfile/utils.h
|
||||
new file mode 100644
|
||||
index 0000000..3c1a610
|
||||
--- a/dev/null
|
||||
+++ b/system-settings/plugins/keyfile/utils.h
|
||||
@@ -0,0 +1,30 @@
|
||||
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
+/* NetworkManager system settings service
|
||||
+ *
|
||||
+ * 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 2010 Red Hat, Inc.
|
||||
+ */
|
||||
+
|
||||
+#ifndef _UTILS_H_
|
||||
+#define _UTILS_H_
|
||||
+
|
||||
+#include <glib.h>
|
||||
+#include "common.h"
|
||||
+
|
||||
+gboolean utils_should_ignore_file (const char *filename);
|
||||
+
|
||||
+#endif /* _UTILS_H_ */
|
||||
+
|
|
@ -1,48 +0,0 @@
|
|||
From 4a15282e97a53d3df9062ec8e7e59288ad61e6f2 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Wed, 10 Nov 2010 16:14:51 +0100
|
||||
Subject: [PATCH 3/3] keyfile: quiet keyfile plugin when re-read connection is the same as in-memory one
|
||||
|
||||
It occurs, for example, when NM updates connection's timestamp.
|
||||
---
|
||||
system-settings/plugins/keyfile/plugin.c | 11 ++++++++---
|
||||
1 files changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/system-settings/plugins/keyfile/plugin.c b/system-settings/plugins/keyfile/plugin.c
|
||||
index 27ae0a0..f57a4b6 100644
|
||||
--- a/system-settings/plugins/keyfile/plugin.c
|
||||
+++ b/system-settings/plugins/keyfile/plugin.c
|
||||
@@ -203,15 +203,18 @@ dir_changed (GFileMonitor *monitor,
|
||||
break;
|
||||
case G_FILE_MONITOR_EVENT_CREATED:
|
||||
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
|
||||
- PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
|
||||
-
|
||||
if (connection) {
|
||||
/* Update */
|
||||
NMKeyfileConnection *tmp;
|
||||
|
||||
tmp = nm_keyfile_connection_new (name, &error);
|
||||
if (tmp) {
|
||||
- update_connection_settings (connection, tmp);
|
||||
+ if (!nm_connection_compare (NM_CONNECTION (connection),
|
||||
+ NM_CONNECTION (tmp),
|
||||
+ NM_SETTING_COMPARE_FLAG_EXACT)) {
|
||||
+ PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
|
||||
+ update_connection_settings (connection, tmp);
|
||||
+ }
|
||||
g_object_unref (tmp);
|
||||
} else {
|
||||
/* Error; remove the connection */
|
||||
@@ -221,6 +224,8 @@ dir_changed (GFileMonitor *monitor,
|
||||
remove_connection (SC_PLUGIN_KEYFILE (config), connection, name);
|
||||
}
|
||||
} else {
|
||||
+ PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
|
||||
+
|
||||
/* New */
|
||||
connection = nm_keyfile_connection_new (name, &error);
|
||||
if (connection) {
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From d1a92a4d4da80b4cdc53164a42cbe29c03b1c8c1 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Tue, 7 Dec 2010 14:12:55 -0600
|
||||
Subject: [PATCH] libnm-glib: actually define the "ip-interface" property
|
||||
|
||||
Looks like it got left out of 6ab5a9597a26235c9839df346fc3ce95f35a240f
|
||||
---
|
||||
libnm-glib/nm-device.c | 14 ++++++++++++++
|
||||
1 files changed, 14 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
|
||||
index ea2a91d..b8998f7 100644
|
||||
--- a/libnm-glib/nm-device.c
|
||||
+++ b/libnm-glib/nm-device.c
|
||||
@@ -477,6 +477,20 @@ nm_device_class_init (NMDeviceClass *device_class)
|
||||
G_PARAM_READABLE));
|
||||
|
||||
/**
|
||||
+ * NMDevice:ip-interface:
|
||||
+ *
|
||||
+ * The IP interface of the device which should be used for all IP-related
|
||||
+ * operations like addressing and routing.
|
||||
+ **/
|
||||
+ g_object_class_install_property
|
||||
+ (object_class, PROP_IP_INTERFACE,
|
||||
+ g_param_spec_string (NM_DEVICE_IP_INTERFACE,
|
||||
+ "IP Interface",
|
||||
+ "IP Interface name",
|
||||
+ NULL,
|
||||
+ G_PARAM_READABLE));
|
||||
+
|
||||
+ /**
|
||||
* NMDevice:udi:
|
||||
*
|
||||
* The Unique Device Identifier of the device.
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 71fcccbacd51e939f168d44301393301e9dcb5fe Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
||||
Date: Mon, 13 Dec 2010 20:55:02 +0100
|
||||
Subject: [PATCH] libnm-util: fix a memory leaks in nm_setting_to_string()
|
||||
|
||||
---
|
||||
libnm-util/nm-setting.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
|
||||
index 06994c7..190199c 100644
|
||||
--- a/libnm-util/nm-setting.c
|
||||
+++ b/libnm-util/nm-setting.c
|
||||
@@ -620,6 +620,8 @@ nm_setting_to_string (NMSetting *setting)
|
||||
is_serializable = prop_spec->flags & NM_SETTING_PARAM_SERIALIZE;
|
||||
is_default = g_param_value_defaults (prop_spec, &value);
|
||||
|
||||
+ g_value_unset (&value);
|
||||
+
|
||||
if (is_serializable || is_default) {
|
||||
g_string_append (string, " (");
|
||||
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From b83322655b6bbf616fb8021a6a69584ae1486f7e Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Sat, 1 Jan 2011 18:00:50 -0600
|
||||
Subject: [PATCH 6/8] modem: handle IP Method changes after modem has been created
|
||||
|
||||
Some modems don't know their IP method when they are created, but
|
||||
will update it later. Handle the changed signal for that.
|
||||
---
|
||||
src/modem-manager/nm-modem.c | 6 ++++++
|
||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/modem-manager/nm-modem.c b/src/modem-manager/nm-modem.c
|
||||
index e07b818..b3f7eaa 100644
|
||||
--- a/src/modem-manager/nm-modem.c
|
||||
+++ b/src/modem-manager/nm-modem.c
|
||||
@@ -876,6 +876,12 @@ modem_properties_changed (DBusGProxy *proxy,
|
||||
priv->mm_enabled = g_value_get_boolean (value);
|
||||
g_object_notify (G_OBJECT (self), NM_MODEM_ENABLED);
|
||||
}
|
||||
+
|
||||
+ value = g_hash_table_lookup (props, "IpMethod");
|
||||
+ if (value && G_VALUE_HOLDS_UINT (value)) {
|
||||
+ priv->ip_method = g_value_get_uint (value);
|
||||
+ g_object_notify (G_OBJECT (self), NM_MODEM_IP_METHOD);
|
||||
+ }
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
--
|
||||
1.7.3.4
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 2ce6f29c2151af3f34976feda6964a21431cdb5f Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dcbw@redhat.com>
|
||||
Date: Sun, 2 Jan 2011 10:24:23 -0600
|
||||
Subject: [PATCH 7/8] policy: don't update hostname on exit
|
||||
|
||||
It's a leftover from when /etc/hosts got fixed up, and since that
|
||||
isn't being done anymore, there's no reason to touch the hostname
|
||||
on exit. It will already have been updated in response to device
|
||||
deactivation (if the hostname was DHCP-provided for example) so
|
||||
it shouldn't need to be touched on exit.
|
||||
|
||||
This also removes a potential crash on shutdown when systemd or
|
||||
another startup manager kills D-Bus before NetworkManager, which
|
||||
made the dispatcher code angry (which got executed on hostname
|
||||
change).
|
||||
---
|
||||
src/nm-policy.c | 9 ---------
|
||||
1 files changed, 0 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/nm-policy.c b/src/nm-policy.c
|
||||
index 709be09..aed2f89 100644
|
||||
--- a/src/nm-policy.c
|
||||
+++ b/src/nm-policy.c
|
||||
@@ -1195,15 +1195,6 @@ nm_policy_destroy (NMPolicy *policy)
|
||||
}
|
||||
g_slist_free (policy->dev_signal_ids);
|
||||
|
||||
- /* Rewrite /etc/hosts on exit to ensure we don't leave stale IP addresses
|
||||
- * lying around. FIXME: this will take out a valid IP address of an
|
||||
- * ethernet device we're leaving active (ie, a connection we can "assume"
|
||||
- * when NM starts again).
|
||||
- */
|
||||
- policy->default_device4 = NULL;
|
||||
- policy->default_device6 = NULL;
|
||||
- update_system_hostname (policy, NULL, NULL);
|
||||
-
|
||||
g_free (policy->orig_hostname);
|
||||
g_free (policy->cur_hostname);
|
||||
|
||||
--
|
||||
1.7.3.4
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,25 +0,0 @@
|
|||
From 2236c1f318bcbdd50820296136a25bade5fcef9e Mon Sep 17 00:00:00 2001
|
||||
From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
|
||||
Date: Fri, 19 Nov 2010 16:17:40 -0600
|
||||
Subject: [PATCH 2/4] wired: fix uninitialized variable
|
||||
|
||||
---
|
||||
src/nm-device-ethernet.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c
|
||||
index 08bbc50..251a54c 100644
|
||||
--- a/src/nm-device-ethernet.c
|
||||
+++ b/src/nm-device-ethernet.c
|
||||
@@ -308,7 +308,7 @@ _update_s390_subchannels (NMDeviceEthernet *self)
|
||||
const char *iface;
|
||||
GUdevClient *client;
|
||||
GUdevDevice *dev;
|
||||
- GUdevDevice *parent;
|
||||
+ GUdevDevice *parent = NULL;
|
||||
const char *parent_path, *item, *driver;
|
||||
const char *subsystems[] = { "net", NULL };
|
||||
GDir *dir;
|
||||
--
|
||||
1.7.3.4
|
||||
|
Loading…
Reference in a new issue