SYNOPSIS

#include <idn2.h>

int idn2_lookup_u8(const uint8_t * src, uint8_t ** lookupname, int flags);

ARGUMENTS

const uint8_t * src

input zero-terminated UTF-8 string in Unicode NFC normalized form.

uint8_t ** lookupname

newly allocated output variable with name to lookup in DNS.

int flags

optional idn2_flags to modify behaviour.

DESCRIPTION

Perform IDNA2008 lookup string conversion on domain name src, as described in section 5 of RFC 5891. Note that the input string must be encoded in UTF-8 and be in Unicode NFC form.

Pass IDN2_NFC_INPUT in flags to convert input to NFC form before further processing. Pass IDN2_ALABEL_ROUNDTRIP in flags to convert any input A-labels to U-labels and perform additional testing. Multiple flags may be specified by binary or:ing them together, for example IDN2_NFC_INPUT | IDN2_ALABEL_ROUNDTRIP.

RETURNS

On successful conversion IDN2_OK is returned, if the output domain or any label would have been too long IDN2_TOO_BIG_DOMAIN or IDN2_TOO_BIG_LABEL is returned, or another error code is returned.

RELATED TO idn2_lookup_u8…

The full documentation for libidn2 is maintained as a Texinfo manual. If the info and libidn2 programs are properly installed at your site, the command

  • info libidn2

should give you access to the complete manual.