Renamed radius_server to radius_config, as some real RADIUS server functionality is coming
This commit is contained in:
@@ -6,4 +6,4 @@ libradius_la_SOURCES = \
|
||||
radius_message.h radius_message.c \
|
||||
radius_socket.h radius_socket.c \
|
||||
radius_client.h radius_client.c \
|
||||
radius_server.h radius_server.c
|
||||
radius_config.h radius_config.c
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
*/
|
||||
|
||||
#include "radius_client.h"
|
||||
#include "radius_server.h"
|
||||
#include "radius_config.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
@@ -38,9 +38,9 @@ struct private_radius_client_t {
|
||||
radius_client_t public;
|
||||
|
||||
/**
|
||||
* Selected RADIUS server
|
||||
* Selected RADIUS server configuration
|
||||
*/
|
||||
radius_server_t *server;
|
||||
radius_config_t *config;
|
||||
|
||||
/**
|
||||
* RADIUS servers State attribute
|
||||
@@ -89,31 +89,31 @@ METHOD(radius_client_t, request, radius_message_t*,
|
||||
req->add(req, RAT_NAS_PORT_TYPE, chunk_create(virtual, sizeof(virtual)));
|
||||
/* add our NAS-Identifier */
|
||||
req->add(req, RAT_NAS_IDENTIFIER,
|
||||
this->server->get_nas_identifier(this->server));
|
||||
this->config->get_nas_identifier(this->config));
|
||||
/* add State attribute, if server sent one */
|
||||
if (this->state.ptr)
|
||||
{
|
||||
req->add(req, RAT_STATE, this->state);
|
||||
}
|
||||
socket = this->server->get_socket(this->server);
|
||||
socket = this->config->get_socket(this->config);
|
||||
DBG1(DBG_CFG, "sending RADIUS %N to server '%s'", radius_message_code_names,
|
||||
req->get_code(req), this->server->get_name(this->server));
|
||||
req->get_code(req), this->config->get_name(this->config));
|
||||
res = socket->request(socket, req);
|
||||
if (res)
|
||||
{
|
||||
DBG1(DBG_CFG, "received RADIUS %N from server '%s'",
|
||||
radius_message_code_names, res->get_code(res),
|
||||
this->server->get_name(this->server));
|
||||
this->config->get_name(this->config));
|
||||
save_state(this, res);
|
||||
if (res->get_code(res) == RMC_ACCESS_ACCEPT)
|
||||
{
|
||||
chunk_clear(&this->msk);
|
||||
this->msk = socket->decrypt_msk(socket, req, res);
|
||||
}
|
||||
this->server->put_socket(this->server, socket, TRUE);
|
||||
this->config->put_socket(this->config, socket, TRUE);
|
||||
return res;
|
||||
}
|
||||
this->server->put_socket(this->server, socket, FALSE);
|
||||
this->config->put_socket(this->config, socket, FALSE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ METHOD(radius_client_t, get_msk, chunk_t,
|
||||
METHOD(radius_client_t, destroy, void,
|
||||
private_radius_client_t *this)
|
||||
{
|
||||
this->server->destroy(this->server);
|
||||
this->config->destroy(this->config);
|
||||
chunk_clear(&this->msk);
|
||||
free(this->state.ptr);
|
||||
free(this);
|
||||
@@ -135,7 +135,7 @@ METHOD(radius_client_t, destroy, void,
|
||||
/**
|
||||
* See header
|
||||
*/
|
||||
radius_client_t *radius_client_create(radius_server_t *server)
|
||||
radius_client_t *radius_client_create(radius_config_t *config)
|
||||
{
|
||||
private_radius_client_t *this;
|
||||
|
||||
@@ -145,7 +145,7 @@ radius_client_t *radius_client_create(radius_server_t *server)
|
||||
.get_msk = _get_msk,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
.server = server,
|
||||
.config = config,
|
||||
);
|
||||
|
||||
return &this->public;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define RADIUS_CLIENT_H_
|
||||
|
||||
#include "radius_message.h"
|
||||
#include "radius_server.h"
|
||||
#include "radius_config.h"
|
||||
|
||||
typedef struct radius_client_t radius_client_t;
|
||||
|
||||
@@ -60,9 +60,9 @@ struct radius_client_t {
|
||||
/**
|
||||
* Create a RADIUS client.
|
||||
*
|
||||
* @param server reference to a server configuration, gets owned
|
||||
* @param config reference to a server configuration, gets owned
|
||||
* @return radius_client_t object
|
||||
*/
|
||||
radius_client_t *radius_client_create(radius_server_t *server);
|
||||
radius_client_t *radius_client_create(radius_config_t *config);
|
||||
|
||||
#endif /** RADIUS_CLIENT_H_ @}*/
|
||||
|
||||
@@ -13,23 +13,23 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "radius_server.h"
|
||||
#include "radius_config.h"
|
||||
|
||||
#include <threading/mutex.h>
|
||||
#include <threading/condvar.h>
|
||||
#include <utils/linked_list.h>
|
||||
|
||||
typedef struct private_radius_server_t private_radius_server_t;
|
||||
typedef struct private_radius_config_t private_radius_config_t;
|
||||
|
||||
/**
|
||||
* Private data of an radius_server_t object.
|
||||
* Private data of an radius_config_t object.
|
||||
*/
|
||||
struct private_radius_server_t {
|
||||
struct private_radius_config_t {
|
||||
|
||||
/**
|
||||
* Public radius_server_t interface.
|
||||
* Public radius_config_t interface.
|
||||
*/
|
||||
radius_server_t public;
|
||||
radius_config_t public;
|
||||
|
||||
/**
|
||||
* list of radius sockets, as radius_socket_t
|
||||
@@ -82,8 +82,8 @@ struct private_radius_server_t {
|
||||
refcount_t ref;
|
||||
};
|
||||
|
||||
METHOD(radius_server_t, get_socket, radius_socket_t*,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, get_socket, radius_socket_t*,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
radius_socket_t *skt;
|
||||
|
||||
@@ -96,8 +96,8 @@ METHOD(radius_server_t, get_socket, radius_socket_t*,
|
||||
return skt;
|
||||
}
|
||||
|
||||
METHOD(radius_server_t, put_socket, void,
|
||||
private_radius_server_t *this, radius_socket_t *skt, bool result)
|
||||
METHOD(radius_config_t, put_socket, void,
|
||||
private_radius_config_t *this, radius_socket_t *skt, bool result)
|
||||
{
|
||||
this->mutex->lock(this->mutex);
|
||||
this->sockets->insert_last(this->sockets, skt);
|
||||
@@ -106,14 +106,14 @@ METHOD(radius_server_t, put_socket, void,
|
||||
this->reachable = result;
|
||||
}
|
||||
|
||||
METHOD(radius_server_t, get_nas_identifier, chunk_t,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, get_nas_identifier, chunk_t,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
return this->nas_identifier;
|
||||
}
|
||||
|
||||
METHOD(radius_server_t, get_preference, int,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, get_preference, int,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
int pref;
|
||||
|
||||
@@ -147,22 +147,22 @@ METHOD(radius_server_t, get_preference, int,
|
||||
return pref;
|
||||
}
|
||||
|
||||
METHOD(radius_server_t, get_name, char*,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, get_name, char*,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
return this->name;
|
||||
}
|
||||
|
||||
METHOD(radius_server_t, get_ref, radius_server_t*,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, get_ref, radius_config_t*,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public;
|
||||
}
|
||||
|
||||
|
||||
METHOD(radius_server_t, destroy, void,
|
||||
private_radius_server_t *this)
|
||||
METHOD(radius_config_t, destroy, void,
|
||||
private_radius_config_t *this)
|
||||
{
|
||||
if (ref_put(&this->ref))
|
||||
{
|
||||
@@ -177,12 +177,12 @@ METHOD(radius_server_t, destroy, void,
|
||||
/**
|
||||
* See header
|
||||
*/
|
||||
radius_server_t *radius_server_create(char *name, char *address,
|
||||
radius_config_t *radius_config_create(char *name, char *address,
|
||||
u_int16_t auth_port, u_int16_t acct_port,
|
||||
char *nas_identifier, char *secret,
|
||||
int sockets, int preference)
|
||||
{
|
||||
private_radius_server_t *this;
|
||||
private_radius_config_t *this;
|
||||
radius_socket_t *socket;
|
||||
|
||||
INIT(this,
|
||||
@@ -14,28 +14,28 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup radius_server radius_server
|
||||
* @defgroup radius_config radius_config
|
||||
* @{ @ingroup libradius
|
||||
*/
|
||||
|
||||
#ifndef RADIUS_SERVER_H_
|
||||
#define RADIUS_SERVER_H_
|
||||
#ifndef RADIUS_CONFIG_H_
|
||||
#define RADIUS_CONFIG_H_
|
||||
|
||||
typedef struct radius_server_t radius_server_t;
|
||||
typedef struct radius_config_t radius_config_t;
|
||||
|
||||
#include "radius_socket.h"
|
||||
|
||||
/**
|
||||
* RADIUS server configuration.
|
||||
*/
|
||||
struct radius_server_t {
|
||||
struct radius_config_t {
|
||||
|
||||
/**
|
||||
* Get a RADIUS socket from the pool to communicate with this server.
|
||||
* Get a RADIUS socket from the pool to communicate with this config.
|
||||
*
|
||||
* @return RADIUS socket
|
||||
*/
|
||||
radius_socket_t* (*get_socket)(radius_server_t *this);
|
||||
radius_socket_t* (*get_socket)(radius_config_t *this);
|
||||
|
||||
/**
|
||||
* Release a socket to the pool after use.
|
||||
@@ -43,14 +43,14 @@ struct radius_server_t {
|
||||
* @param skt RADIUS socket to release
|
||||
* @param result result of the socket use, TRUE for success
|
||||
*/
|
||||
void (*put_socket)(radius_server_t *this, radius_socket_t *skt, bool result);
|
||||
void (*put_socket)(radius_config_t *this, radius_socket_t *skt, bool result);
|
||||
|
||||
/**
|
||||
* Get the NAS-Identifier to use with this server.
|
||||
*
|
||||
* @return NAS-Identifier, internal data
|
||||
*/
|
||||
chunk_t (*get_nas_identifier)(radius_server_t *this);
|
||||
chunk_t (*get_nas_identifier)(radius_config_t *this);
|
||||
|
||||
/**
|
||||
* Get the preference of this server.
|
||||
@@ -58,30 +58,30 @@ struct radius_server_t {
|
||||
* Based on the available sockets and the server reachability a preference
|
||||
* value is calculated: better servers return a higher value.
|
||||
*/
|
||||
int (*get_preference)(radius_server_t *this);
|
||||
int (*get_preference)(radius_config_t *this);
|
||||
|
||||
/**
|
||||
* Get the name of the RADIUS server.
|
||||
*
|
||||
* @return server name
|
||||
*/
|
||||
char* (*get_name)(radius_server_t *this);
|
||||
char* (*get_name)(radius_config_t *this);
|
||||
|
||||
/**
|
||||
* Increase reference count of this server.
|
||||
* Increase reference count of this server configuration.
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
radius_server_t* (*get_ref)(radius_server_t *this);
|
||||
radius_config_t* (*get_ref)(radius_config_t *this);
|
||||
|
||||
/**
|
||||
* Destroy a radius_server_t.
|
||||
* Destroy a radius_config_t.
|
||||
*/
|
||||
void (*destroy)(radius_server_t *this);
|
||||
void (*destroy)(radius_config_t *this);
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a radius_server instance.
|
||||
* Create a radius_config_t instance.
|
||||
*
|
||||
* @param name server name
|
||||
* @param address server address
|
||||
@@ -92,9 +92,9 @@ struct radius_server_t {
|
||||
* @param sockets number of sockets to create in pool
|
||||
* @param preference preference boost for this server
|
||||
*/
|
||||
radius_server_t *radius_server_create(char *name, char *address,
|
||||
radius_config_t *radius_config_create(char *name, char *address,
|
||||
u_int16_t auth_port, u_int16_t acct_port,
|
||||
char *nas_identifier, char *secret,
|
||||
int sockets, int preference);
|
||||
|
||||
#endif /** RADIUS_SERVER_H_ @}*/
|
||||
#endif /** RADIUS_CONFIG_H_ @}*/
|
||||
Reference in New Issue
Block a user