Rename RADIUS message constructors to handle both, requests and responses
This commit is contained in:
@@ -162,7 +162,7 @@ METHOD(eap_method_t, initiate, status_t,
|
|||||||
status_t status = FAILED;
|
status_t status = FAILED;
|
||||||
chunk_t username;
|
chunk_t username;
|
||||||
|
|
||||||
request = radius_message_create_request(RMC_ACCESS_REQUEST);
|
request = radius_message_create(RMC_ACCESS_REQUEST);
|
||||||
username = chunk_create(this->id_prefix, strlen(this->id_prefix));
|
username = chunk_create(this->id_prefix, strlen(this->id_prefix));
|
||||||
username = chunk_cata("cc", username, this->peer->get_encoding(this->peer));
|
username = chunk_cata("cc", username, this->peer->get_encoding(this->peer));
|
||||||
request->add(request, RAT_USER_NAME, username);
|
request->add(request, RAT_USER_NAME, username);
|
||||||
@@ -314,7 +314,7 @@ METHOD(eap_method_t, process, status_t,
|
|||||||
status_t status = FAILED;
|
status_t status = FAILED;
|
||||||
chunk_t data;
|
chunk_t data;
|
||||||
|
|
||||||
request = radius_message_create_request(RMC_ACCESS_REQUEST);
|
request = radius_message_create(RMC_ACCESS_REQUEST);
|
||||||
request->add(request, RAT_USER_NAME, this->peer->get_encoding(this->peer));
|
request->add(request, RAT_USER_NAME, this->peer->get_encoding(this->peer));
|
||||||
data = in->get_data(in);
|
data = in->get_data(in);
|
||||||
DBG3(DBG_IKE, "%N payload %B", eap_type_names, this->type, &data);
|
DBG3(DBG_IKE, "%N payload %B", eap_type_names, this->type, &data);
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ static void send_start(private_eap_radius_accounting_t *this, ike_sa_t *ike_sa)
|
|||||||
);
|
);
|
||||||
snprintf(entry->sid, sizeof(entry->sid), "%u-%u", this->prefix, id);
|
snprintf(entry->sid, sizeof(entry->sid), "%u-%u", this->prefix, id);
|
||||||
|
|
||||||
message = radius_message_create_request(RMC_ACCOUNTING_REQUEST);
|
message = radius_message_create(RMC_ACCOUNTING_REQUEST);
|
||||||
value = htonl(ACCT_STATUS_START);
|
value = htonl(ACCT_STATUS_START);
|
||||||
message->add(message, RAT_ACCT_STATUS_TYPE, chunk_from_thing(value));
|
message->add(message, RAT_ACCT_STATUS_TYPE, chunk_from_thing(value));
|
||||||
message->add(message, RAT_ACCT_SESSION_ID,
|
message->add(message, RAT_ACCT_SESSION_ID,
|
||||||
@@ -212,7 +212,7 @@ static void send_stop(private_eap_radius_accounting_t *this, ike_sa_t *ike_sa)
|
|||||||
this->mutex->unlock(this->mutex);
|
this->mutex->unlock(this->mutex);
|
||||||
if (entry)
|
if (entry)
|
||||||
{
|
{
|
||||||
message = radius_message_create_request(RMC_ACCOUNTING_REQUEST);
|
message = radius_message_create(RMC_ACCOUNTING_REQUEST);
|
||||||
value = htonl(ACCT_STATUS_STOP);
|
value = htonl(ACCT_STATUS_STOP);
|
||||||
message->add(message, RAT_ACCT_STATUS_TYPE, chunk_from_thing(value));
|
message->add(message, RAT_ACCT_STATUS_TYPE, chunk_from_thing(value));
|
||||||
message->add(message, RAT_ACCT_SESSION_ID,
|
message->add(message, RAT_ACCT_SESSION_ID,
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ static job_requeue_t receive(private_eap_radius_dae_t *this)
|
|||||||
|
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
{
|
{
|
||||||
request = radius_message_parse_response(chunk_create(buf, len));
|
request = radius_message_parse(chunk_create(buf, len));
|
||||||
if (request)
|
if (request)
|
||||||
{
|
{
|
||||||
switch (request->get_code(request))
|
switch (request->get_code(request))
|
||||||
|
|||||||
@@ -418,7 +418,7 @@ METHOD(radius_message_t, destroy, void,
|
|||||||
/**
|
/**
|
||||||
* Generic constructor
|
* Generic constructor
|
||||||
*/
|
*/
|
||||||
static private_radius_message_t *radius_message_create()
|
static private_radius_message_t *radius_message_create_empty()
|
||||||
{
|
{
|
||||||
private_radius_message_t *this;
|
private_radius_message_t *this;
|
||||||
|
|
||||||
@@ -443,9 +443,9 @@ static private_radius_message_t *radius_message_create()
|
|||||||
/**
|
/**
|
||||||
* See header
|
* See header
|
||||||
*/
|
*/
|
||||||
radius_message_t *radius_message_create_request(radius_message_code_t code)
|
radius_message_t *radius_message_create(radius_message_code_t code)
|
||||||
{
|
{
|
||||||
private_radius_message_t *this = radius_message_create();
|
private_radius_message_t *this = radius_message_create_empty();
|
||||||
|
|
||||||
INIT(this->msg,
|
INIT(this->msg,
|
||||||
.code = code,
|
.code = code,
|
||||||
@@ -459,9 +459,9 @@ radius_message_t *radius_message_create_request(radius_message_code_t code)
|
|||||||
/**
|
/**
|
||||||
* See header
|
* See header
|
||||||
*/
|
*/
|
||||||
radius_message_t *radius_message_parse_response(chunk_t data)
|
radius_message_t *radius_message_parse(chunk_t data)
|
||||||
{
|
{
|
||||||
private_radius_message_t *this = radius_message_create();
|
private_radius_message_t *this = radius_message_create_empty();
|
||||||
|
|
||||||
this->msg = malloc(data.len);
|
this->msg = malloc(data.len);
|
||||||
memcpy(this->msg, data.ptr, data.len);
|
memcpy(this->msg, data.ptr, data.len);
|
||||||
|
|||||||
@@ -268,19 +268,19 @@ struct radius_message_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an empty RADIUS request message.
|
* Create an empty RADIUS message.
|
||||||
*
|
*
|
||||||
* @param code request type
|
* @param code request type
|
||||||
* @return radius_message_t object
|
* @return radius_message_t object
|
||||||
*/
|
*/
|
||||||
radius_message_t *radius_message_create_request(radius_message_code_t code);
|
radius_message_t *radius_message_create(radius_message_code_t code);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse and verify a recevied RADIUS response.
|
* Parse and verify a recevied RADIUS message.
|
||||||
*
|
*
|
||||||
* @param data received message data
|
* @param data received message data
|
||||||
* @return radius_message_t object, NULL if length invalid
|
* @return radius_message_t object, NULL if length invalid
|
||||||
*/
|
*/
|
||||||
radius_message_t *radius_message_parse_response(chunk_t data);
|
radius_message_t *radius_message_parse(chunk_t data);
|
||||||
|
|
||||||
#endif /** RADIUS_MESSAGE_H_ @}*/
|
#endif /** RADIUS_MESSAGE_H_ @}*/
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ METHOD(radius_socket_t, request, radius_message_t*,
|
|||||||
strerror(errno));
|
strerror(errno));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
response = radius_message_parse_response(chunk_create(buf, res));
|
response = radius_message_parse(chunk_create(buf, res));
|
||||||
if (response)
|
if (response)
|
||||||
{
|
{
|
||||||
if (response->verify(response,
|
if (response->verify(response,
|
||||||
|
|||||||
Reference in New Issue
Block a user