]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
kdig,khost: add info log if IDN applied to qname
authorDaniel Salzman <daniel.salzman@nic.cz>
Fri, 12 Dec 2025 14:04:19 +0000 (15:04 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Fri, 12 Dec 2025 14:04:31 +0000 (15:04 +0100)
src/utils/common/params.c
src/utils/common/params.h
src/utils/kdig/kdig_params.c
src/utils/khost/khost_params.c

index aad5f0d320948cd220298899caf85aacace03c83..7644e58af3a3d12d8dd939b200f31fe943dcfe98 100644 (file)
@@ -26,7 +26,7 @@
 #define IPV4_REVERSE_DOMAIN    "in-addr.arpa."
 #define IPV6_REVERSE_DOMAIN    "ip6.arpa."
 
-char *name_from_idn(const char *idn_name) {
+char *name_from_idn(const char *idn_name, bool info) {
 #ifdef LIBIDN
        char *name = NULL;
 
@@ -40,6 +40,9 @@ char *name_from_idn(const char *idn_name) {
                free(name);
                return strdup(idn_name);
        } else {
+               if (info) {
+                       INFO("IDNA qname %s -> %s", idn_name, name);
+               }
                return name;
        }
 #endif
index 979e3979dc5fccb7444ca13c6f786d7020a384ec..1e2c603b4de4e3499067785bec992b4fdb28b4cf 100644 (file)
@@ -123,11 +123,12 @@ inline static void print_version(const char *prog_name, bool verbose)
  * \brief Transforms localized IDN string to ASCII punycode.
  *
  * \param idn_name     IDN name to transform.
+ * \param info         Enable info logging.
  *
  * \retval NULL                if transformation fails.
  * \retval string      if ok.
  */
-char *name_from_idn(const char *idn_name);
+char *name_from_idn(const char *idn_name, bool info);
 
 /*!
  * \brief Transforms ASCII punycode to localized IDN string.
index f67aaade1916f8158167f9026e912fa9be626b76..004a490c4c579eff61bf56d4d6d124ea40e2a5ad 100644 (file)
@@ -2315,7 +2315,7 @@ void complete_queries(list_t *queries, const query_t *conf)
                if (q->owner != NULL && q->owner[0] != '\0') {
                        char *ascii_name = q->owner;
                        if (q->idn) {
-                               ascii_name = name_from_idn(q->owner);
+                               ascii_name = name_from_idn(q->owner, q->style.show_header);
                                if (ascii_name == NULL) {
                                        ascii_name = q->owner;
                                } else {
index 1e235298f9fb48db406e7caf50299a31b8705bf8..cb693c1ba0170211a3d6cbe9e4f2c6a5e3f1ca57 100644 (file)
@@ -102,7 +102,7 @@ static int parse_name(const char *value, list_t *queries, const query_t *conf)
        query_t *query;
 
        if (conf->idn) {
-               ascii_name = name_from_idn(value);
+               ascii_name = name_from_idn(value, true);
                if (ascii_name == NULL) {
                        free(reverse);
                        return KNOT_EINVAL;