diff --git a/NetworkManager.spec b/NetworkManager.spec index b4c391b..35e7ee1 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -3,11 +3,11 @@ %define glib2_version 2.24.0 %define wireless_tools_version 1:28-0pre9 -%define libnl3_version 3.2.6 +%define libnl3_version 3.2.7 %define ppp_version 2.4.5 -%define snapshot .git20121211 -%define realversion 0.9.7.0 +%define snapshot %{nil} +%define realversion 0.9.7.997 %if 0%{?fedora} && 0%{?fedora} < 17 %define systemd_dir /lib/systemd/system @@ -18,8 +18,8 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: 1 -Version: 0.9.7.0 -Release: 13%{snapshot}%{?dist} +Version: 0.9.7.997 +Release: 2%{snapshot}%{?dist} Group: System Environment/Base License: GPLv2+ URL: http://www.gnome.org/projects/NetworkManager/ @@ -28,7 +28,6 @@ Source: %{name}-%{realversion}%{snapshot}.tar.bz2 Source1: NetworkManager.conf Patch1: explain-dns1-dns2.patch Patch2: nss-error.patch -Patch3: rh876218-killmode.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -67,7 +66,6 @@ BuildRequires: gobject-introspection-devel >= 0.10.3 BuildRequires: gettext-devel BuildRequires: /usr/bin/autopoint BuildRequires: pkgconfig -BuildRequires: iptables BuildRequires: wpa_supplicant BuildRequires: libnl3-devel >= %{libnl3_version} BuildRequires: perl(XML::Parser) @@ -155,7 +153,6 @@ NetworkManager functionality from applications that use glib. %patch1 -p1 -b .explain-dns1-dns2 %patch2 -p1 -b .nss-error -%patch3 -p1 -b .killmode %build @@ -167,17 +164,19 @@ autopoint --force intltoolize --force %configure \ --disable-static \ - --with-distro=redhat \ --with-dhclient=yes \ --with-dhcpcd=no \ --with-crypto=nss \ --enable-more-warnings=yes \ + --enable-ppp=yes \ + --enable-vala=yes \ %ifnarch s390 s390x --enable-wimax=yes \ %endif --enable-polkit=yes \ --enable-modify-system=yes \ --with-session-tracking=systemd \ + --with-suspend-resume=systemd \ --with-docs=yes \ --with-system-ca-path=/etc/pki/tls/certs \ --with-tests=yes \ @@ -212,6 +211,7 @@ make install DESTDIR=$RPM_BUILD_ROOT %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/pppd/%{ppp_version}/*.la %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/NetworkManager/*.la +%{__rm} -f $RPM_BUILD_ROOT%{_datadir}/NetworkManager/gdb-cmd install -m 0755 test/.libs/nm-online %{buildroot}/%{_bindir} @@ -295,10 +295,8 @@ exit 0 %{_mandir}/man1/* %{_mandir}/man5/* %{_mandir}/man8/* +%{_mandir}/manx/* %dir %{_localstatedir}/lib/NetworkManager -%{_prefix}/libexec/nm-crash-logger -%dir %{_datadir}/NetworkManager -%{_datadir}/NetworkManager/gdb-cmd %dir %{_sysconfdir}/NetworkManager/system-connections %{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service %{_libdir}/pppd/%{ppp_version}/nm-pppd-plugin.so @@ -359,19 +357,21 @@ exit 0 %{_datadir}/gtk-doc/html/libnm-util/* %changelog -* Sun Jan 20 2013 Kalev Lember - 0.9.7.0-13.git20121211 -- Rebuilt for libnl3 +* Sat Feb 9 2013 Dan Williams - 0.9.7.997-2 +- core: use systemd for suspend/resume, not upower -* Mon Jan 14 2013 Dan Winship - 0.9.7.0-12.git20121211 +* Fri Feb 8 2013 Dan Williams - 0.9.7.997-1 +- Update to 0.9.8-beta2 +- core: ignore bridges managed by other tools (rh #905035) +- core: fix libnl assert (rh #894653) +- wifi: always use Proactive Key Caching with WPA Enterprise (rh #834444) +- core: don't crash when Internet connection sharing fails to start (rh #883142) + +* Fri Jan 4 2013 Dan Winship - 0.9.7.0-12.git20121004 - Set correct systemd KillMode to fix anaconda shutdown hangs (rh #876218) -* Tue Dec 11 2012 Jiří Klimeš - 0.9.7.0-11.git20121211 -- Update to git snapshot -- core: add support for bridge interfaces -- keyfile: improve IP addresses handling -- modem-manager: integrate the new `ModemManager1' interface support -- build: build system enhancements -- a lot of fixes +* Tue Dec 18 2012 Jiří Klimeš - 0.9.7.0-11.git20121004 +- ifcfg-rh: write missing IPv6 setting as IPv6 with "auto" method (rh #830434) * Wed Dec 5 2012 Dan Winship - 0.9.7.0-10.git20121004 - Build vapi files and add them to the devel package diff --git a/finish-connecting.patch b/finish-connecting.patch deleted file mode 100644 index 247353c..0000000 --- a/finish-connecting.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ba48be3a344b64dfb808cb6f3e545829d9884bee Mon Sep 17 00:00:00 2001 -From: Dan Winship -Date: Fri, 5 Oct 2012 16:41:02 -0400 -Subject: [PATCH 1/2] core: fix NMDevice::state-changed emission of ACTIVATED - (bgo #685581) - -NMPolicy was calling nm_device_state_changed() from inside its -NMDevice::state-changed handler, which caused the D-Bus signal to get -lost. Use nm_device_queue_state() instead. ---- - src/nm-policy.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/nm-policy.c b/src/nm-policy.c -index 92f771d..6722fb6 100644 ---- a/src/nm-policy.c -+++ b/src/nm-policy.c -@@ -1453,11 +1453,11 @@ device_state_changed (NMDevice *device, - - /* Activate secondary (VPN) connections */ - if (!activate_secondary_connections (policy, connection, device)) -- nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, -- NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED); -+ nm_device_queue_state (device, NM_DEVICE_STATE_FAILED, -+ NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED); - } else -- nm_device_state_changed (device, NM_DEVICE_STATE_ACTIVATED, -- NM_DEVICE_STATE_REASON_NONE); -+ nm_device_queue_state (device, NM_DEVICE_STATE_ACTIVATED, -+ NM_DEVICE_STATE_REASON_NONE); - break; - - default: --- -1.7.11.4 - diff --git a/gvaluearray-crash.patch b/gvaluearray-crash.patch deleted file mode 100644 index 41c3959..0000000 --- a/gvaluearray-crash.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b95b6c8aa1b2e2d6a662e93843e50b50d5a9c6c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= -Date: Thu, 11 Oct 2012 14:56:37 +0200 -Subject: [PATCH] core: fix a crash due to GValueArray/GArray freeing mismatch - (rh #865009) - ---- - src/nm-dispatcher.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/nm-dispatcher.c b/src/nm-dispatcher.c -index 0f17ed9..61dfd7c 100644 ---- a/src/nm-dispatcher.c -+++ b/src/nm-dispatcher.c -@@ -200,7 +200,7 @@ dispatcher_done_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) - } else - nm_log_dbg (LOGD_CORE, "Dispatcher result element %d invalid type", i); - -- g_array_unref ((GArray *) item); -+ g_value_array_free (item); - } - g_ptr_array_free (results, TRUE); - } else { --- -1.7.12.1 - diff --git a/rh831735-etc-hostname.patch b/rh831735-etc-hostname.patch deleted file mode 100644 index 2af442c..0000000 --- a/rh831735-etc-hostname.patch +++ /dev/null @@ -1,246 +0,0 @@ -From a7eb3476557dae28880333544c797705ee2f5b5a Mon Sep 17 00:00:00 2001 -From: Dan Winship -Date: Tue, 19 Jun 2012 10:07:17 -0400 -Subject: [PATCH] ifcfg-rh: /etc/hostname should override - /etc/sysconfig/network - -When determining the system hostname, /etc/hostname should override -/etc/sysconfig/network, so monitor both files. - -When setting the hostname, set it in /etc/hostname, and delete the -/etc/sysconfig/network HOSTNAME entry if present. - -https://bugzilla.redhat.com/show_bug.cgi?id=831735 ---- - src/settings/plugins/ifcfg-rh/plugin.c | 130 ++++++++++++++++++++++++--------- - 1 file changed, 96 insertions(+), 34 deletions(-) - -diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c -index 04d5463..50cbdf0 100644 ---- a/src/settings/plugins/ifcfg-rh/plugin.c -+++ b/src/settings/plugins/ifcfg-rh/plugin.c -@@ -80,10 +80,12 @@ typedef struct { - - gulong ih_event_id; - int sc_network_wd; -+ GFileMonitor *hostname_monitor; -+ guint hostname_monitor_id; - char *hostname; - -- GFileMonitor *monitor; -- guint monitor_id; -+ GFileMonitor *ifcfg_monitor; -+ guint ifcfg_monitor_id; - - DBusGConnection *bus; - } SCPluginIfcfgPrivate; -@@ -325,11 +327,11 @@ connection_new_or_changed (SCPluginIfcfg *self, - } - - static void --dir_changed (GFileMonitor *monitor, -- GFile *file, -- GFile *other_file, -- GFileMonitorEvent event_type, -- gpointer user_data) -+ifcfg_dir_changed (GFileMonitor *monitor, -+ GFile *file, -+ GFile *other_file, -+ GFileMonitorEvent event_type, -+ gpointer user_data) - { - SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data); - SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin); -@@ -379,8 +381,9 @@ setup_ifcfg_monitoring (SCPluginIfcfg *plugin) - g_object_unref (file); - - if (monitor) { -- priv->monitor_id = g_signal_connect (monitor, "changed", G_CALLBACK (dir_changed), plugin); -- priv->monitor = monitor; -+ priv->ifcfg_monitor_id = g_signal_connect (monitor, "changed", -+ G_CALLBACK (ifcfg_dir_changed), plugin); -+ priv->ifcfg_monitor = monitor; - } - } - -@@ -463,7 +466,8 @@ add_connection (NMSystemConfigInterface *config, - return (NMSettingsConnection *) added; - } - --#define SC_NETWORK_FILE SYSCONFDIR"/sysconfig/network" -+#define SC_NETWORK_FILE "/etc/sysconfig/network" -+#define HOSTNAME_FILE "/etc/hostname" - - static char * - plugin_get_hostname (SCPluginIfcfg *plugin) -@@ -472,6 +476,11 @@ plugin_get_hostname (SCPluginIfcfg *plugin) - char *hostname; - gboolean ignore_localhost; - -+ if (g_file_get_contents (HOSTNAME_FILE, &hostname, NULL, NULL)) { -+ g_strchomp (hostname); -+ return hostname; -+ } -+ - network = svNewFile (SC_NETWORK_FILE); - if (!network) { - PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not get hostname: failed to read " SC_NETWORK_FILE); -@@ -500,34 +509,31 @@ plugin_set_hostname (SCPluginIfcfg *plugin, const char *hostname) - SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin); - shvarFile *network; - -- network = svCreateFile (SC_NETWORK_FILE); -- if (!network) { -- PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not save hostname: failed to create/open " SC_NETWORK_FILE); -+ if (!g_file_set_contents (HOSTNAME_FILE, hostname, -1, NULL)) { -+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not save hostname: failed to create/open " HOSTNAME_FILE); - return FALSE; - } - -- svSetValue (network, "HOSTNAME", hostname, FALSE); -- svWriteFile (network, 0644); -- svCloseFile (network); -- - g_free (priv->hostname); - priv->hostname = g_strdup (hostname); -+ -+ /* Remove "HOSTNAME" from SC_NETWORK_FILE, if present */ -+ network = svNewFile (SC_NETWORK_FILE); -+ if (network) { -+ svSetValue (network, "HOSTNAME", NULL, FALSE); -+ svWriteFile (network, 0644); -+ svCloseFile (network); -+ } -+ - return TRUE; - } - - static void --sc_network_changed_cb (NMInotifyHelper *ih, -- struct inotify_event *evt, -- const char *path, -- gpointer user_data) -+hostname_maybe_changed (SCPluginIfcfg *plugin) - { -- SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data); - SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin); - char *new_hostname; - -- if (evt->wd != priv->sc_network_wd) -- return; -- - new_hostname = plugin_get_hostname (plugin); - if ( (new_hostname && !priv->hostname) - || (!new_hostname && priv->hostname) -@@ -539,6 +545,33 @@ sc_network_changed_cb (NMInotifyHelper *ih, - g_free (new_hostname); - } - -+static void -+sc_network_changed_cb (NMInotifyHelper *ih, -+ struct inotify_event *evt, -+ const char *path, -+ gpointer user_data) -+{ -+ SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data); -+ SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin); -+ -+ if (evt->wd != priv->sc_network_wd) -+ return; -+ -+ hostname_maybe_changed (plugin); -+} -+ -+static void -+hostname_changed_cb (GFileMonitor *monitor, -+ GFile *file, -+ GFile *other_file, -+ GFileMonitorEvent event_type, -+ gpointer user_data) -+{ -+ SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data); -+ -+ hostname_maybe_changed (plugin); -+} -+ - static gboolean - impl_ifcfgrh_get_ifcfg_details (SCPluginIfcfg *plugin, - const char *in_ifcfg, -@@ -614,11 +647,29 @@ sc_plugin_ifcfg_init (SCPluginIfcfg *plugin) - NMInotifyHelper *ih; - GError *error = NULL; - gboolean success = FALSE; -+ GFile *file; -+ GFileMonitor *monitor; -+ -+ /* We watch SC_NETWORK_FILE via NMInotifyHelper (which doesn't track file creation but -+ * *does* track modifications made via other hard links), since we expect it to always -+ * exist. But we watch HOSTNAME_FILE via GFileMonitor (which has the opposite -+ * semantics), since /etc/hostname might not exist, but is unlikely to have hard -+ * links. bgo 532815 is the bug for being able to just use GFileMonitor for both. -+ */ - - ih = nm_inotify_helper_get (); - priv->ih_event_id = g_signal_connect (ih, "event", G_CALLBACK (sc_network_changed_cb), plugin); - priv->sc_network_wd = nm_inotify_helper_add_watch (ih, SC_NETWORK_FILE); - -+ file = g_file_new_for_path (HOSTNAME_FILE); -+ monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL); -+ g_object_unref (file); -+ if (monitor) { -+ priv->hostname_monitor_id = -+ g_signal_connect (monitor, "changed", G_CALLBACK (hostname_changed_cb), plugin); -+ priv->hostname_monitor = monitor; -+ } -+ - priv->hostname = plugin_get_hostname (plugin); - - priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); -@@ -674,24 +725,35 @@ dispose (GObject *object) - priv->bus = NULL; - } - -- ih = nm_inotify_helper_get (); -+ if (priv->ih_event_id) { -+ ih = nm_inotify_helper_get (); -+ -+ g_signal_handler_disconnect (ih, priv->ih_event_id); -+ priv->ih_event_id = 0; - -- g_signal_handler_disconnect (ih, priv->ih_event_id); -+ if (priv->sc_network_wd >= 0) -+ nm_inotify_helper_remove_watch (ih, priv->sc_network_wd); -+ } -+ -+ if (priv->hostname_monitor) { -+ if (priv->hostname_monitor_id) -+ g_signal_handler_disconnect (priv->hostname_monitor, priv->hostname_monitor_id); - -- if (priv->sc_network_wd >= 0) -- nm_inotify_helper_remove_watch (ih, priv->sc_network_wd); -+ g_file_monitor_cancel (priv->hostname_monitor); -+ g_object_unref (priv->hostname_monitor); -+ } - - g_free (priv->hostname); - - if (priv->connections) - g_hash_table_destroy (priv->connections); - -- if (priv->monitor) { -- if (priv->monitor_id) -- g_signal_handler_disconnect (priv->monitor, priv->monitor_id); -+ if (priv->ifcfg_monitor) { -+ if (priv->ifcfg_monitor_id) -+ g_signal_handler_disconnect (priv->ifcfg_monitor, priv->ifcfg_monitor_id); - -- g_file_monitor_cancel (priv->monitor); -- g_object_unref (priv->monitor); -+ g_file_monitor_cancel (priv->ifcfg_monitor); -+ g_object_unref (priv->ifcfg_monitor); - } - - G_OBJECT_CLASS (sc_plugin_ifcfg_parent_class)->dispose (object); --- -1.8.0 - diff --git a/rh875085-set-hostname.patch b/rh875085-set-hostname.patch deleted file mode 100644 index e959746..0000000 --- a/rh875085-set-hostname.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 48d9bc40fb85afc8044b16400adbca7c8ff71a80 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= -Date: Wed, 14 Nov 2012 14:48:07 +0100 -Subject: [PATCH 1/2] policy: fix setting system hostname (rh #875085) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Broken by commit 500315329765831d242d51d6a46f1e05869c15d2 -(core: move DNS change handling to the policy and optimize DNS updates (bgo #676778)) -It consolidated DNS update handling, but mistakenly removed hostname changing -from NM_DEVICE_STATE_ACTIVATED state handler. - -Signed-off-by: Jiří Klimeš ---- - src/nm-policy.c | 14 ++++---------- - 1 file changed, 4 insertions(+), 10 deletions(-) - -diff --git a/src/nm-policy.c b/src/nm-policy.c -index c847586..ca7e0dc 100644 ---- a/src/nm-policy.c -+++ b/src/nm-policy.c -@@ -1430,22 +1430,16 @@ device_state_changed (NMDevice *device, - nm_dns_manager_begin_updates (dns_mgr, __func__); - - ip4_config = nm_device_get_ip4_config (device); -- if (ip4_config) { -+ if (ip4_config) - nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, ip4_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); -- update_ip4_dns (policy, dns_mgr); -- } - ip6_config = nm_device_get_ip6_config (device); -- if (ip6_config) { -+ if (ip6_config) - nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, ip6_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); -- update_ip6_dns (policy, dns_mgr); -- } -+ -+ update_routing_and_dns (policy, FALSE); - - nm_dns_manager_end_updates (dns_mgr, __func__); - g_object_unref (dns_mgr); -- -- /* And make sure the best devices have the default route */ -- update_ip4_routing (policy, FALSE); -- update_ip6_routing (policy, FALSE); - break; - case NM_DEVICE_STATE_UNMANAGED: - case NM_DEVICE_STATE_UNAVAILABLE: --- -1.7.11.7 - diff --git a/rh876218-killmode.patch b/rh876218-killmode.patch deleted file mode 100644 index 6e2b2b3..0000000 --- a/rh876218-killmode.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1d89bc0004ec27fbc0c89f17861118c78d7eeab5 Mon Sep 17 00:00:00 2001 -From: Dan Winship -Date: Fri, 4 Jan 2013 11:53:03 -0500 -Subject: [PATCH] systemd: set KillMode=process - -By default, when shutting NM down, systemd will kill everything in its -cgroup. But this can cause problems (eg, NM thinking that dhclient -crashed and then taking down an interface that it would otherwise have -left up). Fix this by setting KillMode=process, which tells systemd to -only kill NM itself, and let NM kill its children. - -https://bugzilla.redhat.com/show_bug.cgi?id=876218 ---- - data/NetworkManager.service.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in -index 9a5f125..16b53b6 100644 ---- a/data/NetworkManager.service.in -+++ b/data/NetworkManager.service.in -@@ -12,6 +12,8 @@ ExecStart=@sbindir@/NetworkManager --no-daemon - # with LOG_PERROR when run in foreground. But systemd redirects stderr to - # syslog by default, which results in logging each message twice. - StandardError=null -+# NM doesn't want systemd to kill its children for it -+KillMode=process - - [Install] - WantedBy=multi-user.target --- -1.8.0.1 - diff --git a/sources b/sources index ed68874..ddc20c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2442913703295417da489d316db3f922 NetworkManager-0.9.7.0.git20121211.tar.bz2 +1e672f496c8dac8e460ea52f24ff447a NetworkManager-0.9.7.997.tar.bz2 diff --git a/udev-uninitialized-devices.patch b/udev-uninitialized-devices.patch deleted file mode 100644 index c728ac8..0000000 --- a/udev-uninitialized-devices.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 2e767e2399f5049b8bb5e7d9a02c78bdb962bb26 Mon Sep 17 00:00:00 2001 -From: Daniel Drake -Date: Mon, 26 Nov 2012 13:09:35 -0600 -Subject: [PATCH] core: don't activate uninitialized devices from udev - -libgudev's device matching here by default can return devices which -udev has not yet finished initializing. - -This was frequently causing boot-time races on the OLPC XO, where -NetworkManager would bring a device up before udev had renamed it, -causing the later rename to fail. - -To solve this, filter the enumeration matches to only include -initialized devices. The devices that are present but uninitialized -at this time will arrive a short time later, via a uevent. - -https://bugs.freedesktop.org/show_bug.cgi?id=56929 ---- - src/nm-udev-manager.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/nm-udev-manager.c b/src/nm-udev-manager.c -index 792e53b..60f41aa 100644 ---- a/src/nm-udev-manager.c -+++ b/src/nm-udev-manager.c -@@ -515,25 +515,35 @@ void - nm_udev_manager_query_devices (NMUdevManager *self) - { - NMUdevManagerPrivate *priv = NM_UDEV_MANAGER_GET_PRIVATE (self); -+ GUdevEnumerator *enumerator; - GList *devices, *iter; - - g_return_if_fail (self != NULL); - g_return_if_fail (NM_IS_UDEV_MANAGER (self)); - -- devices = g_udev_client_query_by_subsystem (priv->client, "net"); -+ enumerator = g_udev_enumerator_new (priv->client); -+ g_udev_enumerator_add_match_subsystem (enumerator, "net"); -+ g_udev_enumerator_add_match_is_initialized (enumerator); -+ -+ devices = g_udev_enumerator_execute (enumerator); - for (iter = devices; iter; iter = g_list_next (iter)) { - net_add (self, G_UDEV_DEVICE (iter->data)); - g_object_unref (G_UDEV_DEVICE (iter->data)); - } - g_list_free (devices); -+ g_object_unref (enumerator); - - -- devices = g_udev_client_query_by_subsystem (priv->client, "atm"); -+ enumerator = g_udev_enumerator_new (priv->client); -+ g_udev_enumerator_add_match_subsystem (enumerator, "atm"); -+ g_udev_enumerator_add_match_is_initialized (enumerator); -+ devices = g_udev_enumerator_execute (enumerator); - for (iter = devices; iter; iter = g_list_next (iter)) { - adsl_add (self, G_UDEV_DEVICE (iter->data)); - g_object_unref (G_UDEV_DEVICE (iter->data)); - } - g_list_free (devices); -+ g_object_unref (enumerator); - } - - static void --- -1.7.11.7 -