diff options
Diffstat (limited to 'src/eap_peer/eap_tnc.c')
| -rw-r--r-- | src/eap_peer/eap_tnc.c | 18 | 
1 files changed, 7 insertions, 11 deletions
diff --git a/src/eap_peer/eap_tnc.c b/src/eap_peer/eap_tnc.c index 25b9f124801a1..726221e6b69ca 100644 --- a/src/eap_peer/eap_tnc.c +++ b/src/eap_peer/eap_tnc.c @@ -10,6 +10,7 @@  #include "common.h"  #include "eap_i.h" +#include "eap_config.h"  #include "tncc.h" @@ -35,12 +36,16 @@ struct eap_tnc_data {  static void * eap_tnc_init(struct eap_sm *sm)  {  	struct eap_tnc_data *data; +	struct eap_peer_config *config = eap_get_config(sm);  	data = os_zalloc(sizeof(*data));  	if (data == NULL)  		return NULL;  	data->state = WAIT_START; -	data->fragment_size = 1300; +	if (config && config->fragment_size) +		data->fragment_size = config->fragment_size; +	else +		data->fragment_size = 1300;  	data->tncc = tncc_init();  	if (data->tncc == NULL) {  		os_free(data); @@ -345,11 +350,6 @@ static struct wpabuf * eap_tnc_process(struct eap_sm *sm, void *priv,  	ret->decision = DECISION_UNCOND_SUCC;  	ret->allowNotifications = TRUE; -	if (data->out_buf) { -		data->state = PROC_MSG; -		return eap_tnc_build_msg(data, ret, id); -	} -  	if (tncs_done) {  		resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, 1,  				     EAP_CODE_RESPONSE, eap_get_id(reqData)); @@ -410,7 +410,6 @@ fail:  int eap_peer_tnc_register(void)  {  	struct eap_method *eap; -	int ret;  	eap = eap_peer_method_alloc(EAP_PEER_METHOD_INTERFACE_VERSION,  				    EAP_VENDOR_IETF, EAP_TYPE_TNC, "TNC"); @@ -421,8 +420,5 @@ int eap_peer_tnc_register(void)  	eap->deinit = eap_tnc_deinit;  	eap->process = eap_tnc_process; -	ret = eap_peer_method_register(eap); -	if (ret) -		eap_peer_method_free(eap); -	return ret; +	return eap_peer_method_register(eap);  }  | 
