![]() |
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>
Include dependency graph for base.h:
This graph shows which files directly or indirectly include this file: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. | |
| 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. | |
| 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. | |
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 |
Collaboration diagram for 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.
Collaboration diagram for fr_curl_handle_t:| Data Fields | ||
|---|---|---|
| fr_event_list_t * | el | Event list servicing I/O events. |
| fr_timer_t * | 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.
Collaboration diagram for fr_curl_io_request_t:| 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 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 | |||
| ) |
| 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 | ||
| ) |
Here is the caller graph for this function:| 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 480 of file io.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 267 of file base.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
extern |
|
extern |
|
extern |
1.9.8