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 <thaller@redhat.com>
This commit is contained in:
Thomas Haller
2014-01-21 11:23:16 +01:00
parent 11cce07c66
commit 634e4c99c3
5 changed files with 19 additions and 16 deletions

View File

@@ -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

View File

@@ -1352,12 +1352,13 @@ 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)) {
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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);