]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
TNC: Provide 'tnc' configuration option for EAP server and methods
authorJouni Malinen <j@w1.fi>
Sun, 9 Mar 2008 08:42:53 +0000 (10:42 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 9 Mar 2008 08:42:53 +0000 (10:42 +0200)
hostapd/eapol_sm.c
hostapd/eapol_sm.h
hostapd/hostapd.c
hostapd/ieee802_1x.c
src/eap_server/eap.c
src/eap_server/eap.h
src/eap_server/eap_i.h
src/radius/radius_server.c
src/radius/radius_server.h

index 4bf0ff4128c62f7711babf140b5b5d2f81ea7231..2b3d16ef0469783f0cb56cd8f58ed469d861e59a 100644 (file)
@@ -806,6 +806,7 @@ eapol_auth_alloc(struct eapol_authenticator *eapol, const u8 *addr,
        eap_conf.pac_opaque_encr_key = eapol->conf.pac_opaque_encr_key;
        eap_conf.eap_fast_a_id = eapol->conf.eap_fast_a_id;
        eap_conf.eap_sim_aka_result_ind = eapol->conf.eap_sim_aka_result_ind;
+       eap_conf.tnc = eapol->conf.tnc;
        sm->eap = eap_server_sm_init(sm, &eapol_cb, &eap_conf);
        if (sm->eap == NULL) {
                eapol_auth_free(sm);
@@ -1237,6 +1238,7 @@ static int eapol_auth_conf_clone(struct eapol_auth_config *dst,
        else
                dst->eap_fast_a_id = NULL;
        dst->eap_sim_aka_result_ind = src->eap_sim_aka_result_ind;
+       dst->tnc = src->tnc;
        return 0;
 }
 
index 7e2cb5c8172e9eebbf8238395644e06f95388134..df0ddd0bd3c4f719a2edb66c6edfbac460fb9f94 100644 (file)
@@ -50,6 +50,7 @@ struct eapol_auth_config {
        u8 *pac_opaque_encr_key;
        char *eap_fast_a_id;
        int eap_sim_aka_result_ind;
+       int tnc;
 
        /*
         * Pointer to hostapd data. This is a temporary workaround for
index e8e8b8a1e9d031f41bcea70334ceca3d7c20a37a..64e5b99728f7137d7167df1a88cd5977a2b23b8a 100644 (file)
@@ -1140,6 +1140,7 @@ static int hostapd_setup_radius_srv(struct hostapd_data *hapd,
        srv.pac_opaque_encr_key = conf->pac_opaque_encr_key;
        srv.eap_fast_a_id = conf->eap_fast_a_id;
        srv.eap_sim_aka_result_ind = conf->eap_sim_aka_result_ind;
+       srv.tnc = conf->tnc;
        srv.ipv6 = conf->radius_server_ipv6;
        srv.get_eap_user = hostapd_radius_get_eap_user;
 
index e2f22cc1e6b9963a16bc1dbeb66c04ebfd72ca9a..9f66672c5eba7e995cd3336acb96715493299d70 100644 (file)
@@ -1608,6 +1608,7 @@ int ieee802_1x_init(struct hostapd_data *hapd)
        conf.pac_opaque_encr_key = hapd->conf->pac_opaque_encr_key;
        conf.eap_fast_a_id = hapd->conf->eap_fast_a_id;
        conf.eap_sim_aka_result_ind = hapd->conf->eap_sim_aka_result_ind;
+       conf.tnc = hapd->conf->tnc;
 
        os_memset(&cb, 0, sizeof(cb));
        cb.eapol_send = ieee802_1x_eapol_send;
index 058ecdcb7a1b937e312fba819a6e4eb0be0067a4..0fa8132a179e2c21e423c100923d6cad8bb051b0 100644 (file)
@@ -1154,6 +1154,7 @@ struct eap_sm * eap_server_sm_init(void *eapol_ctx,
        if (conf->eap_fast_a_id)
                sm->eap_fast_a_id = os_strdup(conf->eap_fast_a_id);
        sm->eap_sim_aka_result_ind = conf->eap_sim_aka_result_ind;
+       sm->tnc = conf->tnc;
 
        wpa_printf(MSG_DEBUG, "EAP: Server state machine created");
 
index 1bb58ddf8f8c23d601726f9847600315108a0ff3..ed84baea77c6731d6e22b695146e0c367a046d7a 100644 (file)
@@ -97,6 +97,7 @@ struct eap_config {
        u8 *pac_opaque_encr_key;
        char *eap_fast_a_id;
        int eap_sim_aka_result_ind;
+       int tnc;
 };
 
 
index 60873306fa97ca067b96610b56b2520325369342..696c65a170df4239160911c945619a06409491ef 100644 (file)
@@ -174,6 +174,7 @@ struct eap_sm {
        u8 *pac_opaque_encr_key;
        char *eap_fast_a_id;
        int eap_sim_aka_result_ind;
+       int tnc;
 };
 
 int eap_user_get(struct eap_sm *sm, const u8 *identity, size_t identity_len,
index 20ded436f7a9bcf0ac2cc269e6d56dc036672be0..0d18d8caa278b2a368158dabf2d021b1cd6c1c8b 100644 (file)
@@ -87,6 +87,7 @@ struct radius_server_data {
        u8 *pac_opaque_encr_key;
        char *eap_fast_a_id;
        int eap_sim_aka_result_ind;
+       int tnc;
        int ipv6;
        struct os_time start_time;
        struct radius_server_counters counters;
@@ -311,6 +312,7 @@ radius_server_get_new_session(struct radius_server_data *data,
        eap_conf.pac_opaque_encr_key = data->pac_opaque_encr_key;
        eap_conf.eap_fast_a_id = data->eap_fast_a_id;
        eap_conf.eap_sim_aka_result_ind = data->eap_sim_aka_result_ind;
+       eap_conf.tnc = data->tnc;
        sess->eap = eap_server_sm_init(sess, &radius_server_eapol_cb,
                                       &eap_conf);
        if (sess->eap == NULL) {
@@ -1016,6 +1018,7 @@ radius_server_init(struct radius_server_conf *conf)
                data->eap_fast_a_id = os_strdup(conf->eap_fast_a_id);
        data->get_eap_user = conf->get_eap_user;
        data->eap_sim_aka_result_ind = conf->eap_sim_aka_result_ind;
+       data->tnc = conf->tnc;
 
        data->clients = radius_server_read_clients(conf->client_file,
                                                   conf->ipv6);
index d8f74d4ebc091a524e4780e88b7fa4757a7a73a6..1012a1453b1fb2687cbdc537a855d1c2b992a2d4 100644 (file)
@@ -27,6 +27,7 @@ struct radius_server_conf {
        u8 *pac_opaque_encr_key;
        char *eap_fast_a_id;
        int eap_sim_aka_result_ind;
+       int tnc;
        int ipv6;
        int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len,
                            int phase2, struct eap_user *user);