Enable locale support for IDN at startup

--address=/münchen.de/ is not accepted unless LOCALEDIR is defined on
build. It is not by default. If LIBIDN1 or 2 is defined, call setlocale
to initialize locale required to translate domains to ascii form.

Signed-off-by: Petr Menšík <pemensik@redhat.com>
This commit is contained in:
Petr Menšík
2021-09-30 22:15:39 +02:00
committed by Simon Kelley
parent efea282396
commit ad32ca18a7

View File

@@ -17,6 +17,9 @@
/* Declare static char *compiler_opts in config.h */ /* Declare static char *compiler_opts in config.h */
#define DNSMASQ_COMPILE_OPTS #define DNSMASQ_COMPILE_OPTS
#if defined(HAVE_IDN) || defined(HAVE_LIBIDN2) || defined(LOCALEDIR)
#include <locale.h>
#endif
#include "dnsmasq.h" #include "dnsmasq.h"
struct daemon *daemon; struct daemon *daemon;
@@ -69,8 +72,10 @@ int main (int argc, char **argv)
int tftp_prefix_missing = 0; int tftp_prefix_missing = 0;
#endif #endif
#ifdef LOCALEDIR #if defined(HAVE_IDN) || defined(HAVE_LIBIDN2) || defined(LOCALEDIR)
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
#endif
#ifdef LOCALEDIR
bindtextdomain("dnsmasq", LOCALEDIR); bindtextdomain("dnsmasq", LOCALEDIR);
textdomain("dnsmasq"); textdomain("dnsmasq");
#endif #endif