diff options
author | Dan Williams <dcbw@redhat.com> | 2014-07-03 13:49:14 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-07-03 14:05:04 -0500 |
commit | 3ee9c3be57610e613a57f585f15a9afd2a2b4999 (patch) | |
tree | 91b9e07de49863b8ebab2cbebcfc76d090853c7d | |
parent | bbdae859f68b19d52f74e641426a77f39933fe5c (diff) | |
download | NetworkManager-3ee9c3be57610e613a57f585f15a9afd2a2b4999.tar.gz |
ifcfg-rh: fix reading 802.1x phase2 EAP-GTC method
4 files changed, 54 insertions, 2 deletions
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index d4537de808..af16d0dbf4 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -3040,10 +3040,12 @@ eap_ttls_reader (const char *eap_method, if (!eap_tls_reader (*iter, ifcfg, keys, s_8021x, TRUE, error)) goto done; g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTHEAP, "tls", NULL); - } else if (!strcmp (*iter, "eap-mschapv2") || !strcmp (*iter, "eap-md5")) { + } else if ( !strcmp (*iter, "eap-mschapv2") + || !strcmp (*iter, "eap-md5") + || !strcmp (*iter, "eap-gtc")) { if (!eap_simple_reader (*iter, ifcfg, keys, s_8021x, TRUE, error)) goto done; - g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTHEAP, (*iter + strlen ("eap-")), NULL); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTHEAP, (*iter + STRLEN ("eap-")), NULL); } else { g_set_error (error, IFCFG_PLUGIN_ERROR, 0, "Unknown IEEE_8021X_INNER_AUTH_METHOD '%s'.", diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am index 10ebcc91f8..1701aeeb3c 100644 --- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am @@ -22,6 +22,7 @@ EXTRA_DIST = \ ifcfg-test-wired-8021x-tls-agent \ ifcfg-test-wired-8021x-tls-always \ ifcfg-test-wired-802-1X-subj-matches \ + ifcfg-test-wired-802-1x-ttls-eapgtc \ ifcfg-test-onboot-no \ ifcfg-test-noip \ ifcfg-test-wifi-open \ diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc new file mode 100644 index 0000000000..fad927726c --- /dev/null +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc @@ -0,0 +1,13 @@ +# Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) +TYPE=Ethernet +DEVICE=eth0 +HWADDR=00:11:22:33:44:ee +BOOTPROTO=dhcp +ONBOOT=yes +NM_CONTROLLED=yes +KEY_MGMT=IEEE8021X +IEEE_8021X_EAP_METHODS=TTLS +IEEE_8021X_IDENTITY="Bill Smith" +IEEE_8021X_CA_CERT=test_ca_cert.pem +IEEE_8021X_INNER_AUTH_METHODS=EAP-GTC +IEEE_8021X_PASSWORD_FLAGS=ask diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index b8a16c3c52..95d2e7d30f 100644 --- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -2827,6 +2827,41 @@ test_read_write_802_1X_subj_matches (void) g_object_unref (reread); } +static void +test_read_802_1x_ttls_eapgtc (void) +{ + NMConnection *connection; + NMSetting8021x *s_8021x; + GError *error = NULL; + gboolean success; + + /* Test that EAP-* inner methods are correctly read into the + * NMSetting8021x::autheap property. + */ + + connection = connection_from_file (TEST_IFCFG_DIR"/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc", + NULL, TYPE_WIRELESS, NULL, NULL, NULL, NULL, NULL, &error, NULL); + g_assert_no_error (error); + g_assert (connection); + success = nm_connection_verify (connection, &error); + g_assert_no_error (error); + g_assert (success); + + /* ===== 802.1x SETTING ===== */ + s_8021x = nm_connection_get_setting_802_1x (connection); + g_assert (s_8021x); + + /* EAP methods */ + g_assert_cmpint (nm_setting_802_1x_get_num_eap_methods (s_8021x), ==, 1); + g_assert_cmpstr (nm_setting_802_1x_get_eap_method (s_8021x, 0), ==, "ttls"); + + /* Auth methods */ + g_assert_cmpstr (nm_setting_802_1x_get_phase2_auth (s_8021x), ==, NULL); + g_assert_cmpstr (nm_setting_802_1x_get_phase2_autheap (s_8021x), ==, "gtc"); + + g_object_unref (connection); +} + #define TEST_IFCFG_ALIASES_GOOD TEST_IFCFG_DIR"/network-scripts/ifcfg-aliasem0" static void @@ -14548,6 +14583,7 @@ int main (int argc, char **argv) test_read_wired_8021x_tls_secret_flags (TEST_IFCFG_WIRED_8021X_TLS_ALWAYS, NM_SETTING_SECRET_FLAG_AGENT_OWNED | NM_SETTING_SECRET_FLAG_NOT_SAVED); g_test_add_func (TPATH "802-1x/subj-matches", test_read_write_802_1X_subj_matches); + g_test_add_func (TPATH "802-1x/ttls-eapgtc", test_read_802_1x_ttls_eapgtc); test_read_wired_aliases_good (); test_read_wired_aliases_bad_1 (); test_read_wired_aliases_bad_2 (); |