From 634e4c99c3907f1b9fc0dbff4a6d4065182e9b09 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 21 Jan 2014 11:23:16 +0100 Subject: [PATCH] platform: add parameter to nm_platform_sysctl_get() to suppress logging error In some cases, an error when reading the sysctl value can be expected. In this case, we want to suppress the error message Signed-off-by: Thomas Haller --- src/platform/nm-fake-platform.c | 6 +++--- src/platform/nm-linux-platform.c | 15 ++++++++------- src/platform/nm-platform.c | 8 +++++--- src/platform/nm-platform.h | 4 ++-- src/platform/tests/platform.c | 2 +- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c index dcbf9325e..9fa4077fd 100644 --- a/src/platform/nm-fake-platform.c +++ b/src/platform/nm-fake-platform.c @@ -72,7 +72,7 @@ sysctl_set (NMPlatform *platform, const char *path, const char *value) } static char * -sysctl_get (NMPlatform *platform, const char *path) +sysctl_get (NMPlatform *platform, const char *path, gboolean silent_on_error) { NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); @@ -566,7 +566,7 @@ master_get_option (NMPlatform *platform, int master, const char *option) { auto_g_free char *path = g_strdup_printf ("master:%d:%s", master, option); - return sysctl_get (platform, path); + return sysctl_get (platform, path, FALSE); } static gboolean @@ -582,7 +582,7 @@ slave_get_option (NMPlatform *platform, int slave, const char *option) { auto_g_free char *path = g_strdup_printf ("slave:%d:%s", slave, option); - return sysctl_get (platform, path); + return sysctl_get (platform, path, FALSE); } static gboolean diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index cc704bff4..45f98ebbd 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -1352,13 +1352,14 @@ sysctl_set (NMPlatform *platform, const char *path, const char *value) } static char * -sysctl_get (NMPlatform *platform, const char *path) +sysctl_get (NMPlatform *platform, const char *path, gboolean silent_on_error) { GError *error = NULL; char *contents; if (!g_file_get_contents (path, &contents, NULL, &error)) { - error ("error reading %s: %s", path, error->message); + if (!silent_on_error) + error ("error reading %s: %s", path, error->message); g_clear_error (&error); return NULL; } @@ -1767,7 +1768,7 @@ link_get_physical_port_id (NMPlatform *platform, int ifindex) path = g_strdup_printf ("/sys/class/net/%s/phys_port_id", ifname); if (g_file_test (path, G_FILE_TEST_EXISTS)) - id = sysctl_get (platform, path); + id = sysctl_get (platform, path, FALSE); else id = NULL; g_free (path); @@ -1888,7 +1889,7 @@ link_get_option (int master, const char *category, const char *option) { auto_g_free char *path = link_option_path (master, category, option); - return path ? nm_platform_sysctl_get (path) : NULL; + return path ? nm_platform_sysctl_get (path, FALSE) : NULL; } static const char * @@ -2012,7 +2013,7 @@ tun_get_properties (NMPlatform *platform, int ifindex, NMPlatformTunProperties * return FALSE; path = g_strdup_printf ("/sys/class/net/%s/owner", ifname); - val = nm_platform_sysctl_get (path); + val = nm_platform_sysctl_get (path, FALSE); g_free (path); if (!val) return FALSE; @@ -2020,7 +2021,7 @@ tun_get_properties (NMPlatform *platform, int ifindex, NMPlatformTunProperties * g_free (val); path = g_strdup_printf ("/sys/class/net/%s/group", ifname); - val = nm_platform_sysctl_get (path); + val = nm_platform_sysctl_get (path, FALSE); g_free (path); if (!val) return FALSE; @@ -2028,7 +2029,7 @@ tun_get_properties (NMPlatform *platform, int ifindex, NMPlatformTunProperties * g_free (val); path = g_strdup_printf ("/sys/class/net/%s/tun_flags", ifname); - val = nm_platform_sysctl_get (path); + val = nm_platform_sysctl_get (path, FALSE); g_free (path); if (!val) return FALSE; diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index ac2400954..44d50c2dc 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -230,18 +230,20 @@ nm_platform_sysctl_set (const char *path, const char *value) /** * nm_platform_sysctl_get: * @path: Absolute path to sysctl + * @silent_on_error: don't log an error message when the value + * could not be read. * * Returns: (transfer full): Contents of the virtual sysctl file. */ char * -nm_platform_sysctl_get (const char *path) +nm_platform_sysctl_get (const char *path, gboolean silent_on_error) { reset_error (); g_return_val_if_fail (path, NULL); g_return_val_if_fail (klass->sysctl_get, NULL); - return klass->sysctl_get (platform, path); + return klass->sysctl_get (platform, path, silent_on_error); } /** @@ -263,7 +265,7 @@ nm_platform_sysctl_get_int32 (const char *path, gint32 fallback) g_return_val_if_fail (path, fallback); if (path) - value = nm_platform_sysctl_get (path); + value = nm_platform_sysctl_get (path, FALSE); if (!value) { errno = EINVAL; diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index 39f36057b..6ccaac79e 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -252,7 +252,7 @@ typedef struct { gboolean (*setup) (NMPlatform *); gboolean (*sysctl_set) (NMPlatform *, const char *path, const char *value); - char * (*sysctl_get) (NMPlatform *, const char *path); + char * (*sysctl_get) (NMPlatform *, const char *path, gboolean silent_on_error); GArray *(*link_get_all) (NMPlatform *); gboolean (*link_add) (NMPlatform *, const char *name, NMLinkType type); @@ -369,7 +369,7 @@ const char *nm_platform_get_error_msg (void); void nm_platform_query_devices (void); gboolean nm_platform_sysctl_set (const char *path, const char *value); -char *nm_platform_sysctl_get (const char *path); +char *nm_platform_sysctl_get (const char *path, gboolean silent_on_error); gint32 nm_platform_sysctl_get_int32 (const char *path, gint32 fallback); GArray *nm_platform_link_get_all (void); diff --git a/src/platform/tests/platform.c b/src/platform/tests/platform.c index 7ca2cb525..3c636f539 100644 --- a/src/platform/tests/platform.c +++ b/src/platform/tests/platform.c @@ -47,7 +47,7 @@ do_sysctl_set (char **argv) static gboolean do_sysctl_get (char **argv) { - auto_g_free char *value = nm_platform_sysctl_get (argv[0]); + auto_g_free char *value = nm_platform_sysctl_get (argv[0], FALSE); printf ("%s\n", value);