diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2013-10-14 13:57:51 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2013-10-25 22:32:47 +0200 |
commit | a9ea67185e713d3c9def741bfcf0438612f2f248 (patch) | |
tree | 6c6eff4269bd4d1e430b365fc90ddc397bbb41d4 | |
parent | 0c6a98df786f015ae98d9c75af63906d25ff03ef (diff) | |
download | NetworkManager-a9ea67185e713d3c9def741bfcf0438612f2f248.tar.gz |
libnm-util: validate "primary" bonding option as an interface name
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | libnm-util/nm-setting-bond.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libnm-util/nm-setting-bond.c b/libnm-util/nm-setting-bond.c index 88b1851d4c..bf9e529e29 100644 --- a/libnm-util/nm-setting-bond.c +++ b/libnm-util/nm-setting-bond.c @@ -89,6 +89,7 @@ enum { TYPE_STR, TYPE_BOTH, TYPE_IP, + TYPE_IFNAME, }; typedef struct { @@ -110,7 +111,7 @@ static const BondDefault defaults[] = { { NM_SETTING_BOND_OPTION_ARP_IP_TARGET, "", TYPE_IP }, { NM_SETTING_BOND_OPTION_ARP_VALIDATE, "0", TYPE_BOTH, 0, 3, { "none", "active", "backup", "all", NULL } }, - { NM_SETTING_BOND_OPTION_PRIMARY, "", TYPE_STR }, + { NM_SETTING_BOND_OPTION_PRIMARY, "", TYPE_IFNAME }, { NM_SETTING_BOND_OPTION_PRIMARY_RESELECT, "0", TYPE_BOTH, 0, 2, { "always", "better", "failure", NULL } }, { NM_SETTING_BOND_OPTION_FAIL_OVER_MAC, "0", TYPE_BOTH, 0, 2, @@ -271,6 +272,15 @@ validate_ip (const char *name, const char *value) return success; } +static gboolean +validate_ifname (const char *name, const char *value) +{ + if (!value || !value[0]) + return FALSE; + + return nm_utils_iface_valid_name (value); +} + /** * nm_setting_bond_validate_option: * @name: the name of the option to validate @@ -307,6 +317,8 @@ nm_setting_bond_validate_option (const char *name, || validate_list (name, value, &defaults[i]); case TYPE_IP: return validate_ip (name, value); + case TYPE_IFNAME: + return validate_ifname (name, value); } return FALSE; } |