diff options
Diffstat (limited to 'network/NetworkManager/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch')
-rw-r--r-- | network/NetworkManager/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/network/NetworkManager/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch b/network/NetworkManager/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch new file mode 100644 index 0000000000..a26f988f23 --- /dev/null +++ b/network/NetworkManager/patches/keyfile-allow-uppercase-MAC-addresses-in-unmanaged-d.patch @@ -0,0 +1,50 @@ +From e01c7b69abb9c118b9e0087803ca203ff157aa0a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com> +Date: Tue, 23 Nov 2010 16:27:21 +0100 +Subject: [PATCH 4/4] keyfile: allow uppercase MAC addresses in unmanaged-devices in config file (rh #654714) + +--- + system-settings/plugins/keyfile/plugin.c | 20 ++++++++++++++++++-- + 1 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/system-settings/plugins/keyfile/plugin.c b/system-settings/plugins/keyfile/plugin.c +index 5a927ce..da6456d 100644 +--- a/system-settings/plugins/keyfile/plugin.c ++++ b/system-settings/plugins/keyfile/plugin.c +@@ -23,6 +23,7 @@ + #include <sys/stat.h> + #include <unistd.h> + #include <sys/types.h> ++#include <netinet/ether.h> + #include <string.h> + + #include <gmodule.h> +@@ -418,8 +419,23 @@ get_unmanaged_specs (NMSystemConfigInterface *config) + udis = g_strsplit (str, ";", -1); + g_free (str); + +- for (i = 0; udis[i] != NULL; i++) +- specs = g_slist_append (specs, udis[i]); ++ for (i = 0; udis[i] != NULL; i++) { ++ /* Verify unmanaged specification and add it to the list */ ++ if (strlen (udis[i]) > 4 && !strncmp (udis[i], "mac:", 4) && ether_aton (udis[i] + 4)) { ++ char *p = udis[i]; ++ ++ /* To accept uppercase MACs in configuration file, we have to convert values to lowercase here. ++ * Unmanaged MACs in specs are always in lowercase. */ ++ while (*p) { ++ *p = g_ascii_tolower (*p); ++ p++; ++ } ++ specs = g_slist_append (specs, udis[i]); ++ } else { ++ g_warning ("Error in file '%s': invalid unmanaged-devices entry: '%s'", priv->conf_file, udis[i]); ++ g_free (udis[i]); ++ } ++ } + + g_free (udis); /* Yes, g_free, not g_strfreev because we need the strings in the list */ + } +-- +1.7.3.4 + |