24 RCSID(
"$Id: 9d65b517a4875a8fb3d9c34804cabdc0ebc476e5 $")
26 #include <freeradius-devel/radiusd.h>
27 #include <freeradius-devel/modules.h>
91 void const *mod_inst,
UNUSED void const *xlat_inst,
92 REQUEST *request,
char const *fmt)
101 flags |= IDNA_USE_STD3_ASCII_RULES;
104 flags |= IDNA_ALLOW_UNASSIGNED;
107 res = idna_to_ascii_8z(fmt, &idna, flags);
113 REDEBUG(
"%s", idna_strerror(res));
120 if (!((len < (outlen - 1)) && (len <= 253))) {
122 REDEBUG(
"Conversion was truncated");
138 char const *xlat_name;
158 .config = mod_config,
int xlat_register(void *mod_inst, char const *name, xlat_func_t func, xlat_escape_t escape, xlat_instantiate_t instantiate, size_t inst_size, size_t buf_len)
Register an xlat function.
Metadata exported by the module.
#define RLM_TYPE_THREAD_SAFE
Module is threadsafe.
static const CONF_PARSER mod_config[]
#define CONF_PARSER_TERMINATOR
struct rlm_idn_t rlm_idn_t
#define XLAT_DEFAULT_BUF_LEN
Defines a CONF_PAIR to C data type mapping.
char const * cf_section_name1(CONF_SECTION const *cs)
uint64_t magic
Used to validate module struct.
#define FR_CONF_OFFSET(_n, _t, _s, _f)
bool use_std3_ascii_rules
size_t strlcpy(char *dst, char const *src, size_t siz)
static ssize_t xlat_idna(char **out, size_t outlen, void const *mod_inst, UNUSED void const *xlat_inst, REQUEST *request, char const *fmt)
static int mod_bootstrap(CONF_SECTION *conf, void *instance)
char const * cf_section_name2(CONF_SECTION const *cs)