d4c1522a3e
This commit is mostly similar to c9b963bc22
as
we revert to the previous release.
146 lines
5.0 KiB
Diff
146 lines
5.0 KiB
Diff
From 8ee4f58e9ee67df2ef761a691dec55c6008ad4ff Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
|
Date: Wed, 22 Jan 2014 15:31:56 +0100
|
|
Subject: [PATCH] libnm-glib: additional functions to get nameservers (rh
|
|
#1056146)
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
This commit adds two new functions for introspection users to get nameservers:
|
|
guint32 nm_ip6_config_get_num_nameservers (NMIP6Config *config)
|
|
const struct in6_addr *nm_ip6_config_get_nameserver (NMIP6Config *config, guint32 idx)
|
|
The existing function can't be used due to GObject introspection limitations:
|
|
const GSList *nm_ip6_config_get_nameservers (NMIP6Config *config);
|
|
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1056146
|
|
|
|
Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
|
|
---
|
|
libnm-glib/libnm-glib.ver | 2 ++
|
|
libnm-glib/nm-ip6-config.c | 52 +++++++++++++++++++++++++++++++++++++++++++++-
|
|
libnm-glib/nm-ip6-config.h | 16 +++++++-------
|
|
3 files changed, 62 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver
|
|
index bf69db4..9f0db93 100644
|
|
--- a/libnm-glib/libnm-glib.ver
|
|
+++ b/libnm-glib/libnm-glib.ver
|
|
@@ -227,7 +227,9 @@ global:
|
|
nm_ip6_config_get_addresses;
|
|
nm_ip6_config_get_domains;
|
|
nm_ip6_config_get_gateway;
|
|
+ nm_ip6_config_get_nameserver;
|
|
nm_ip6_config_get_nameservers;
|
|
+ nm_ip6_config_get_num_nameservers;
|
|
nm_ip6_config_get_routes;
|
|
nm_ip6_config_get_searches;
|
|
nm_ip6_config_get_type;
|
|
diff --git a/libnm-glib/nm-ip6-config.c b/libnm-glib/nm-ip6-config.c
|
|
index 01e2cae..7c9cfca 100644
|
|
--- a/libnm-glib/nm-ip6-config.c
|
|
+++ b/libnm-glib/nm-ip6-config.c
|
|
@@ -18,7 +18,7 @@
|
|
* Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright (C) 2007 - 2008 Novell, Inc.
|
|
- * Copyright (C) 2008 - 2011 Red Hat, Inc.
|
|
+ * Copyright (C) 2008 - 2014 Red Hat, Inc.
|
|
*/
|
|
|
|
#include <string.h>
|
|
@@ -192,6 +192,56 @@ nm_ip6_config_get_addresses (NMIP6Config *config)
|
|
return NM_IP6_CONFIG_GET_PRIVATE (config)->addresses;
|
|
}
|
|
|
|
+/**
|
|
+ * nm_ip6_config_get_num_nameservers:
|
|
+ * @config: a #NMIP6Config
|
|
+ *
|
|
+ * Gets the number of the domain name servers in the configuration.
|
|
+ *
|
|
+ * Returns: the number of domain name servers
|
|
+ *
|
|
+ * Since: 0.9.10
|
|
+ **/
|
|
+guint32
|
|
+nm_ip6_config_get_num_nameservers (NMIP6Config *config)
|
|
+{
|
|
+ g_return_val_if_fail (NM_IS_IP6_CONFIG (config), 0);
|
|
+
|
|
+ _nm_object_ensure_inited (NM_OBJECT (config));
|
|
+ return g_slist_length (NM_IP6_CONFIG_GET_PRIVATE (config)->nameservers);
|
|
+}
|
|
+
|
|
+/**
|
|
+ * nm_ip6_config_get_nameserver:
|
|
+ * @config: a #NMIP6Config
|
|
+ * @idx: index of the nameserver to return
|
|
+ *
|
|
+ * Gets the domain name server at index @idx in the configuration.
|
|
+ *
|
|
+ * Returns: (array fixed-size=16) (element-type guint8) (transfer none):
|
|
+ * the IPv6 address of domain name server at index @iidx
|
|
+ *
|
|
+ * Since: 0.9.10
|
|
+ **/
|
|
+const struct in6_addr *
|
|
+nm_ip6_config_get_nameserver (NMIP6Config *config, guint32 idx)
|
|
+{
|
|
+ NMIP6ConfigPrivate *priv;
|
|
+ GSList *item;
|
|
+ guint32 i = 0;
|
|
+
|
|
+ g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL);
|
|
+
|
|
+ _nm_object_ensure_inited (NM_OBJECT (config));
|
|
+ priv = NM_IP6_CONFIG_GET_PRIVATE (config);
|
|
+
|
|
+ for (item = priv->nameservers; item && i < idx; i++)
|
|
+ item = item->next;
|
|
+
|
|
+ g_return_val_if_fail (item, NULL);
|
|
+ return item ? (const struct in6_addr *) item->data : NULL;
|
|
+}
|
|
+
|
|
/* FIXME: like in libnm_util, in6_addr is not introspectable, so skipping here */
|
|
/**
|
|
* nm_ip6_config_get_nameservers: (skip)
|
|
diff --git a/libnm-glib/nm-ip6-config.h b/libnm-glib/nm-ip6-config.h
|
|
index a71d74b..b6198fa 100644
|
|
--- a/libnm-glib/nm-ip6-config.h
|
|
+++ b/libnm-glib/nm-ip6-config.h
|
|
@@ -18,7 +18,7 @@
|
|
* Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright (C) 2007 - 2008 Novell, Inc.
|
|
- * Copyright (C) 2008 Red Hat, Inc.
|
|
+ * Copyright (C) 2008 - 2014 Red Hat, Inc.
|
|
*/
|
|
|
|
#ifndef NM_IP6_CONFIG_H
|
|
@@ -65,12 +65,14 @@ GType nm_ip6_config_get_type (void);
|
|
|
|
GObject *nm_ip6_config_new (DBusGConnection *connection, const char *object_path);
|
|
|
|
-const char * nm_ip6_config_get_gateway (NMIP6Config *config);
|
|
-const GSList * nm_ip6_config_get_addresses (NMIP6Config *config);
|
|
-const GSList * nm_ip6_config_get_routes (NMIP6Config *config);
|
|
-const GSList * nm_ip6_config_get_nameservers (NMIP6Config *config);
|
|
-const GPtrArray *nm_ip6_config_get_domains (NMIP6Config *config);
|
|
-const GPtrArray *nm_ip6_config_get_searches (NMIP6Config *config);
|
|
+const char * nm_ip6_config_get_gateway (NMIP6Config *config);
|
|
+const GSList * nm_ip6_config_get_addresses (NMIP6Config *config);
|
|
+const GSList * nm_ip6_config_get_routes (NMIP6Config *config);
|
|
+guint32 nm_ip6_config_get_num_nameservers (NMIP6Config *config);
|
|
+const struct in6_addr *nm_ip6_config_get_nameserver (NMIP6Config *config, guint32 idx);
|
|
+const GSList * nm_ip6_config_get_nameservers (NMIP6Config *config);
|
|
+const GPtrArray * nm_ip6_config_get_domains (NMIP6Config *config);
|
|
+const GPtrArray * nm_ip6_config_get_searches (NMIP6Config *config);
|
|
|
|
G_END_DECLS
|
|
|
|
--
|
|
1.7.11.7
|
|
|