summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2014-03-27 11:21:00 +0100
committerThomas Haller <thaller@redhat.com>2014-03-27 12:28:08 +0100
commitb65c788d5fdaaaa922a1c7ab8f54f933e92b83f2 (patch)
tree593dd42caed775addfa085aef452aa395fdccd4a
parentd46e1eb67d3140e6a73f3b5398bc073ed43c3277 (diff)
downloadNetworkManager-b65c788d5fdaaaa922a1c7ab8f54f933e92b83f2.tar.gz
ifcfg-rh: add utils_get_indexed_key_* functions
Add helper functions to stringify the key names with an index for ifcfg-rh. Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r--src/settings/plugins/ifcfg-rh/utils.c32
-rw-r--r--src/settings/plugins/ifcfg-rh/utils.h10
2 files changed, 42 insertions, 0 deletions
diff --git a/src/settings/plugins/ifcfg-rh/utils.c b/src/settings/plugins/ifcfg-rh/utils.c
index 5abb4282e5..abd1f18268 100644
--- a/src/settings/plugins/ifcfg-rh/utils.c
+++ b/src/settings/plugins/ifcfg-rh/utils.c
@@ -24,6 +24,8 @@
#include "utils.h"
#include "shvar.h"
+#include "NetworkManagerUtils.h"
+
/*
* utils_single_quote_string
*
@@ -413,3 +415,33 @@ utils_get_ifcfg_from_alias (const char *alias)
g_free (base);
return ifcfg;
}
+
+#define _STRLEN(NAME) (STRLEN (G_STRINGIFY (NAME)))
+#define DEFINE_UTILS_GET_INDEXED_KEY(NAME) \
+const char * \
+utils_get_indexed_key_##NAME (gint n) \
+{ \
+ static char buff[_STRLEN (NAME) + 4] = G_STRINGIFY (NAME); \
+ int chars; \
+\
+ g_assert (n >= -1 && n <= 999); \
+ if (n == -1) \
+ buff[_STRLEN (NAME)] = 0; \
+ else { \
+ chars = g_snprintf (&buff[_STRLEN (NAME)], sizeof (buff) - _STRLEN (NAME), "%d", n); \
+ g_assert (chars < sizeof (buff) - _STRLEN (NAME)); \
+ } \
+ return buff; \
+}
+DEFINE_UTILS_GET_INDEXED_KEY(ADDRESS)
+DEFINE_UTILS_GET_INDEXED_KEY(DNS)
+DEFINE_UTILS_GET_INDEXED_KEY(GATEWAY)
+DEFINE_UTILS_GET_INDEXED_KEY(IPADDR)
+DEFINE_UTILS_GET_INDEXED_KEY(KEY)
+DEFINE_UTILS_GET_INDEXED_KEY(KEY_PASSPHRASE)
+DEFINE_UTILS_GET_INDEXED_KEY(METRIC)
+DEFINE_UTILS_GET_INDEXED_KEY(NETMASK)
+DEFINE_UTILS_GET_INDEXED_KEY(PREFIX)
+#undef DEFINE_UTILS_GET_INDEXED_KEY
+#undef _STRLEN
+
diff --git a/src/settings/plugins/ifcfg-rh/utils.h b/src/settings/plugins/ifcfg-rh/utils.h
index 95af828bb1..dff50c56ad 100644
--- a/src/settings/plugins/ifcfg-rh/utils.h
+++ b/src/settings/plugins/ifcfg-rh/utils.h
@@ -53,5 +53,15 @@ gboolean utils_ignore_ip_config (NMConnection *connection);
gboolean utils_is_ifcfg_alias_file (const char *alias, const char *ifcfg);
char *utils_get_ifcfg_from_alias (const char *alias);
+const char *utils_get_indexed_key_ADDRESS (gint n);
+const char *utils_get_indexed_key_DNS (gint n);
+const char *utils_get_indexed_key_GATEWAY (gint n);
+const char *utils_get_indexed_key_IPADDR (gint n);
+const char *utils_get_indexed_key_KEY (gint n);
+const char *utils_get_indexed_key_KEY_PASSPHRASE (gint n);
+const char *utils_get_indexed_key_METRIC (gint n);
+const char *utils_get_indexed_key_NETMASK (gint n);
+const char *utils_get_indexed_key_PREFIX (gint n);
+
#endif /* _UTILS_H_ */