Request forwarding API. More...
Go to the source code of this file.
Data Structures | |
struct | _realm |
struct | fr_socket_limit_t |
struct | home_pool_t |
struct | home_server |
Typedefs | |
typedef struct fr_socket_limit_t | fr_socket_limit_t |
typedef struct home_pool_t | home_pool_t |
typedef enum home_pool_type_t | home_pool_type_t |
typedef struct home_server | home_server_t |
typedef struct _realm | REALM |
typedef struct realm_config | realm_config_t |
Variables | |
bool | home_servers_udp |
Whether there are any UDP home servers. More... | |
Request forwarding API.
Definition in file realms.h.
struct _realm |
Data Fields | ||
---|---|---|
home_pool_t * | acct_pool | |
home_pool_t * | auth_pool | |
home_pool_t * | coa_pool | |
char const * | name | |
bool | strip_realm |
struct fr_socket_limit_t |
struct home_pool_t |
Data Fields | ||
---|---|---|
CONF_SECTION * | cs | |
home_server_t * | fallback | |
int | in_fallback | |
char const * | name | |
int | num_home_servers | |
home_type_t | server_type | |
home_server_t * | servers[1] | |
time_t | time_all_dead | |
home_pool_type_t | type | |
char const * | virtual_server |
struct home_server |
Data Fields | ||
---|---|---|
uint32_t | coa_irt | |
uint32_t | coa_mrc | |
uint32_t | coa_mrd | |
uint32_t | coa_mrt | |
CONF_SECTION * | cs | |
uint32_t | currently_outstanding | |
bool | dual | One of a pair of homeservers on consecutive ports. |
fr_stats_ema_t | ema | |
fr_event_t * | ev | |
fr_ipaddr_t | ipaddr | IP address of home server. |
time_t | last_failed_open | |
time_t | last_packet_recv | |
time_t | last_packet_sent | |
fr_socket_limit_t | limit | |
char const * | log_name | The name used for log messages. |
uint32_t | max_outstanding | Maximum outstanding requests. |
uint32_t | max_response_timeouts | |
char const * | name | Name the server may be referenced by for querying stats or when specifying home servers for a pool. |
uint32_t | num_pings_to_alive | |
uint32_t | num_received_pings | |
uint32_t | num_sent_pings | |
int | number | |
char const * | parent_server | |
home_ping_check_t | ping_check | What method we use to perform the 'ping' none, status-server or fake request. |
char const * | ping_check_str | |
uint32_t | ping_interval | |
uint32_t | ping_timeout | |
char const * | ping_user_name | |
char const * | ping_user_password | |
uint16_t | port | |
int | proto | TCP or UDP. |
char const * | proto_str | String representation of protocol. |
uint32_t | response_timeouts | |
struct timeval | response_window | |
uint32_t | revive_interval | How often we revive it (if it doesn't support pings). |
struct timeval | revive_time | |
char const * | secret | |
char const * | server | For internal proxying. |
fr_ipaddr_t | src_ipaddr |
Resolved version of src_ipaddr_str. Preferred source IP address (useful for multihomed systems). |
char const * | src_ipaddr_str | Need to parse the string specially as it may require a DNS lookup and the address family for that is the same as ipaddr. |
int | state | |
fr_stats_t | stats | |
home_type_t | type | Auth, Acct, CoA etc. |
char const * | type_str | String representation of type. |
struct timeval | when | |
uint32_t | zombie_period | Unresponsive for T, mark it dead. |
struct timeval | zombie_period_start |
typedef struct fr_socket_limit_t fr_socket_limit_t |
typedef struct home_pool_t home_pool_t |
typedef enum home_pool_type_t home_pool_type_t |
typedef struct home_server home_server_t |
typedef struct realm_config realm_config_t |
enum home_ping_check_t |
enum home_pool_type_t |
enum home_state_t |
enum home_type_t |
home_pool_t* home_pool_byname | ( | char const * | name, |
int | type | ||
) |
home_server_t* home_server_afrom_cs | ( | TALLOC_CTX * | ctx, |
realm_config_t * | rc, | ||
CONF_SECTION * | cs | ||
) |
Alloc a new home server defined by a CONF_SECTION.
ctx | to allocate home_server_t in. |
rc | Realm config, may be NULL in which case the global realm_config will be used. |
cs | Configuration section containing home server parameters. |
Definition at line 569 of file realms.c.
home_server_t* home_server_byname | ( | char const * | name, |
int | type | ||
) |
home_server_t* home_server_bynumber | ( | int | number | ) |
CONF_SECTION* home_server_cs_afrom_client | ( | CONF_SECTION * | client | ) |
Fixup a client configuration section to specify a home server.
This is used to create the equivalent CoA home server entry for a client, so that the server can originate CoA messages.
The server section automatically inherits the following fields from the client:
client | CONF_SECTION to inherit values from. |
Definition at line 889 of file realms.c.
home_server_t* home_server_find | ( | fr_ipaddr_t * | ipaddr, |
uint16_t | port, | ||
int | proto | ||
) |
home_server_t* home_server_ldb | ( | char const * | realmname, |
home_pool_t * | pool, | ||
REQUEST * | request | ||
) |
void home_server_update_request | ( | home_server_t * | home, |
REQUEST * | request | ||
) |
REALM* realm_find | ( | char const * | name | ) |
REALM* realm_find2 | ( | char const * | name | ) |
bool realm_home_server_add | ( | home_server_t * | home | ) |
void realm_home_server_sanitize | ( | home_server_t * | home, |
CONF_SECTION * | cs | ||
) |
int realm_pool_add | ( | home_pool_t * | pool, |
CONF_SECTION * | cs | ||
) |
void realm_pool_free | ( | home_pool_t * | pool | ) |
int realm_realm_add | ( | REALM * | r, |
CONF_SECTION * | cs | ||
) |
void realms_free | ( | void | ) |
int realms_init | ( | CONF_SECTION * | config | ) |