]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
libknot: add knot_dname_with_null()
authorDaniel Salzman <daniel.salzman@nic.cz>
Thu, 14 Nov 2024 07:46:17 +0000 (08:46 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Fri, 15 Nov 2024 07:07:25 +0000 (08:07 +0100)
distro/pkg/deb/libknot15.symbols
src/libknot/dname.c
src/libknot/dname.h

index cb77329296656f33b970302ecbced5a7bbc5a2f0..682df260c8d402499f7d6021171c244056976777 100644 (file)
@@ -53,6 +53,7 @@ libknot.so.15 libknot15 #MINVER#
  knot_dname_to_wire@Base 3.4.0
  knot_dname_unpack@Base 3.4.0
  knot_dname_wire_check@Base 3.4.0
+ knot_dname_with_null@Base 3.4.3
  knot_dnssec_alg_names@Base 3.4.0
  knot_edns_add_option@Base 3.4.0
  knot_edns_alignment_size@Base 3.4.0
index d166f8d3972b40f948790d4745acb971c2da3e43..3cfc5a5570313bc703f605e36229209ccebfb206 100644 (file)
@@ -706,6 +706,17 @@ bool knot_dname_is_case_equal(const knot_dname_t *d1, const knot_dname_t *d2)
        return dname_is_equal(d1, d2, true);
 }
 
+_public_
+bool knot_dname_with_null(const knot_dname_t *name)
+{
+       if (name == NULL) {
+               return false;
+       }
+
+       size_t size = knot_dname_size(name);
+       return (size != strnlen((const char *)name, size) + 1);
+}
+
 _public_
 size_t knot_dname_prefixlen(const uint8_t *name, unsigned nlabels)
 {
index 6d72f901b858c1f413cceadd696e968b4e1068a2..47e514c40a852a6dbe96f8d03b3b9c03aa3517ae 100644 (file)
@@ -290,6 +290,17 @@ bool knot_dname_is_equal(const knot_dname_t *d1, const knot_dname_t *d2);
 _pure_
 bool knot_dname_is_case_equal(const knot_dname_t *d1, const knot_dname_t *d2);
 
+/*!
+ * \brief Checks the domain name if it contains '\0' byte within a label.
+ *
+ * \param name  Domain name.
+ *
+ * \retval true if a zero byte is included
+ * \retval false if a zero byte isn't included
+ */
+_pure_
+bool knot_dname_with_null(const knot_dname_t *name);
+
 /*!
  * \brief Count length of the N first labels.
  *