The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
#include <freeradius-devel/util/value.h>
#include <freeradius-devel/util/sbuff.h>
Go to the source code of this file.
Data Structures | |
struct | fr_uri_escape_ctx_t |
uctx to pass to fr_uri_escape More... | |
struct | fr_uri_part_t |
Definition for a single part of a URI. More... | |
Macros | |
#define | XLAT_URI_PART_TERMINATOR { .name = NULL, .terminals = NULL, .safe_for = 0, .func = NULL } |
Typedefs | |
typedef int(* | fr_uri_escape_func_t) (fr_value_box_t *vb, void *uctx) |
A function used to escape an argument passed to an xlat. More... | |
Functions | |
int | fr_uri_escape (fr_value_box_t *uri_vb, void *uctx) |
Escapes an individual value box that's part of a URI, advancing the pointer to uri_parts. More... | |
int | fr_uri_escape_list (fr_value_box_list_t *uri, fr_uri_part_t const *uri_parts, void *uctx) |
Parse a list of value boxes representing a URI. More... | |
int | fr_uri_has_scheme (fr_value_box_list_t *uri, fr_table_num_sorted_t const *schemes, size_t schemes_len, int def) |
Searches for a matching scheme in the table of schemes, using a list of value boxes representing the URI. More... | |
struct fr_uri_escape_ctx_t |
uctx to pass to fr_uri_escape
Data Fields | ||
---|---|---|
void * | uctx | to pass to fr_uri_escape_func_t. |
fr_uri_part_t const * | uri_part |
Start of the uri parts array. Will be updated as boxes are escaped. |
struct fr_uri_part_t |
Data Fields | ||
---|---|---|
size_t | extra_skip | How many additional characters to skip after the terminal. |
fr_uri_escape_func_t | func | Function to use to escape tainted values. |
char const * | name | Name of this part of the URI. |
uint8_t const | part_adv[UINT8_MAX+1] | How many parts to advance for a specific terminal. |
fr_value_box_safe_for_t | safe_for | What type of value is safe for this part. |
fr_sbuff_term_t const * | terminals | Characters that mark the end of this part. |
typedef int(* fr_uri_escape_func_t) (fr_value_box_t *vb, void *uctx) |
int fr_uri_escape | ( | fr_value_box_t * | uri_vb, |
void * | uctx | ||
) |
Escapes an individual value box that's part of a URI, advancing the pointer to uri_parts.
[in,out] | uri_vb | to escape |
[in] | uctx | A fr_uri_escape_ctx_t containing the initial fr_uri_part_t and the uctx to pass to the escaping function. |
Definition at line 45 of file uri.c.
int fr_uri_escape_list | ( | fr_value_box_list_t * | uri, |
fr_uri_part_t const * | uri_parts, | ||
void * | uctx | ||
) |
Parse a list of value boxes representing a URI.
Reads a URI from a list of value boxes and parses it according to the definition in uri_parts. Tainted values, where allowed, are escaped using the function specified for the uri part.
uri | to parse. A list of string type value boxes containing fragments of a URI. |
uri_parts | definition of URI structure. Should point to the start of the array of uri parts. |
uctx | to pass to escaping function |
Definition at line 141 of file uri.c.
int fr_uri_has_scheme | ( | fr_value_box_list_t * | uri, |
fr_table_num_sorted_t const * | schemes, | ||
size_t | schemes_len, | ||
int | def | ||
) |
Searches for a matching scheme in the table of schemes, using a list of value boxes representing the URI.
uri | to parse. A list of string type value boxes containing fragments of a URI. |
schemes | Table of schemes to search. |
schemes_len | Number of schemes in the table. |
def | Default scheme to use if none is found. |
Definition at line 168 of file uri.c.