[network-manager-openvpn] shared: re-import shared files from NetworkManager repository
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openvpn] shared: re-import shared files from NetworkManager repository
- Date: Sun, 8 May 2016 19:46:49 +0000 (UTC)
commit e3083055e317265ce357a0e8e260a8037e0e6b3c
Author: Thomas Haller <thaller redhat com>
Date: Sun May 8 21:44:06 2016 +0200
shared: re-import shared files from NetworkManager repository
Copy the files without modifications from NetworkManager's shared
directory.
shared/nm-macros-internal.h | 4 ++-
shared/nm-shared-utils.c | 79 ++++++++++++++++++++++++------------------
shared/nm-shared-utils.h | 3 ++
shared/nm-test-utils.h | 81 +++++++++++++++++++++++++++++++++++++++++--
4 files changed, 129 insertions(+), 38 deletions(-)
---
diff --git a/shared/nm-macros-internal.h b/shared/nm-macros-internal.h
index 4176231..384bca6 100644
--- a/shared/nm-macros-internal.h
+++ b/shared/nm-macros-internal.h
@@ -26,7 +26,9 @@
/********************************************************/
-#define nm_auto(fcn) __attribute ((cleanup(fcn)))
+#define _nm_packed __attribute__ ((packed))
+
+#define nm_auto(fcn) __attribute__ ((cleanup(fcn)))
/**
* nm_auto_free:
diff --git a/shared/nm-shared-utils.c b/shared/nm-shared-utils.c
index 0ae54bd..38f6529 100644
--- a/shared/nm-shared-utils.c
+++ b/shared/nm-shared-utils.c
@@ -45,8 +45,7 @@ gint64
_nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback)
{
gint64 v;
- size_t len;
- char buf[64], *s, *str_free = NULL;
+ char *s = NULL;
if (str) {
while (g_ascii_isspace (str[0]))
@@ -57,47 +56,59 @@ _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 ma
return fallback;
}
- len = strlen (str);
- if (g_ascii_isspace (str[--len])) {
- /* backward search the first non-ws character.
- * We already know that str[0] is non-ws. */
- while (g_ascii_isspace (str[--len]))
- ;
+ errno = 0;
+ v = g_ascii_strtoll (str, &s, base);
+
+ if (errno != 0)
+ return fallback;
+ if (s[0] != '\0') {
+ while (g_ascii_isspace (s[0]))
+ s++;
+ if (s[0] != '\0') {
+ errno = EINVAL;
+ return fallback;
+ }
+ }
+ if (v > max || v < min) {
+ errno = ERANGE;
+ return fallback;
+ }
- /* str[len] is now the last non-ws character... */
- len++;
+ return v;
+}
- if (len >= sizeof (buf))
- s = str_free = g_malloc (len + 1);
- else
- s = buf;
+/*****************************************************************************/
- memcpy (s, str, len);
- s[len] = 0;
+gint
+_nm_utils_ascii_str_to_bool (const char *str,
+ gint default_value)
+{
+ gsize len;
+ char *s = NULL;
- nm_assert (len > 0 && len < strlen (str) && len == strlen (s));
- nm_assert (!g_ascii_isspace (str[len-1]) && g_ascii_isspace (str[len]));
- nm_assert (strncmp (str, s, len) == 0);
+ if (!str)
+ return default_value;
- str = s;
- }
+ while (str[0] && g_ascii_isspace (str[0]))
+ str++;
- errno = 0;
- v = g_ascii_strtoll (str, &s, base);
+ if (!str[0])
+ return default_value;
- if (errno != 0)
- v = fallback;
- else if (s[0] != 0) {
- errno = EINVAL;
- v = fallback;
- } else if (v > max || v < min) {
- errno = ERANGE;
- v = fallback;
+ len = strlen (str);
+ if (g_ascii_isspace (str[len - 1])) {
+ s = g_strdup (str);
+ g_strchomp (s);
+ str = s;
}
- if (G_UNLIKELY (str_free))
- g_free (str_free);
- return v;
+ if (!g_ascii_strcasecmp (str, "true") || !g_ascii_strcasecmp (str, "yes") || !g_ascii_strcasecmp
(str, "on") || !g_ascii_strcasecmp (str, "1"))
+ default_value = TRUE;
+ else if (!g_ascii_strcasecmp (str, "false") || !g_ascii_strcasecmp (str, "no") || !g_ascii_strcasecmp
(str, "off") || !g_ascii_strcasecmp (str, "0"))
+ default_value = FALSE;
+ if (s)
+ g_free (s);
+ return default_value;
}
/*****************************************************************************/
diff --git a/shared/nm-shared-utils.h b/shared/nm-shared-utils.h
index f80c850..cfa8f99 100644
--- a/shared/nm-shared-utils.h
+++ b/shared/nm-shared-utils.h
@@ -26,6 +26,9 @@
gint64 _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback);
+gint _nm_utils_ascii_str_to_bool (const char *str,
+ gint default_value);
+
/******************************************************************************/
/**
diff --git a/shared/nm-test-utils.h b/shared/nm-test-utils.h
index 2503245..0759b3c 100644
--- a/shared/nm-test-utils.h
+++ b/shared/nm-test-utils.h
@@ -782,6 +782,34 @@ nmtst_get_rand_int (void)
return g_rand_int (nmtst_get_rand ());
}
+inline static gpointer
+nmtst_rand_buf (GRand *rand, gpointer buffer, gsize buffer_length)
+{
+ guint32 v;
+ guint8 *b = buffer;
+
+ if (!buffer_length)
+ return buffer;
+
+ g_assert (buffer);
+
+ if (!rand)
+ rand = nmtst_get_rand ();
+
+ for (; buffer_length >= sizeof (guint32); buffer_length -= sizeof (guint32), b += sizeof (guint32)) {
+ v = g_rand_int (rand);
+ memcpy (b, &v, sizeof (guint32));
+ }
+ if (buffer_length > 0) {
+ v = g_rand_int (rand);
+ do {
+ *(b++) = v & 0xFF;
+ v >>= 8;
+ } while (--buffer_length > 0);
+ }
+ return buffer;
+}
+
inline static void *
nmtst_rand_perm (GRand *rand, void *dst, const void *src, gsize elmt_size, gsize n_elmt)
{
@@ -1151,11 +1179,54 @@ _nmtst_assert_resolve_relative_path_equals (const char *f1, const char *f2, cons
#ifdef __NETWORKMANAGER_PLATFORM_H__
+inline static NMPlatformIP4Address *
+nmtst_platform_ip4_address (const char *address, const char *peer_address, guint plen)
+{
+ static NMPlatformIP4Address addr;
+
+ g_assert (plen <= 32);
+
+ memset (&addr, 0, sizeof (addr));
+ addr.address = nmtst_inet4_from_string (address);
+ if (peer_address)
+ addr.peer_address = nmtst_inet4_from_string (peer_address);
+ else
+ addr.peer_address = addr.address;
+ addr.plen = plen;
+
+ return &addr;
+}
+
+inline static NMPlatformIP4Address *
+nmtst_platform_ip4_address_full (const char *address, const char *peer_address, guint plen,
+ int ifindex, NMIPConfigSource source, guint32 timestamp,
+ guint32 lifetime, guint32 preferred, guint32 flags,
+ const char *label)
+{
+ NMPlatformIP4Address *addr = nmtst_platform_ip4_address (address, peer_address, plen);
+
+ G_STATIC_ASSERT (IFNAMSIZ == sizeof (addr->label));
+ g_assert (!label || strlen (label) < IFNAMSIZ);
+
+ addr->ifindex = ifindex;
+ addr->addr_source = source;
+ addr->timestamp = timestamp;
+ addr->lifetime = lifetime;
+ addr->preferred = preferred;
+ addr->n_ifa_flags = flags;
+ if (label)
+ g_strlcpy (addr->label, label, sizeof (addr->label));
+
+ return addr;
+}
+
inline static NMPlatformIP6Address *
nmtst_platform_ip6_address (const char *address, const char *peer_address, guint plen)
{
static NMPlatformIP6Address addr;
+ g_assert (plen <= 128);
+
memset (&addr, 0, sizeof (addr));
addr.address = *nmtst_inet6_from_string (address);
addr.peer_address = *nmtst_inet6_from_string (peer_address);
@@ -1172,7 +1243,7 @@ nmtst_platform_ip6_address_full (const char *address, const char *peer_address,
NMPlatformIP6Address *addr = nmtst_platform_ip6_address (address, peer_address, plen);
addr->ifindex = ifindex;
- addr->source = source;
+ addr->addr_source = source;
addr->timestamp = timestamp;
addr->lifetime = lifetime;
addr->preferred = preferred;
@@ -1186,6 +1257,8 @@ nmtst_platform_ip4_route (const char *network, guint plen, const char *gateway)
{
static NMPlatformIP4Route route;
+ g_assert (plen <= 32);
+
memset (&route, 0, sizeof (route));
route.network = nmtst_inet4_from_string (network);
route.plen = plen;
@@ -1204,7 +1277,7 @@ nmtst_platform_ip4_route_full (const char *network, guint plen, const char *gate
NMPlatformIP4Route *route = nmtst_platform_ip4_route (network, plen, gateway);
route->ifindex = ifindex;
- route->source = source;
+ route->rt_source = source;
route->metric = metric;
route->mss = mss;
route->scope_inv = nm_platform_route_scope_inv (scope);
@@ -1218,6 +1291,8 @@ nmtst_platform_ip6_route (const char *network, guint plen, const char *gateway)
{
static NMPlatformIP6Route route;
+ nm_assert (plen <= 128);
+
memset (&route, 0, sizeof (route));
route.network = *nmtst_inet6_from_string (network);
route.plen = plen;
@@ -1234,7 +1309,7 @@ nmtst_platform_ip6_route_full (const char *network, guint plen, const char *gate
NMPlatformIP6Route *route = nmtst_platform_ip6_route (network, plen, gateway);
route->ifindex = ifindex;
- route->source = source;
+ route->rt_source = source;
route->metric = metric;
route->mss = mss;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]