eap: Use pen_t instead of uint32_t for vendor ID
This commit is contained in:
@@ -1335,8 +1335,8 @@ static char* get_string(private_message_t *this, char *buf, int len)
|
||||
if (payload->get_type(payload) == PLV2_EAP)
|
||||
{
|
||||
eap_payload_t *eap = (eap_payload_t*)payload;
|
||||
uint32_t vendor;
|
||||
eap_type_t type;
|
||||
pen_t vendor;
|
||||
char method[64] = "";
|
||||
|
||||
type = eap->get_type(eap, &vendor);
|
||||
|
||||
@@ -225,7 +225,7 @@ METHOD(eap_payload_t, get_identifier, uint8_t,
|
||||
* @return the new offset or 0 if failed
|
||||
*/
|
||||
static size_t extract_type(private_eap_payload_t *this, size_t offset,
|
||||
eap_type_t *type, uint32_t *vendor)
|
||||
eap_type_t *type, pen_t *vendor)
|
||||
{
|
||||
if (this->data.len > offset)
|
||||
{
|
||||
@@ -246,7 +246,7 @@ static size_t extract_type(private_eap_payload_t *this, size_t offset,
|
||||
}
|
||||
|
||||
METHOD(eap_payload_t, get_type, eap_type_t,
|
||||
private_eap_payload_t *this, uint32_t *vendor)
|
||||
private_eap_payload_t *this, pen_t *vendor)
|
||||
{
|
||||
eap_type_t type;
|
||||
|
||||
@@ -274,7 +274,7 @@ METHOD(enumerator_t, enumerate_types, bool,
|
||||
type_enumerator_t *this, va_list args)
|
||||
{
|
||||
eap_type_t *type;
|
||||
uint32_t *vendor;
|
||||
pen_t *vendor;
|
||||
|
||||
VA_ARGS_VGET(args, type, vendor);
|
||||
this->offset = extract_type(this->payload, this->offset, type, vendor);
|
||||
@@ -286,7 +286,7 @@ METHOD(eap_payload_t, get_types, enumerator_t*,
|
||||
{
|
||||
type_enumerator_t *enumerator;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
size_t offset;
|
||||
|
||||
offset = extract_type(this, 4, &type, &vendor);
|
||||
@@ -391,7 +391,7 @@ eap_payload_t *eap_payload_create_code(eap_code_t code, uint8_t identifier)
|
||||
/**
|
||||
* Write the given type either expanded or not
|
||||
*/
|
||||
static void write_type(bio_writer_t *writer, eap_type_t type, uint32_t vendor,
|
||||
static void write_type(bio_writer_t *writer, eap_type_t type, pen_t vendor,
|
||||
bool expanded)
|
||||
{
|
||||
if (expanded)
|
||||
@@ -410,11 +410,11 @@ static void write_type(bio_writer_t *writer, eap_type_t type, uint32_t vendor,
|
||||
* Described in header
|
||||
*/
|
||||
eap_payload_t *eap_payload_create_nak(uint8_t identifier, eap_type_t type,
|
||||
uint32_t vendor, bool expanded)
|
||||
pen_t vendor, bool expanded)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
eap_type_t reg_type;
|
||||
uint32_t reg_vendor;
|
||||
pen_t reg_vendor;
|
||||
bio_writer_t *writer;
|
||||
chunk_t data;
|
||||
bool added_any = FALSE, found_vendor = FALSE;
|
||||
|
||||
@@ -81,13 +81,13 @@ struct eap_payload_t {
|
||||
* @param vendor pointer receiving vendor identifier
|
||||
* @return EAP method type, vendor specific if vendor != 0
|
||||
*/
|
||||
eap_type_t (*get_type) (eap_payload_t *this, uint32_t *vendor);
|
||||
eap_type_t (*get_type) (eap_payload_t *this, pen_t *vendor);
|
||||
|
||||
/**
|
||||
* Enumerate the EAP method types contained in an EAP-Nak (i.e. get_type()
|
||||
* returns EAP_NAK).
|
||||
*
|
||||
* @return enumerator over (eap_type_t type, uint32_t vendor)
|
||||
* @return enumerator over (eap_type_t type, pen_t vendor)
|
||||
*/
|
||||
enumerator_t* (*get_types) (eap_payload_t *this);
|
||||
|
||||
@@ -149,6 +149,6 @@ eap_payload_t *eap_payload_create_code(eap_code_t code, uint8_t identifier);
|
||||
* @return eap_payload_t object
|
||||
*/
|
||||
eap_payload_t *eap_payload_create_nak(uint8_t identifier, eap_type_t type,
|
||||
uint32_t vendor, bool expanded);
|
||||
pen_t vendor, bool expanded);
|
||||
|
||||
#endif /** EAP_PAYLOAD_H_ @}*/
|
||||
|
||||
@@ -595,7 +595,7 @@ METHOD(eap_method_t, initiate, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_aka_peer_t *this, uint32_t *vendor)
|
||||
private_eap_aka_peer_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_AKA;
|
||||
|
||||
@@ -638,7 +638,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_aka_server_t *this, uint32_t *vendor)
|
||||
private_eap_aka_server_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_AKA;
|
||||
|
||||
@@ -83,7 +83,7 @@ CALLBACK(entry_matches_cb, bool,
|
||||
* Load the given EAP method
|
||||
*/
|
||||
static eap_method_t *load_method(private_eap_dynamic_t *this,
|
||||
eap_type_t type, uint32_t vendor)
|
||||
eap_type_t type, pen_t vendor)
|
||||
{
|
||||
eap_method_t *method;
|
||||
|
||||
@@ -191,7 +191,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
private_eap_dynamic_t *this, eap_payload_t *in, eap_payload_t **out)
|
||||
{
|
||||
eap_type_t received_type, type;
|
||||
uint32_t received_vendor, vendor;
|
||||
pen_t received_vendor, vendor;
|
||||
|
||||
received_type = in->get_type(in, &received_vendor);
|
||||
if (received_vendor == 0 && received_type == EAP_NAK)
|
||||
@@ -246,7 +246,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_dynamic_t *this, uint32_t *vendor)
|
||||
private_eap_dynamic_t *this, pen_t *vendor)
|
||||
{
|
||||
if (this->method)
|
||||
{
|
||||
@@ -356,7 +356,7 @@ static void get_supported_eap_types(private_eap_dynamic_t *this)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
enumerator = charon->eap->create_enumerator(charon->eap, EAP_SERVER);
|
||||
while (enumerator->enumerate(enumerator, &type, &vendor))
|
||||
|
||||
@@ -186,7 +186,7 @@ METHOD(eap_method_t, process_server, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_gtc_t *this, uint32_t *vendor)
|
||||
private_eap_gtc_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_GTC;
|
||||
|
||||
@@ -125,7 +125,7 @@ METHOD(eap_method_t, initiate_server, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_identity_t *this, uint32_t *vendor)
|
||||
private_eap_identity_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_IDENTITY;
|
||||
|
||||
@@ -205,7 +205,7 @@ METHOD(eap_method_t, process_server, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_md5_t *this, uint32_t *vendor)
|
||||
private_eap_md5_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_MD5;
|
||||
|
||||
@@ -1316,7 +1316,7 @@ METHOD(eap_method_t, process_server, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_mschapv2_t *this, uint32_t *vendor)
|
||||
private_eap_mschapv2_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_MSCHAPV2;
|
||||
|
||||
@@ -78,7 +78,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_peap_t *this, uint32_t *vendor)
|
||||
private_eap_peap_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_PEAP;
|
||||
|
||||
@@ -72,7 +72,7 @@ METHOD(tls_application_t, process, status_t,
|
||||
eap_payload_t *in;
|
||||
eap_code_t code;
|
||||
eap_type_t type, received_type;
|
||||
uint32_t vendor, received_vendor;
|
||||
pen_t vendor, received_vendor;
|
||||
|
||||
status = this->avp->process(this->avp, reader, &data,
|
||||
this->ph1_method->get_identifier(this->ph1_method));
|
||||
@@ -138,7 +138,7 @@ METHOD(tls_application_t, process, status_t,
|
||||
if (received_vendor)
|
||||
{
|
||||
DBG1(DBG_IKE, "server requested vendor specific EAP method %d-%d "
|
||||
"(id 0x%02X", received_type, received_vendor,
|
||||
"(id 0x%02X)", received_type, received_vendor,
|
||||
in->get_identifier(in));
|
||||
}
|
||||
else
|
||||
@@ -192,7 +192,7 @@ METHOD(tls_application_t, build, status_t,
|
||||
chunk_t data;
|
||||
eap_code_t code;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
if (this->out)
|
||||
{
|
||||
|
||||
@@ -168,7 +168,7 @@ METHOD(tls_application_t, process, status_t,
|
||||
eap_payload_t *in;
|
||||
eap_code_t code;
|
||||
eap_type_t type = EAP_NAK, received_type;
|
||||
uint32_t vendor, received_vendor;
|
||||
pen_t vendor, received_vendor;
|
||||
|
||||
status = this->avp->process(this->avp, reader, &data,
|
||||
this->ph1_method->get_identifier(this->ph1_method));
|
||||
@@ -339,7 +339,7 @@ METHOD(tls_application_t, build, status_t,
|
||||
chunk_t data;
|
||||
eap_code_t code;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
if (this->ph2_method == NULL && this->start_phase2 && this->start_phase2_id)
|
||||
{
|
||||
|
||||
@@ -57,7 +57,7 @@ struct private_eap_radius_t {
|
||||
/**
|
||||
* EAP vendor, if any
|
||||
*/
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
/**
|
||||
* EAP message identifier
|
||||
@@ -717,7 +717,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_radius_t *this, uint32_t *vendor)
|
||||
private_eap_radius_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = this->vendor;
|
||||
return this->type;
|
||||
|
||||
@@ -651,7 +651,7 @@ METHOD(eap_method_t, initiate, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_sim_peer_t *this, uint32_t *vendor)
|
||||
private_eap_sim_peer_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_SIM;
|
||||
|
||||
@@ -552,7 +552,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_sim_server_t *this, uint32_t *vendor)
|
||||
private_eap_sim_server_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_SIM;
|
||||
|
||||
@@ -75,7 +75,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_tls_t *this, uint32_t *vendor)
|
||||
private_eap_tls_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_TLS;
|
||||
|
||||
@@ -181,7 +181,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_tnc_t *this, uint32_t *vendor)
|
||||
private_eap_tnc_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return this->type;
|
||||
|
||||
@@ -78,7 +78,7 @@ METHOD(eap_method_t, process, status_t,
|
||||
}
|
||||
|
||||
METHOD(eap_method_t, get_type, eap_type_t,
|
||||
private_eap_ttls_t *this, uint32_t *vendor)
|
||||
private_eap_ttls_t *this, pen_t *vendor)
|
||||
{
|
||||
*vendor = 0;
|
||||
return EAP_TTLS;
|
||||
|
||||
@@ -76,7 +76,7 @@ METHOD(tls_application_t, process, status_t,
|
||||
eap_packet_t *pkt;
|
||||
eap_code_t code;
|
||||
eap_type_t type, received_type;
|
||||
uint32_t vendor, received_vendor;
|
||||
pen_t vendor, received_vendor;
|
||||
uint16_t eap_len;
|
||||
size_t eap_pos = 0;
|
||||
bool concatenated = FALSE;
|
||||
@@ -241,7 +241,7 @@ METHOD(tls_application_t, build, status_t,
|
||||
chunk_t data;
|
||||
eap_code_t code;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
if (this->method == NULL && this->start_phase2)
|
||||
{
|
||||
|
||||
@@ -164,7 +164,7 @@ METHOD(tls_application_t, process, status_t,
|
||||
eap_payload_t *in;
|
||||
eap_code_t code;
|
||||
eap_type_t type = EAP_NAK, received_type;
|
||||
uint32_t vendor, received_vendor;
|
||||
pen_t vendor, received_vendor;
|
||||
|
||||
status = this->avp->process(this->avp, reader, &data);
|
||||
switch (status)
|
||||
@@ -310,7 +310,7 @@ METHOD(tls_application_t, build, status_t,
|
||||
chunk_t data;
|
||||
eap_code_t code;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
if (this->method == NULL && this->start_phase2 &&
|
||||
lib->settings->get_bool(lib->settings,
|
||||
|
||||
@@ -478,7 +478,7 @@ static void process_eap(private_tnc_pdp_t *this, radius_message_t *request,
|
||||
eap_payload_t *in, *out = NULL;
|
||||
eap_method_t *method;
|
||||
eap_type_t eap_type;
|
||||
uint32_t eap_vendor;
|
||||
pen_t eap_vendor;
|
||||
chunk_t data, message = chunk_empty, msk = chunk_empty;
|
||||
chunk_t user_name = chunk_empty, nas_id = chunk_empty;
|
||||
identification_t *group = NULL;
|
||||
|
||||
@@ -114,7 +114,7 @@ static bool verify_eap(private_xauth_eap_t *this, eap_method_t *backend)
|
||||
eap_payload_t *request, *response;
|
||||
eap_method_t *frontend;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
status_t status;
|
||||
|
||||
if (backend->initiate(backend, &request) != NEED_MORE)
|
||||
|
||||
@@ -36,7 +36,7 @@ struct eap_entry_t {
|
||||
/**
|
||||
* vendor ID, 0 for default EAP methods
|
||||
*/
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
/**
|
||||
* Role of the method returned by the constructor, EAP_SERVER or EAP_PEER
|
||||
@@ -71,7 +71,7 @@ struct private_eap_manager_t {
|
||||
};
|
||||
|
||||
METHOD(eap_manager_t, add_method, void,
|
||||
private_eap_manager_t *this, eap_type_t type, uint32_t vendor,
|
||||
private_eap_manager_t *this, eap_type_t type, pen_t vendor,
|
||||
eap_role_t role, eap_constructor_t constructor)
|
||||
{
|
||||
eap_entry_t *entry = malloc_thing(eap_entry_t);
|
||||
@@ -111,7 +111,7 @@ CALLBACK(filter_methods, bool,
|
||||
{
|
||||
eap_entry_t *entry;
|
||||
eap_type_t *type;
|
||||
uint32_t *vendor;
|
||||
pen_t *vendor;
|
||||
|
||||
VA_ARGS_VGET(args, type, vendor);
|
||||
|
||||
@@ -152,7 +152,7 @@ METHOD(eap_manager_t, create_enumerator, enumerator_t*,
|
||||
}
|
||||
|
||||
METHOD(eap_manager_t, create_instance, eap_method_t*,
|
||||
private_eap_manager_t *this, eap_type_t type, uint32_t vendor,
|
||||
private_eap_manager_t *this, eap_type_t type, pen_t vendor,
|
||||
eap_role_t role, identification_t *server, identification_t *peer)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
|
||||
@@ -45,7 +45,7 @@ struct eap_manager_t {
|
||||
* @param role EAP role of the registered method
|
||||
* @param constructor constructor function, returns an eap_method_t
|
||||
*/
|
||||
void (*add_method)(eap_manager_t *this, eap_type_t type, uint32_t vendor,
|
||||
void (*add_method)(eap_manager_t *this, eap_type_t type, pen_t vendor,
|
||||
eap_role_t role, eap_constructor_t constructor);
|
||||
|
||||
/**
|
||||
@@ -62,7 +62,7 @@ struct eap_manager_t {
|
||||
* even though it is registered as method with this manager).
|
||||
*
|
||||
* @param role EAP role of methods to enumerate
|
||||
* @return enumerator over (eap_type_t type, uint32_t vendor)
|
||||
* @return enumerator over (eap_type_t type, pen_t vendor)
|
||||
*/
|
||||
enumerator_t* (*create_enumerator)(eap_manager_t *this, eap_role_t role);
|
||||
|
||||
@@ -77,7 +77,7 @@ struct eap_manager_t {
|
||||
* @return EAP method instance, NULL if no constructor found
|
||||
*/
|
||||
eap_method_t* (*create_instance)(eap_manager_t *this, eap_type_t type,
|
||||
uint32_t vendor, eap_role_t role,
|
||||
pen_t vendor, eap_role_t role,
|
||||
identification_t *server,
|
||||
identification_t *peer);
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ struct eap_method_t {
|
||||
* @param vendor pointer receiving vendor identifier for type, 0 for none
|
||||
* @return type of the EAP method
|
||||
*/
|
||||
eap_type_t (*get_type) (eap_method_t *this, uint32_t *vendor);
|
||||
eap_type_t (*get_type) (eap_method_t *this, pen_t *vendor);
|
||||
|
||||
/**
|
||||
* Check if this EAP method authenticates the server.
|
||||
|
||||
@@ -115,7 +115,7 @@ struct private_eap_authenticator_t {
|
||||
* load an EAP method
|
||||
*/
|
||||
static eap_method_t *load_method(private_eap_authenticator_t *this,
|
||||
eap_type_t type, uint32_t vendor, eap_role_t role)
|
||||
eap_type_t type, pen_t vendor, eap_role_t role)
|
||||
{
|
||||
identification_t *server, *peer, *aaa;
|
||||
auth_cfg_t *auth;
|
||||
@@ -154,7 +154,7 @@ static eap_payload_t* server_initiate_eap(private_eap_authenticator_t *this,
|
||||
auth_cfg_t *auth;
|
||||
eap_type_t type;
|
||||
identification_t *id;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
eap_payload_t *out;
|
||||
char *action;
|
||||
|
||||
@@ -248,7 +248,7 @@ static eap_payload_t* server_process_eap(private_eap_authenticator_t *this,
|
||||
eap_payload_t *in)
|
||||
{
|
||||
eap_type_t type, received_type, conf_type;
|
||||
uint32_t vendor, received_vendor, conf_vendor;
|
||||
pen_t vendor, received_vendor, conf_vendor;
|
||||
eap_payload_t *out;
|
||||
auth_cfg_t *auth;
|
||||
|
||||
@@ -361,7 +361,7 @@ static eap_payload_t* client_process_eap(private_eap_authenticator_t *this,
|
||||
eap_payload_t *in)
|
||||
{
|
||||
eap_type_t type, conf_type;
|
||||
uint32_t vendor, conf_vendor;
|
||||
pen_t vendor, conf_vendor;
|
||||
auth_cfg_t *auth;
|
||||
eap_payload_t *out;
|
||||
identification_t *id;
|
||||
@@ -470,7 +470,7 @@ static bool verify_auth(private_eap_authenticator_t *this, message_t *message,
|
||||
auth_cfg_t *auth;
|
||||
keymat_v2_t *keymat;
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
auth_payload = (auth_payload_t*)message->get_payload(message,
|
||||
PLV2_AUTH);
|
||||
@@ -640,7 +640,7 @@ METHOD(authenticator_t, process_client, status_t,
|
||||
}
|
||||
if (this->require_mutual && !this->method->is_mutual(this->method))
|
||||
{ /* we require mutual authentication due to EAP-only */
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
DBG1(DBG_IKE, "EAP-only authentication requires a mutual and "
|
||||
"MSK deriving EAP method, but %N is not",
|
||||
@@ -668,7 +668,7 @@ METHOD(authenticator_t, process_client, status_t,
|
||||
case EAP_SUCCESS:
|
||||
{
|
||||
eap_type_t type;
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
auth_cfg_t *cfg;
|
||||
|
||||
if (!this->method)
|
||||
@@ -745,7 +745,7 @@ METHOD(authenticator_t, is_mutual, bool,
|
||||
{
|
||||
if (this->method)
|
||||
{
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
|
||||
if (this->method->get_type(this->method, &vendor) != EAP_IDENTITY ||
|
||||
vendor != 0)
|
||||
|
||||
@@ -142,7 +142,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str)
|
||||
enumerator_t *enumerator;
|
||||
eap_vendor_type_t *result = NULL;
|
||||
eap_type_t type = 0;
|
||||
uint32_t vendor = 0;
|
||||
pen_t vendor = 0;
|
||||
char *part, *end;
|
||||
|
||||
/* parse EAP method string of the form: [eap-]type[-vendor] */
|
||||
@@ -170,7 +170,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str)
|
||||
}
|
||||
errno = 0;
|
||||
vendor = strtoul(part, &end, 0);
|
||||
if (*end != '\0' || errno)
|
||||
if (*end != '\0' || errno || vendor >= PEN_UNASSIGNED)
|
||||
{
|
||||
DBG1(DBG_LIB, "invalid EAP vendor: %s", part);
|
||||
type = 0;
|
||||
|
||||
@@ -28,6 +28,7 @@ typedef enum eap_type_t eap_type_t;
|
||||
typedef struct eap_vendor_type_t eap_vendor_type_t;
|
||||
|
||||
#include <library.h>
|
||||
#include <pen/pen.h>
|
||||
|
||||
/**
|
||||
* EAP code, type of an EAP message
|
||||
@@ -99,7 +100,7 @@ struct eap_vendor_type_t {
|
||||
/**
|
||||
* Vendor Id
|
||||
*/
|
||||
uint32_t vendor;
|
||||
pen_t vendor;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user