The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Functions | Variables
xlat expansion functions

Functions

static xlat_action_t aka_sim_3gpp_temporary_id_decrypt_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Decrypt a 3gpp temporary id. More...
 
static xlat_action_t aka_sim_3gpp_temporary_id_encrypt_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Encrypts a 3gpp pseudonym. More...
 
static xlat_action_t aka_sim_id_3gpp_temporary_id_key_index_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Returns the key index from a 3gpp temporary id. More...
 
static xlat_action_t aka_sim_xlat_id_method_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Returns the SIM method EAP-SIM or EAP-AKA hinted at by the user identifier. More...
 
static xlat_action_t aka_sim_xlat_id_type_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Returns the type of identity used. More...
 
static xlat_action_t brotli_xlat_compress (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Produce a brotli compressed string. More...
 
static xlat_action_t brotli_xlat_decompress (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Decompress a brotli string. More...
 
static xlat_action_t cache_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Allow single attribute values to be retrieved from the cache. More...
 
static xlat_action_t cipher_fingerprint_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the fingerprint of the public certificate. More...
 
static xlat_action_t cipher_rsa_decrypt_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Decrypt input data. More...
 
static xlat_action_t cipher_rsa_encrypt_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Encrypt input data. More...
 
static xlat_action_t cipher_rsa_sign_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Sign input data. More...
 
static xlat_action_t cipher_rsa_verify_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Verify input data. More...
 
static xlat_action_t cipher_serial_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in)
 Return the serial of the public certificate. More...
 
static xlat_action_t escape_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Equivalent to the old safe_characters functionality in rlm_sql but with utf8 support. More...
 
static xlat_action_t exec_xlat_oneshot (TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Exec programs from an xlat. More...
 
static xlat_action_t json_encode_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Convert given attributes to a JSON document. More...
 
static xlat_action_t json_escape_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Ensure contents are escaped correctly for a JSON document. More...
 
static xlat_action_t json_jpath_validate_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Determine if a jpath expression is valid. More...
 
static xlat_action_t json_quote_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Ensure contents are quoted correctly for a JSON document. More...
 
static xlat_action_t ldap_group_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Check for a user being in a LDAP group. More...
 
static xlat_action_t ldap_profile_xlat (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Expand an LDAP URL into a query, applying the results using the user update map. More...
 
static xlat_action_t ldap_uri_escape_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Escape LDAP string. More...
 
static xlat_action_t ldap_uri_unescape_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Unescape LDAP string. More...
 
static xlat_action_t ldap_xlat (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Expand an LDAP URL into a query, and return a string result from that query. More...
 
static xlat_action_t modhex_to_hex_xlat (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat to convert Yubikey modhex to standard hex. More...
 
static xlat_action_t mschap_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Get data from MSCHAP attributes. More...
 
static xlat_action_t perl_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Call perl code using an xlat. More...
 
static xlat_action_t protocol_decode_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Decode any protocol attribute / options. More...
 
static xlat_action_t protocol_encode_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Encode protocol attributes / options. More...
 
static xlat_action_t redis_node_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the node that is currently servicing a particular key. More...
 
static xlat_action_t redis_remap_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Force a redis cluster remap. More...
 
static xlat_action_t redis_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat to make calls to redis. More...
 
static xlat_action_t rest_xlat (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Simple xlat to read text data from a URL. More...
 
static xlat_action_t sql_escape_xlat (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Escape a value to make it SQL safe. More...
 
static xlat_action_t sql_fetch_xlat (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Execute an arbitrary SQL query, expecting results to be returned. More...
 
static xlat_action_t sql_group_xlat (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in)
 Check if the user is a member of a particular group. More...
 
static xlat_action_t sql_modify_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Execute an arbitrary SQL query, returning the number of rows affected. More...
 
static xlat_action_t sql_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Execute an arbitrary SQL query. More...
 
static xlat_action_t unescape_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Equivalent to the old safe_characters functionality in rlm_sql. More...
 
static xlat_action_t unix_group_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Check if the user is a member of a particular unix group. More...
 
static xlat_action_t unlang_foreach_xlat_func (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in)
 Implements the Foreach-Variable-X. More...
 
static xlat_action_t unlang_interpret_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Get information about the interpreter state. More...
 
static xlat_action_t unpack_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Unpack data. More...
 
static xlat_action_t winbind_group_xlat (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Check if the user is a member of a particular winbind group. More...
 
static xlat_action_t xlat_attr (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the attribute name of an attribute reference. More...
 
static xlat_action_t xlat_attr_num (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the attribute number of an attribute reference. More...
 
static xlat_action_t xlat_attr_oid (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the attribute number of an attribute reference. More...
 
static xlat_action_t xlat_attr_type (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the data type of an attribute reference. More...
 
static xlat_action_t xlat_client (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 xlat to get client config data More...
 
static xlat_action_t xlat_config (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 xlat to get config values More...
 
static xlat_action_t xlat_date_convert (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Get or convert time and date. More...
 
static xlat_action_t xlat_delay (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat to delay the request. More...
 
static xlat_action_t xlat_dict_attr_by_num (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat for attr_by_num(<number>) More...
 
static xlat_action_t xlat_dict_attr_by_oid (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat for attr_by_oid(<oid>) More...
 
static xlat_action_t xlat_func_base64_decode (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Decode base64 string. More...
 
static xlat_action_t xlat_func_base64_encode (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Encode string or attribute as base64. More...
 
static xlat_action_t xlat_func_bin (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Convert hex string to binary. More...
 
static xlat_action_t xlat_func_cast (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Cast one or more output value-boxes to the given type. More...
 
static xlat_action_t xlat_func_chap_password (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Produce a CHAP-Password hash value. More...
 
static xlat_action_t xlat_func_concat (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Concatenate string representation of values of given attributes using separator. More...
 
static xlat_action_t xlat_func_debug (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Dynamically change the debugging level for the current request. More...
 
static xlat_action_t xlat_func_debug_attr (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Print out attribute info. More...
 
static xlat_action_t xlat_func_eval (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Dynamically evaluate an expansion string. More...
 
static xlat_action_t xlat_func_exists (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in)
 See if a named attribute exists. More...
 
static xlat_action_t xlat_func_explode (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Split a string into multiple new strings based on a delimiter. More...
 
static xlat_action_t xlat_func_expr_rcode (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Match the passed rcode against request->rcode. More...
 
static xlat_action_t xlat_func_hex (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Print data as hex, not as VALUE. More...
 
static xlat_action_t xlat_func_hmac_md5 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *in)
 Generate the HMAC-MD5 of a string or attribute. More...
 
static xlat_action_t xlat_func_hmac_sha1 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *in)
 Generate the HMAC-SHA1 of a string or attribute. More...
 
static xlat_action_t xlat_func_immutable_attr (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Mark one or more attributes as immutable. More...
 
static xlat_action_t xlat_func_integer (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Print data as integer, not as VALUE. More...
 
static xlat_action_t xlat_func_length (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *in)
 Return the on-the-wire size of the boxes in bytes. More...
 
static xlat_action_t xlat_func_log_debug (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Log something at DEBUG level. More...
 
static xlat_action_t xlat_func_log_dst (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Change the log destination to the named one. More...
 
static xlat_action_t xlat_func_log_err (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Log something at DEBUG level. More...
 
static xlat_action_t xlat_func_log_info (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Log something at INFO level. More...
 
static xlat_action_t xlat_func_log_warn (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Log something at WARN level. More...
 
static xlat_action_t xlat_func_lpad (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 lpad a string More...
 
static xlat_action_t xlat_func_map (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Processes fmt as a map string and applies it to the current request. More...
 
static xlat_action_t xlat_func_md4 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Calculate the MD4 hash of a string or attribute. More...
 
static xlat_action_t xlat_func_md5 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Calculate the MD5 hash of a string or attribute. More...
 
static xlat_action_t xlat_func_next_time (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Calculate number of seconds until the next n hour(s), day(s), week(s), year(s). More...
 
static xlat_action_t xlat_func_pairs (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Encode attributes as a series of string attribute/value pairs. More...
 
static xlat_action_t xlat_func_radius_secret_verify (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Validates a request against a know shared secret. More...
 
static xlat_action_t xlat_func_rand (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *in)
 Generate a random integer value. More...
 
static xlat_action_t xlat_func_randstr (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Generate a string of random chars. More...
 
static xlat_action_t xlat_func_rcode (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *args)
 Return the current rcode as a string. More...
 
static xlat_action_t xlat_func_rpad (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Right pad a string. More...
 
static xlat_action_t xlat_func_sha1 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Calculate the SHA1 hash of a string or attribute. More...
 
static xlat_action_t xlat_func_str_printable (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Return whether a string has only printable chars. More...
 
static xlat_action_t xlat_func_str_utf8 (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Return whether a string is valid UTF-8. More...
 
static xlat_action_t xlat_func_string (UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *in)
 Print data as string, if possible. More...
 
static xlat_action_t xlat_func_strlen (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Print length of given string. More...
 
static xlat_action_t xlat_func_subnet_broadcast (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Calculate the broadcast address from a IPv4 prefix. More...
 
static xlat_action_t xlat_func_subnet_netmask (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 Calculate the subnet mask from a IPv4 prefix. More...
 
static xlat_action_t xlat_func_subst (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Perform regex substitution. More...
 
static xlat_action_t xlat_func_substr (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Extract a substring from string / octets data. More...
 
static xlat_action_t xlat_func_time (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 Return the time as a FR_TYPE_DATE. More...
 
static xlat_action_t xlat_func_tolower (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Convert a string to lowercase. More...
 
static xlat_action_t xlat_func_toupper (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Convert a string to uppercase. More...
 
static xlat_action_t xlat_func_urlquote (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request, fr_value_box_list_t *args)
 URLencode special characters. More...
 
static xlat_action_t xlat_func_urlunquote (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *args)
 URLdecode special characters. More...
 
static xlat_action_t xlat_icmp (TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Xlat to ping a specified ip address. More...
 
static xlat_action_t xlat_idna (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Convert domain name to ASCII punycode. More...
 
static xlat_action_t xlat_redundant (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in)
 xlat "redundant", "load-balance" and "redundant-load-balance" processing More...
 
static xlat_action_t xlat_unbound (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Perform a DNS lookup using libunbound. More...
 
static xlat_action_t xlat_vendor (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the vendor of an attribute reference. More...
 
static xlat_action_t xlat_vendor_num (TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
 Return the vendor number of an attribute reference. More...
 

Variables

static xlat_arg_parser_t const xlat_func_string_arg []
 Calculate any digest supported by OpenSSL EVP_MD. More...
 

Detailed Description

Function Documentation

◆ aka_sim_3gpp_temporary_id_decrypt_xlat()

static xlat_action_t aka_sim_3gpp_temporary_id_decrypt_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Decrypt a 3gpp temporary id.

%3gpp_temporary_id_decrypt(<id> <key>)

The pseudonym is in the format

    0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Tag    | KeyID |             Encrypted IMSI
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                                  |
  |                   Encrypted IMSI (cont)                       |
  |                                                               |
  |                   |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  +-+-+-+-+-+-+-+-+-+-+

Tag (6 bits) - Used to mark the identity as a temporary pseudonym or re-authentication identity. The idea of this being 6 bits is so that we can choose values that match base64 sextets, so the first character in the base64 output matches one of the known tags for EAP-SIM/AKA/AKA' identities.

Key Indicator (4 bits) - Used to select the appropriate key from multiple keys the server may have used to encrypt IMSIs.

Encrypted IMSI (128 bits) - The original IMSI encrypted with AES-128-ECB.

Definition at line 226 of file xlat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ aka_sim_3gpp_temporary_id_encrypt_xlat()

static xlat_action_t aka_sim_3gpp_temporary_id_encrypt_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Encrypts a 3gpp pseudonym.

%3gpp_temporary_id_encrypt(<id>, <key>, <index>, [(pseudonym|fastauth)])

Definition at line 343 of file xlat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ aka_sim_id_3gpp_temporary_id_key_index_xlat()

static xlat_action_t aka_sim_id_3gpp_temporary_id_key_index_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Returns the key index from a 3gpp temporary id.

%3gpp_temporary_id_key_index(%{id_attr})

Definition at line 162 of file xlat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ aka_sim_xlat_id_method_xlat()

static xlat_action_t aka_sim_xlat_id_method_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Returns the SIM method EAP-SIM or EAP-AKA hinted at by the user identifier.

%aka_sim_id_method(%{id_attr})

Definition at line 49 of file xlat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ aka_sim_xlat_id_type_xlat()

static xlat_action_t aka_sim_xlat_id_type_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Returns the type of identity used.

%aka_sim_id_type(%{id_attr})

Definition at line 106 of file xlat.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ brotli_xlat_compress()

static xlat_action_t brotli_xlat_compress ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Produce a brotli compressed string.

Example:

%brotli.compress(<input>) == <compressed data>

Definition at line 185 of file rlm_brotli.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ brotli_xlat_decompress()

static xlat_action_t brotli_xlat_decompress ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Decompress a brotli string.

Example:

%brotli.decompress(<input>) == <decompressed data>

Definition at line 294 of file rlm_brotli.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cache_xlat()

static xlat_action_t cache_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Allow single attribute values to be retrieved from the cache.

Definition at line 888 of file rlm_cache.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_fingerprint_xlat()

static xlat_action_t cipher_fingerprint_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the fingerprint of the public certificate.

Arguments are

(<digest>)
%<inst>.certificate(fingerprint, <digest>)

Definition at line 865 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_rsa_decrypt_xlat()

static xlat_action_t cipher_rsa_decrypt_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Decrypt input data.

Arguments are

(<ciphertext\>...)
%<inst>.decrypt(<ciphertext>...)

If multiple arguments are provided they will be concatenated.

Definition at line 691 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_rsa_encrypt_xlat()

static xlat_action_t cipher_rsa_encrypt_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Encrypt input data.

Arguments are

(<plaintext>...)
%<inst>.encrypt(<plaintext>...)

If multiple arguments are provided they will be concatenated.

Definition at line 552 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_rsa_sign_xlat()

static xlat_action_t cipher_rsa_sign_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Sign input data.

Arguments are

(<plaintext>...)
%<inst>.sign(<plaintext>...)

If multiple arguments are provided they will be concatenated.

Definition at line 613 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_rsa_verify_xlat()

static xlat_action_t cipher_rsa_verify_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Verify input data.

Arguments are

(<signature>, <plaintext>...)
%<inst>.verify(<signature>, <plaintext>...)

If multiple arguments are provided (after

<signature>

) they will be concatenated.

Definition at line 753 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cipher_serial_xlat()

static xlat_action_t cipher_serial_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  in 
)
static

Return the serial of the public certificate.

%<inst>.certificate(serial)

Definition at line 914 of file rlm_cipher.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ escape_xlat()

static xlat_action_t escape_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Equivalent to the old safe_characters functionality in rlm_sql but with utf8 support.

Example:

%escape('<img>foo.jpg</img>') == "=60img=62foo.jpg=60/img=62"

Definition at line 64 of file rlm_escape.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exec_xlat_oneshot()

static xlat_action_t exec_xlat_oneshot ( TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Exec programs from an xlat.

Example:

%exec('/bin/echo', 'hello') == "hello"

Exactly one request is consumed during the process lifetime, after which the process exits.

Definition at line 137 of file rlm_exec.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ json_encode_xlat()

static xlat_action_t json_encode_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Convert given attributes to a JSON document.

Usage is json.encode(attr tmpl list)

Definition at line 205 of file rlm_json.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ json_escape_xlat()

static xlat_action_t json_escape_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Ensure contents are escaped correctly for a JSON document.

This allows values to be embedded inside JSON strings.

Definition at line 128 of file rlm_json.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ json_jpath_validate_xlat()

static xlat_action_t json_jpath_validate_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Determine if a jpath expression is valid.

Writes the output (in the format

<bytes parsed>[:error]

).

Definition at line 163 of file rlm_json.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ json_quote_xlat()

static xlat_action_t json_quote_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Ensure contents are quoted correctly for a JSON document.

This emits values with escaping, and appropriate quoting '"' depending on the type of values being produced. This lets boxed values be inserted directly as table values and array elements, without needing to determine if the expansion needs to be wrapped in quotes.

Definition at line 150 of file rlm_json.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ldap_group_xlat()

static xlat_action_t ldap_group_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Check for a user being in a LDAP group.

Definition at line 936 of file rlm_ldap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ldap_profile_xlat()

static xlat_action_t ldap_profile_xlat ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Expand an LDAP URL into a query, applying the results using the user update map.

For fetching profiles by DN.

Definition at line 1062 of file rlm_ldap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ldap_uri_escape_xlat()

static xlat_action_t ldap_uri_escape_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Escape LDAP string.

Definition at line 409 of file rlm_ldap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ldap_uri_unescape_xlat()

static xlat_action_t ldap_uri_unescape_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Unescape LDAP string.

Definition at line 464 of file rlm_ldap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ldap_xlat()

static xlat_action_t ldap_xlat ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Expand an LDAP URL into a query, and return a string result from that query.

Definition at line 738 of file rlm_ldap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modhex_to_hex_xlat()

static xlat_action_t modhex_to_hex_xlat ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat to convert Yubikey modhex to standard hex.

Example:

%modhextohex('vvrbuctetdhc') == "ffc1e0d3d260"

Definition at line 144 of file rlm_yubikey.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mschap_xlat()

static xlat_action_t mschap_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Get data from MSCHAP attributes.

Pulls NT-Response, LM-Response, or Challenge from MSCHAP attributes.

Definition at line 381 of file rlm_mschap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ perl_xlat()

static xlat_action_t perl_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Call perl code using an xlat.

Definition at line 445 of file rlm_perl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ protocol_decode_xlat()

static xlat_action_t protocol_decode_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Decode any protocol attribute / options.

Creates protocol-specific attributes based on the given binary option data

Example:

%dhcpv4.decode(%{Tmp-Octets-0})

Definition at line 3757 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ protocol_encode_xlat()

static xlat_action_t protocol_encode_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Encode protocol attributes / options.

Returns octet string created from the provided pairs

Example:

%dhcpv4.encode(&request[*])

Definition at line 3863 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redis_node_xlat()

static xlat_action_t redis_node_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the node that is currently servicing a particular key.

%redis.node(<key>[, <index>])

Definition at line 325 of file rlm_redis.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redis_remap_xlat()

static xlat_action_t redis_remap_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Force a redis cluster remap.

%redis.remap(<redis server ip>:<redis server port>)

Definition at line 263 of file rlm_redis.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redis_xlat()

static xlat_action_t redis_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat to make calls to redis.

%redis(<redis command>)

Definition at line 589 of file rlm_redis.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rest_xlat()

static xlat_action_t rest_xlat ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Simple xlat to read text data from a URL.

Example:

%rest(POST, http://example.com/, "{ \"key\": \"value\" }")

Definition at line 515 of file rlm_rest.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sql_escape_xlat()

static xlat_action_t sql_escape_xlat ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Escape a value to make it SQL safe.

%sql.escape(<value>)

Definition at line 431 of file rlm_sql.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sql_fetch_xlat()

static xlat_action_t sql_fetch_xlat ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Execute an arbitrary SQL query, expecting results to be returned.

%sql.fetch(<sql statement>)

Definition at line 623 of file rlm_sql.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sql_group_xlat()

static xlat_action_t sql_group_xlat ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  in 
)
static

Check if the user is a member of a particular group.

%sql.group(<name>)

Definition at line 1227 of file rlm_sql.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sql_modify_xlat()

static xlat_action_t sql_modify_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Execute an arbitrary SQL query, returning the number of rows affected.

%sql.modify(<sql statement>)

Definition at line 659 of file rlm_sql.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sql_xlat()

static xlat_action_t sql_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Execute an arbitrary SQL query.

For SELECTs, the values of the first column will be returned. For INSERTS, UPDATEs and DELETEs, the number of rows affected will be returned instead.

%sql(<sql statement>)

Definition at line 559 of file rlm_sql.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unescape_xlat()

static xlat_action_t unescape_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Equivalent to the old safe_characters functionality in rlm_sql.

Example:

%unescape('=60img=62foo.jpg=60/img=62') == "<img>foo.jpg</img>"

Definition at line 138 of file rlm_escape.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unix_group_xlat()

static xlat_action_t unix_group_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Check if the user is a member of a particular unix group.

%unix.group(<name>)

Definition at line 161 of file rlm_unix.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_foreach_xlat_func()

static xlat_action_t unlang_foreach_xlat_func ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  in 
)
static

Implements the Foreach-Variable-X.

Definition at line 672 of file foreach.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_interpret_xlat()

static xlat_action_t unlang_interpret_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Get information about the interpreter state.

Definition at line 1544 of file interpret.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unpack_xlat()

static xlat_action_t unpack_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Unpack data.

Example:

%unpack(%{Class}, 0, integer)

Expands Class, treating octet at offset 0 (bytes 0-3) as an "integer".

Definition at line 52 of file rlm_unpack.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ winbind_group_xlat()

static xlat_action_t winbind_group_xlat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Check if the user is a member of a particular winbind group.

%winbind.group(<name>)

Definition at line 242 of file rlm_winbind.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_attr()

static xlat_action_t xlat_attr ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the attribute name of an attribute reference.

Definition at line 209 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_attr_num()

static xlat_action_t xlat_attr_num ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the attribute number of an attribute reference.

Definition at line 239 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_attr_oid()

static xlat_action_t xlat_attr_oid ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the attribute number of an attribute reference.

Definition at line 265 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_attr_type()

static xlat_action_t xlat_attr_type ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the data type of an attribute reference.

Definition at line 299 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_client()

static xlat_action_t xlat_client ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

xlat to get client config data

Example:

%client(foo, [<ipaddr>])

Definition at line 234 of file rlm_client.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_config()

static xlat_action_t xlat_config ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

xlat to get config values

%config(section.subsection.attribute)

Definition at line 567 of file main_config.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_date_convert()

static xlat_action_t xlat_date_convert ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Get or convert time and date.

Using the format in the module instance configuration, get various timestamps, or convert strings to date format.

When the request arrived:

%date(request)

Now:

%date(now)

Examples (Tmp-Integer-0 = 1506101100):

update request {
  &Tmp-String-0 := %date(%{Tmp-Integer-0}) ("Fri 22 Sep 18:25:00 BST 2017")
  &Tmp-Integer-1 := %date(%{Tmp-String-0}) (1506101100)
}

Definition at line 168 of file rlm_date.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_delay()

static xlat_action_t xlat_delay ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat to delay the request.

Example (delay 2 seconds):

%delay(2)

Definition at line 220 of file rlm_delay.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_dict_attr_by_num()

static xlat_action_t xlat_dict_attr_by_num ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat for attr_by_num(<number>)

Definition at line 77 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_dict_attr_by_oid()

static xlat_action_t xlat_dict_attr_by_oid ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat for attr_by_oid(<oid>)

Definition at line 111 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_base64_decode()

static xlat_action_t xlat_func_base64_decode ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Decode base64 string.

Example:

%base64.decode("Zm9v") == "foo"

Definition at line 1771 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_base64_encode()

static xlat_action_t xlat_func_base64_encode ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Encode string or attribute as base64.

Example:

%base64.encode("foo") == "Zm9v"

Definition at line 1722 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_bin()

static xlat_action_t xlat_func_bin ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Convert hex string to binary.

Example:

%bin("666f6f626172") == "foobar"
See also
xlat_func_hex

Definition at line 1832 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_cast()

static xlat_action_t xlat_func_cast ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Cast one or more output value-boxes to the given type.

First argument of is type to cast to.

Example:

%cast('string', %{request[*]}) results in all of the input boxes being cast to string/

Definition at line 1903 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_chap_password()

static xlat_action_t xlat_func_chap_password ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Produce a CHAP-Password hash value.

Example:

%chap.password(<password>) == 0x<id><md5_hash>

Definition at line 140 of file rlm_chap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_concat()

static xlat_action_t xlat_func_concat ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Concatenate string representation of values of given attributes using separator.

First argument of is the list of attributes to concatenate, followed by an optional separator

Example:

%concat(%{request.[*]}, ',') == "<attr1value>,<attr2value>,<attr3value>,..."
%concat(%{Tmp-String-0[*]}, '. ') == "<str1value>. <str2value>. <str3value>. ..."
%concat(%join(%{User-Name}, %{Calling-Station-Id}), ', ') == "bob, aa:bb:cc:dd:ee:ff"

Definition at line 2034 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_debug()

static xlat_action_t xlat_func_debug ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Dynamically change the debugging level for the current request.

Example:

%debug(3)

Definition at line 84 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_debug_attr()

static xlat_action_t xlat_func_debug_attr ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Print out attribute info.

Prints out all instances of a current attribute, or all attributes in a list.

At higher debugging levels, also prints out alternative decodings of the same value. This is helpful to determine types for unknown attributes of long passed vendors, or just crazy/broken NAS.

This expands to a zero length string.

Example:

%debug_attr(&request)

Definition at line 267 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_eval()

static xlat_action_t xlat_func_eval ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Dynamically evaluate an expansion string.

Definition at line 1440 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_exists()

static xlat_action_t xlat_func_exists ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  in 
)
static

See if a named attribute exists.

Example:

"%{exists:&Foo}" == true

Definition at line 1782 of file xlat_expr.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_explode()

static xlat_action_t xlat_func_explode ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Split a string into multiple new strings based on a delimiter.

%explode(<string>, <delim>)

Example:

update request {
        &Tmp-String-1 := "a,b,c"
}
"%concat(%explode(%{Tmp-String-1}, ','), '|')" == "a|b|c"g

Definition at line 785 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_expr_rcode()

static xlat_action_t xlat_func_expr_rcode ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Match the passed rcode against request->rcode.

Example:

%expr.rcode('handled') == true

# ...or how it's used normally used
if (handled) {
    ...
}

Definition at line 1574 of file xlat_expr.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_hex()

static xlat_action_t xlat_func_hex ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Print data as hex, not as VALUE.

Example:

%hex("foobar") == "666f6f626172"
See also
xlat_func_bin

Definition at line 2083 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_hmac_md5()

static xlat_action_t xlat_func_hmac_md5 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  in 
)
static

Generate the HMAC-MD5 of a string or attribute.

Example:

%hmacmd5('foo', 'bar') == "0x31b6db9e5eb4addb42f1a6ca07367adc"

Definition at line 2158 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_hmac_sha1()

static xlat_action_t xlat_func_hmac_sha1 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  in 
)
static

Generate the HMAC-SHA1 of a string or attribute.

Example:

%hmacsha1('foo', 'bar') == "0x85d155c55ed286a300bd1cf124de08d87e914f3a"

Definition at line 2176 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_immutable_attr()

static xlat_action_t xlat_func_immutable_attr ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Mark one or more attributes as immutable.

Example:

%immutable(&request.State[*])

Definition at line 868 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_integer()

static xlat_action_t xlat_func_integer ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Print data as integer, not as VALUE.

Example:

update request {
        &Tmp-IP-Address-0 := "127.0.0.5"
}
%integer(%{Tmp-IP-Address-0}) == 2130706437

Definition at line 928 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_length()

static xlat_action_t xlat_func_length ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  in 
)
static

Return the on-the-wire size of the boxes in bytes.

skips null values

Example:

%length(foobar) == 6
%length(%bin("0102030005060708")) == 8
See also
xlat_func_strlen

Definition at line 2258 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_log_debug()

static xlat_action_t xlat_func_log_debug ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Log something at DEBUG level.

Example:

%log.debug("This is a message")

Definition at line 1080 of file xlat_builtin.c.

+ Here is the caller graph for this function:

◆ xlat_func_log_dst()

static xlat_action_t xlat_func_log_dst ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Change the log destination to the named one.

Example:

%log.destination('foo')

Definition at line 1167 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_log_err()

static xlat_action_t xlat_func_log_err ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Log something at DEBUG level.

Example:

%log.err("Big error here")

Definition at line 1105 of file xlat_builtin.c.

+ Here is the caller graph for this function:

◆ xlat_func_log_info()

static xlat_action_t xlat_func_log_info ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Log something at INFO level.

Example:

%log("This is an informational message")

Definition at line 1055 of file xlat_builtin.c.

+ Here is the caller graph for this function:

◆ xlat_func_log_warn()

static xlat_action_t xlat_func_log_warn ( UNUSED TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Log something at WARN level.

Example:

%log.warn("Maybe something bad happened")

Definition at line 1130 of file xlat_builtin.c.

+ Here is the caller graph for this function:

◆ xlat_func_lpad()

static xlat_action_t xlat_func_lpad ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

lpad a string

%lpad(%{Attribute-Name},  <length> [, <fill>])

Example: (User-Name = "foo")

%lpad(%{User-Name}, 5 'x') == "xxfoo"

Definition at line 1540 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_map()

static xlat_action_t xlat_func_map ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Processes fmt as a map string and applies it to the current request.

e.g.

%map("&User-Name := 'foo'")

Allows sets of modifications to be cached and then applied. Useful for processing generic attributes from LDAP.

Definition at line 1237 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_md4()

static xlat_action_t xlat_func_md4 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Calculate the MD4 hash of a string or attribute.

Example:

%md4("foo") == "0ac6700c491d70fb8650940b1ca1e4b2"

Definition at line 2289 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_md5()

static xlat_action_t xlat_func_md5 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Calculate the MD5 hash of a string or attribute.

Example:

%md5("foo") == "acbd18db4cc2f85cedef654fccc4a4d8"

Definition at line 2329 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_next_time()

static xlat_action_t xlat_func_next_time ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Calculate number of seconds until the next n hour(s), day(s), week(s), year(s).

For example, if it were 16:18 nexttime(1h) would expand to 2520.

The envisaged usage for this function is to limit sessions so that they don't cross billing periods. The output of the xlat should be combined with rand() to create some jitter, unless the desired effect is every subscriber on the network re-authenticating at the same time.

Definition at line 1321 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_pairs()

static xlat_action_t xlat_func_pairs ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Encode attributes as a series of string attribute/value pairs.

This is intended to serialize one or more attributes as a comma delimited string.

Example:

%pairs(request.[*]) == 'User-Name = "foo"User-Password = "bar"'
%concat(%pairs(request.[*]), ', ') == 'User-Name = "foo", User-Password = "bar"'
See also
xlat_func_concat

Definition at line 2375 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_radius_secret_verify()

static xlat_action_t xlat_func_radius_secret_verify ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Validates a request against a know shared secret.

Designed for the specific purpose of verifying dynamic clients against a know shared secret.

Example:

%radius.secret.verify(<secret>)

Definition at line 839 of file base.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_rand()

static xlat_action_t xlat_func_rand ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  in 
)
static

Generate a random integer value.

For "N = %rand(MAX)", 0 <= N < MAX

Example:

%rand(100) == 42

Definition at line 2440 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_randstr()

static xlat_action_t xlat_func_randstr ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Generate a string of random chars.

Build strings of random chars, useful for generating tokens and passcodes Format similar to String::Random.

Format characters may include the following, and may be preceded by a repetition count:

  • "c" lowercase letters
  • "C" uppercase letters
  • "n" numbers
  • "a" alphanumeric
  • "!" punctuation
  • "." alphanumeric + punctuation
  • "s" alphanumeric + "./"
  • "o" characters suitable for OTP (easily confused removed)
  • "b" binary data

Example:

%randstr("CCCC!!cccnnn") == "IPFL>{saf874"
%randstr("42o") == "yHdupUwVbdHprKCJRYfGbaWzVwJwUXG9zPabdGAhM9"
%hex(%randstr("bbbb")) == "a9ce04f3"
%hex(%randstr("8b")) == "fe165529f9f66839"

Max repetitions of a single character class

Definition at line 2495 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_rcode()

static xlat_action_t xlat_func_rcode ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  args 
)
static

Return the current rcode as a string.

Example:

"%rcode()" == "handled"

Definition at line 1625 of file xlat_expr.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_rpad()

static xlat_action_t xlat_func_rpad ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Right pad a string.

%rpad(%{Attribute-Name}, <length> [, <fill>])

Example: (User-Name = "foo")

%rpad(%{User-Name}, 5 'x') == "fooxx"

Definition at line 1638 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_sha1()

static xlat_action_t xlat_func_sha1 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Calculate the SHA1 hash of a string or attribute.

Example:

%sha1(foo) == "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"

Definition at line 2790 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_str_printable()

static xlat_action_t xlat_func_str_printable ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Return whether a string has only printable chars.

This function returns true if the input string contains UTF8 sequences and printable chars.

Note
"\t" and " " are considered unprintable chars, unless the second argument(relaxed) is true.

Example:

%str.printable("🍉abcdef🍓") == true
%str.printable("\000\n\r\t") == false
%str.printable("\t abcd", yes) == true

Definition at line 2976 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_str_utf8()

static xlat_action_t xlat_func_str_utf8 ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Return whether a string is valid UTF-8.

This function returns true if the input string is valid UTF-8, false otherwise.

Example:

%str.utf8(🍉🥝🍓) == true
%str.utf8(🍉\xff🍓) == false

Definition at line 3032 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_string()

static xlat_action_t xlat_func_string ( UNUSED TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  in 
)
static

Print data as string, if possible.

Concat and cast one or more input boxes to a single output box string.

Definition at line 2901 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_strlen()

static xlat_action_t xlat_func_strlen ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Print length of given string.

Example:

%strlen(foo) == 3
See also
xlat_func_length

Definition at line 2933 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_subnet_broadcast()

static xlat_action_t xlat_func_subnet_broadcast ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Calculate the broadcast address from a IPv4 prefix.

Example:

%ip.v4.broadcast(%{Network-Prefix})

Definition at line 3828 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_subnet_netmask()

static xlat_action_t xlat_func_subnet_netmask ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

Calculate the subnet mask from a IPv4 prefix.

Example:

%ip.v4.netmask(%{Network-Prefix})

Definition at line 3806 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_subst()

static xlat_action_t xlat_func_subst ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Perform regex substitution.

%subst(<subject>, <pattern>, <replace>)

Example: (User-Name = "foobar")

%subst(%{User-Name}, 'oo', 'un') == "funbar"
See also
xlat_func_subst_regex

Definition at line 3325 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_substr()

static xlat_action_t xlat_func_substr ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Extract a substring from string / octets data.

Non string / octets data is cast to a string.

Second parameter is start position, optional third parameter is length Negative start / length count from RHS of data.

Example: (User-Name = "hello")

%substr(&User-Name, 1, 3) == 'ell'

Definition at line 3071 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_time()

static xlat_action_t xlat_func_time ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

Return the time as a FR_TYPE_DATE.

Note that all operations are UTC.

%time()

Example:

update reply {
        &Reply-Message := "%{%time(now) - %time(request)}"
}

Definition at line 3434 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_tolower()

static xlat_action_t xlat_func_tolower ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Convert a string to lowercase.

Example:

%tolower("Bar") == "bar"

Probably only works for ASCII

Definition at line 3556 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_toupper()

static xlat_action_t xlat_func_toupper ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Convert a string to uppercase.

Example:

%toupper("Foo") == "FOO"

Probably only works for ASCII

Definition at line 3575 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_urlquote()

static xlat_action_t xlat_func_urlquote ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
UNUSED request_t request,
fr_value_box_list_t *  args 
)
static

URLencode special characters.

Example:

%urlquote("http://example.org/") == "http%3A%47%47example.org%47"

Definition at line 3597 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_func_urlunquote()

static xlat_action_t xlat_func_urlunquote ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  args 
)
static

URLdecode special characters.

Note
Remember to escape % with %% in strings, else xlat will try to parse it.

Example:

%urlunquote("http%%3A%%47%%47example.org%%47") == "http://example.org/"

Definition at line 3681 of file xlat_builtin.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_icmp()

static xlat_action_t xlat_icmp ( TALLOC_CTX *  ctx,
UNUSED fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Xlat to ping a specified ip address.

Example (ping 192.0.2.1):

%icmp(192.0.2.1)

Definition at line 167 of file rlm_icmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_idna()

static xlat_action_t xlat_idna ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Convert domain name to ASCII punycode.

%idn(<domain>)

Definition at line 103 of file rlm_idn.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_redundant()

static xlat_action_t xlat_redundant ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
UNUSED fr_value_box_list_t *  in 
)
static

xlat "redundant", "load-balance" and "redundant-load-balance" processing

Definition at line 150 of file xlat_redundant.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_unbound()

static xlat_action_t xlat_unbound ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Perform a DNS lookup using libunbound.

Definition at line 346 of file rlm_unbound.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_vendor()

static xlat_action_t xlat_vendor ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the vendor of an attribute reference.

Definition at line 150 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xlat_vendor_num()

static xlat_action_t xlat_vendor_num ( TALLOC_CTX *  ctx,
fr_dcursor_t out,
UNUSED xlat_ctx_t const *  xctx,
request_t request,
fr_value_box_list_t *  in 
)
static

Return the vendor number of an attribute reference.

Definition at line 184 of file rlm_dict.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ xlat_func_string_arg

xlat_arg_parser_t const xlat_func_string_arg[]
static
Initial value:
= {
{ .required = true, .concat = true, .type = FR_TYPE_STRING },
}
@ FR_TYPE_STRING
String of printable characters.
Definition: merged_model.c:83
#define XLAT_ARG_PARSER_TERMINATOR
Definition: xlat.h:166

Calculate any digest supported by OpenSSL EVP_MD.

Example:

%sha2_256(foo) == "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"

Definition at line 2890 of file xlat_builtin.c.