From 8d275584fc94f398f0a7c990dcd057533d9a5856 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Wed, 20 Feb 2013 23:06:45 +0100 Subject: Imported Upstream version 0.9.8.0 --- src/dns-manager/nm-dns-manager.c | 27 +++++++++++++++++++++++++-- src/dns-manager/nm-dns-manager.h | 5 ++++- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'src/dns-manager') diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c index b838e9f0..707cbbbb 100644 --- a/src/dns-manager/nm-dns-manager.c +++ b/src/dns-manager/nm-dns-manager.c @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Copyright (C) 2004 - 2005 Colin Walters - * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2004 - 2013 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. * and others */ @@ -77,6 +77,14 @@ typedef struct { gboolean dns_touched; } NMDnsManagerPrivate; +enum { + CONFIG_CHANGED, + + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { GPtrArray *nameservers; @@ -746,6 +754,10 @@ update_dns (NMDnsManager *self, if (success == FALSE) success = update_resolv_conf (domain, searches, nameservers, error); + /* signal that resolv.conf was changed */ + if (success) + g_signal_emit (self, signals[CONFIG_CHANGED], 0); + if (searches) g_strfreev (searches); if (nameservers) @@ -1145,9 +1157,20 @@ nm_dns_manager_class_init (NMDnsManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (object_class, sizeof (NMDnsManagerPrivate)); + + /* virtual methods */ object_class->dispose = dispose; object_class->finalize = finalize; - g_type_class_add_private (object_class, sizeof (NMDnsManagerPrivate)); + /* signals */ + signals[CONFIG_CHANGED] = + g_signal_new ("config-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMDnsManagerClass, config_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } diff --git a/src/dns-manager/nm-dns-manager.h b/src/dns-manager/nm-dns-manager.h index 23492012..0fd4c198 100644 --- a/src/dns-manager/nm-dns-manager.h +++ b/src/dns-manager/nm-dns-manager.h @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Copyright (C) 2004 - 2005 Colin Walters - * Copyright (C) 2004 - 2010 Red Hat, Inc. + * Copyright (C) 2004 - 2013 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. * and others */ @@ -60,6 +60,9 @@ typedef struct { typedef struct { GObjectClass parent; + + /* Signals */ + void (*config_changed) (NMDnsManager *mgr); } NMDnsManagerClass; GType nm_dns_manager_get_type (void); -- cgit 1.3.0-6-gf8a5