about summary refs log tree commit diff
path: root/src/core/nm-ip-config.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/nm-ip-config.h')
-rw-r--r--src/core/nm-ip-config.h60
1 files changed, 51 insertions, 9 deletions
diff --git a/src/core/nm-ip-config.h b/src/core/nm-ip-config.h
index 8e1a5934..68103cf7 100644
--- a/src/core/nm-ip-config.h
+++ b/src/core/nm-ip-config.h
@@ -7,6 +7,7 @@
 #define __NM_IP_CONFIG_H__
 
 #include "nm-dbus-object.h"
+#include "nm-l3cfg.h"
 
 /*****************************************************************************/
 
@@ -19,26 +20,67 @@
 #define NM_IP_CONFIG_GET_CLASS(obj) \
     (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_IP_CONFIG, NMIPConfigClass))
 
-#define NM_IP_CONFIG_L3CFG  "l3cfg"
-#define NM_IP_CONFIG_IS_VPN "is-vpn"
+#define NM_IP_CONFIG_L3CFG "l3cfg"
 
-struct _NMIPConfigPrivate;
+struct _NMIPConfigPrivate {
+    NML3Cfg              *l3cfg;
+    const NML3ConfigData *l3cd;
+    GVariant             *v_address_data;
+    GVariant             *v_addresses;
+    GVariant             *v_route_data;
+    GVariant             *v_routes;
+    struct {
+        const NMPObject *best_default_route;
+    } v_gateway;
+    gulong l3cfg_notify_id;
+};
 
 struct _NMIPConfig {
-    NMDBusObject               parent;
-    struct _NMIPConfigPrivate *_priv;
+    NMDBusObject              parent;
+    struct _NMIPConfigPrivate _priv;
 };
 
 typedef struct {
     NMDBusObjectClass parent;
-    gboolean          is_ipv4;
     int               addr_family;
 } NMIPConfigClass;
 
 GType nm_ip_config_get_type(void);
-GType nm_ip4_config_get_type(void);
-GType nm_ip6_config_get_type(void);
 
-NMIPConfig *nm_ip_config_new(int addr_family, NML3Cfg *l3cfg, gboolean is_vpn);
+NMIPConfig *nm_ip_config_new(int addr_family, NML3Cfg *l3cfg);
+
+void nm_ip_config_take_and_unexport_on_idle(NMIPConfig *self_take);
+
+void nm_ip_config_dns_hash(const NML3ConfigData *l3cd, GChecksum *sum, int addr_family);
+
+/*****************************************************************************/
+
+static inline NML3Cfg *
+nm_ip_config_get_l3cfg(NMIPConfig *self)
+{
+    g_return_val_if_fail(NM_IS_IP_CONFIG(self), NULL);
+
+    return self->_priv.l3cfg;
+}
+
+static inline struct _NMDedupMultiIndex *
+nm_ip_config_get_multi_index(NMIPConfig *self)
+{
+    return nm_l3cfg_get_multi_idx(nm_ip_config_get_l3cfg(self));
+}
+
+static inline int
+nm_ip_config_get_ifindex(NMIPConfig *self)
+{
+    return nm_l3cfg_get_ifindex(nm_ip_config_get_l3cfg(self));
+}
+
+static inline int
+nm_ip_config_get_addr_family(NMIPConfig *self)
+{
+    g_return_val_if_fail(NM_IS_IP_CONFIG(self), AF_UNSPEC);
+
+    return NM_IP_CONFIG_GET_CLASS(self)->addr_family;
+}
 
 #endif /* __NM_IP_CONFIG_H__ */