]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Emit warning on IDN output failure
authorPetr Menšík <pemensik@redhat.com>
Wed, 30 Jan 2019 14:38:54 +0000 (15:38 +0100)
committerOndřej Surý <ondrej@sury.org>
Mon, 30 Sep 2019 06:52:13 +0000 (08:52 +0200)
Warning is emitted before any dig headers.

bin/dig/dighost.c

index 5bc3534bfcaccfa6a953ceeaaabffad2906dca69..3751d799d9c6dda4765de070eec4fb05cec35311 100644 (file)
@@ -4421,16 +4421,19 @@ idn_ace_to_locale(const char *src, char **dst) {
         */
        res = idn2_to_unicode_8zlz(utf8_src, &local_src, 0);
        if (res != IDN2_OK) {
-               /*
-                * Cannot represent in current locale.
-                * Output ACE form undecoded.
-                */
+               static bool warned = false;
+
                res = idn2_to_ascii_8z(utf8_src, &local_src, 0);
                if (res != IDN2_OK) {
                        fatal("Cannot represent '%s' "
                              "in the current locale nor ascii (%s), "
                              "use +noidnout or a different locale",
                              src, idn2_strerror(res));
+               } else if (!warned) {
+                       fprintf(stderr, ";; Warning: cannot represent '%s' "
+                             "in the current locale",
+                             local_src);
+                       warned = true;
                }
        }