The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Main include file for our libcurl extension API. More...
#include <curl/curl.h>
#include <freeradius-devel/server/global_lib.h>
#include <freeradius-devel/server/module.h>
#include <freeradius-devel/server/request.h>
#include <freeradius-devel/util/event.h>
#include <freeradius-devel/util/slab.h>
#include <freeradius-devel/unlang/xlat.h>
Go to the source code of this file.
Data Structures | |
struct | fr_curl_conn_config_t |
struct | fr_curl_handle_t |
Uctx data for timer and I/O functions. More... | |
struct | fr_curl_io_request_t |
Structure representing an individual request being passed to curl for processing. More... | |
struct | fr_curl_tls_t |
Macros | |
#define | CURL_AT_LEAST_VERSION(x, y, z) (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) |
#define | CURL_NO_OLDIES 1 |
#define | CURL_VERSION_BITS(x, y, z) ((x) << 16 | (y) << 8 | (z)) |
#define | FR_CURL_REQUEST_SET_OPTION(_x, _y) |
#define | FR_CURL_ROPTIONAL_SET_OPTION(_x, _y) |
#define | FR_CURL_SET_OPTION(_x, _y) |
Functions | |
int | fr_curl_easy_tls_init (fr_curl_io_request_t *randle, fr_curl_tls_t const *conf) |
fr_curl_handle_t * | fr_curl_io_init (TALLOC_CTX *ctx, fr_event_list_t *el, bool multiplex) |
fr_curl_io_request_t * | fr_curl_io_request_alloc (TALLOC_CTX *ctx) |
Allocate a new curl easy request and wrapper struct. More... | |
int | fr_curl_io_request_enqueue (fr_curl_handle_t *mhandle, request_t *request, fr_curl_io_request_t *creq) |
Sends a request using libcurl. More... | |
int | fr_curl_response_certinfo (request_t *request, fr_curl_io_request_t *randle) |
CURL * | fr_curl_tmp_handle (void) |
Return a thread local curl easy handle. More... | |
Variables | |
global_lib_autoinst_t | fr_curl_autoinst |
conf_parser_t | fr_curl_conn_config [] |
conf_parser_t | fr_curl_tls_config [] |
Main include file for our libcurl extension API.
Definition in file base.h.
struct fr_curl_conn_config_t |
Data Fields | ||
---|---|---|
fr_time_delta_t | connect_timeout | |
fr_slab_config_t | reuse |
struct fr_curl_handle_t |
Uctx data for timer and I/O functions.
Seems like overkill for a single field, but I'm sure we'll need to pass around other things later.
Data Fields | ||
---|---|---|
fr_event_list_t * | el | Event list servicing I/O events. |
fr_event_timer_t const * | ev | Multi-Handle timer. |
CURLM * | mandle | The multi handle. |
uint64_t | transfers | How many transfers are current in progress. |
struct fr_curl_io_request_t |
Structure representing an individual request being passed to curl for processing.
Data Fields | ||
---|---|---|
CURL * | candle | Request specific handle. |
request_t * | request | Current request. |
CURLcode | result | Result of executing the request. |
void * | uctx | Private data for the module using the API. |
struct fr_curl_tls_t |
Data Fields | ||
---|---|---|
char const * | ca_file | |
char const * | ca_issuer_file | |
char const * | ca_path | |
char const * | certificate_file | |
bool | check_cert | |
bool | check_cert_cn | |
bool | extract_cert_attrs | |
char const * | keylog_file |
Where to log SSL keying material like the pre-master secret. The log file can then be used to decrypt the SSL session with Wireshark. |
char const * | private_key_file | |
char const * | private_key_password | |
char const * | random_file | |
long * | require_cert |
#define CURL_AT_LEAST_VERSION | ( | x, | |
y, | |||
z | |||
) | (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) |
#define FR_CURL_REQUEST_SET_OPTION | ( | _x, | |
_y | |||
) |
#define FR_CURL_ROPTIONAL_SET_OPTION | ( | _x, | |
_y | |||
) |
#define FR_CURL_SET_OPTION | ( | _x, | |
_y | |||
) |
int fr_curl_easy_tls_init | ( | fr_curl_io_request_t * | randle, |
fr_curl_tls_t const * | conf | ||
) |
fr_curl_handle_t* fr_curl_io_init | ( | TALLOC_CTX * | ctx, |
fr_event_list_t * | el, | ||
bool | multiplex | ||
) |
fr_curl_io_request_t* fr_curl_io_request_alloc | ( | TALLOC_CTX * | ctx | ) |
int fr_curl_io_request_enqueue | ( | fr_curl_handle_t * | mhandle, |
request_t * | request, | ||
fr_curl_io_request_t * | randle | ||
) |
Sends a request using libcurl.
Send the actual curl request to the server. The response will be handled by the numerous callbacks configured for the easy handle.
[in] | mhandle | Thread-specific mhandle wrapper. |
[in] | request | Current request. |
[in] | randle | representing the request. |
Definition at line 482 of file io.c.
int fr_curl_response_certinfo | ( | request_t * | request, |
fr_curl_io_request_t * | randle | ||
) |
CURL* fr_curl_tmp_handle | ( | void | ) |
Return a thread local curl easy handle.
This should only be used for calls into libcurl functions which don't operate on an active request, like the escape/unescape functions.
Definition at line 280 of file base.c.
|
extern |
|
extern |
|
extern |