This is useful for generating using hypothesis but also for other
cases.
import dns.rdataclass
import dns.rdatatype
+import isctest.name
+
@composite
def dns_names(
try:
outer_name = prefix + suffix
- remaining_bytes = 255 - len(outer_name.to_wire())
+ remaining_bytes = 255 - isctest.name.len_wire_uncompressed(outer_name)
assert remaining_bytes >= 0
except dns.name.NameTooLong:
warn(
def prepend_label(label: str, name: dns.name.Name) -> dns.name.Name:
return dns.name.Name((label,) + name.labels)
+
+
+def len_wire_uncompressed(name: dns.name.Name) -> int:
+ return len(name) + sum(map(len, name.labels))