Index: branches/cname-collision/DNSDB.pm
===================================================================
--- branches/cname-collision/DNSDB.pm	(revision 964)
+++ branches/cname-collision/DNSDB.pm	(revision 967)
@@ -4871,5 +4871,5 @@
 
   return ('FAIL', "expires must be 1, 't', or 'until',  or 0, 'f', or 'after'")
-	if ($stamp && !$expires)
+	if ($stamp && !defined($expires))
 	|| ($stamp && $expires ne '0' && $expires ne '1' && $expires ne 't' && $expires ne 'f');
 
@@ -5031,5 +5031,5 @@
 
   return ('FAIL', "expires must be 1, 't', or 'until',  or 0, 'f', or 'after'")
-	if ($stamp && !$expires)
+	if ($stamp && !defined($expires))
 	|| ($stamp && $expires ne '0' && $expires ne '1' && $expires ne 't' && $expires ne 'f');
 
Index: branches/cname-collision/t/dns-unitbase.sql
===================================================================
--- branches/cname-collision/t/dns-unitbase.sql	(revision 964)
+++ branches/cname-collision/t/dns-unitbase.sql	(revision 967)
@@ -654,8 +654,8 @@
 
 COPY public.domains (domain_id, domain, group_id, description, status, zserial, sertype, changed, default_location) FROM stdin;
+1	example.com	1		1	2025123002	D	f	
 2	example.org	1		1	2025121800	D	f	ac
 3	example.net	1		1	2025121800	D	f	ab
-4	example.dev	1		1	1765992407	D	f	
-1	example.com	1		1	2025122201	D	t	
+4	expiry1.test	1		1	1765992407	D	f	
 \.
 
@@ -734,12 +734,12 @@
 26	3	1	1	admin	Initial User	[new example.net] Added record 'www.example.net CNAME example.net', TTL 10800	2025-12-17 12:26:35.195757-05	0	20
 27	3	1	1	admin	Initial User	[new example.net] Added record 'example.net TXT "v=spf1 a mx -all"', TTL 10800	2025-12-17 12:26:35.195757-05	0	20
-28	4	1	1	admin	Initial User	Added active domain example.dev	2025-12-17 12:26:47.718202-05	0	0
-29	4	1	1	admin	Initial User	[new example.dev] Added SOA record [contact ns1.example.com] [master hostmaster.example.dev] [refresh 10800] [retry 3600] [expire 604800] [minttl 5400], TTL 86400	2025-12-17 12:26:47.718202-05	0	28
-30	4	1	1	admin	Initial User	[new example.dev] Added record 'example.dev NS ns2.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
-31	4	1	1	admin	Initial User	[new example.dev] Added record 'example.dev NS ns1.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
-32	4	1	1	admin	Initial User	[new example.dev] Added record 'example.dev A 10.0.0.4', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
-33	4	1	1	admin	Initial User	[new example.dev] Added record 'example.dev MX [distance 10] mx1.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
-34	4	1	1	admin	Initial User	[new example.dev] Added record 'www.example.dev CNAME example.dev', TTL 10800	2025-12-17 12:26:47.718202-05	0	28
-35	4	1	1	admin	Initial User	[new example.dev] Added record 'example.dev TXT "v=spf1 a mx -all"', TTL 10800	2025-12-17 12:26:47.718202-05	0	28
+28	4	1	1	admin	Initial User	Added active domain expiry1.test	2025-12-17 12:26:47.718202-05	0	0
+29	4	1	1	admin	Initial User	[new expiry1.test] Added SOA record [contact ns1.example.com] [master hostmaster.expiry1.test] [refresh 10800] [retry 3600] [expire 604800] [minttl 5400], TTL 86400	2025-12-17 12:26:47.718202-05	0	28
+30	4	1	1	admin	Initial User	[new expiry1.test] Added record 'expiry1.test NS ns2.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
+31	4	1	1	admin	Initial User	[new expiry1.test] Added record 'expiry1.test NS ns1.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
+32	4	1	1	admin	Initial User	[new expiry1.test] Added record 'expiry1.test A 10.0.0.4', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
+33	4	1	1	admin	Initial User	[new expiry1.test] Added record 'expiry1.test MX [distance 10] mx1.example.com', TTL 7200	2025-12-17 12:26:47.718202-05	0	28
+34	4	1	1	admin	Initial User	[new expiry1.test] Added record 'www.expiry1.test CNAME expiry1.test', TTL 10800	2025-12-17 12:26:47.718202-05	0	28
+35	4	1	1	admin	Initial User	[new expiry1.test] Added record 'expiry1.test TXT "v=spf1 a mx -all"', TTL 10800	2025-12-17 12:26:47.718202-05	0	28
 36	0	1	1	admin	Initial User	Added active reverse zone 192.168.2.0/24	2025-12-17 12:27:28.623209-05	1	0
 37	0	1	1	admin	Initial User	[new 192.168.2.0/24] Added SOA record [contact hostmaster.example.com] [master ns1.example.com] [refresh 3600] [retry 900] [expire 1048576] [minttl 2560], TTL 3600	2025-12-17 12:27:28.623209-05	1	0
@@ -760,4 +760,5 @@
 52	0	1	1	admin	Initial User	Added record '192.168.2.16 CNAME 16.16-29.2.168.192.in-addr.arpa', TTL 2560	2025-12-23 11:29:50.084066-05	1	0
 53	0	1	1	admin	Initial User	Added record '192.168.2.17 TXT imma blocker!', TTL 2560	2025-12-23 13:06:20.492137-05	1	0
+55	0	1	1	admin	Initial User	Added record '192.168.2.18 CNAME 18-2.arpa.example.com', TTL 2560	2026-01-07 16:37:03.094557-05	1	0
 \.
 
@@ -767,5 +768,5 @@
 --
 
-SELECT pg_catalog.setval('public.log_log_id_seq', 53, true);
+SELECT pg_catalog.setval('public.log_log_id_seq', 55, true);
 
 
@@ -829,11 +830,11 @@
 3	20	www.example.net	5	example.net	0	0	0	10800	\N	0	ab	1969-12-31 19:00:00-05	f	f	\N
 3	21	example.net	16	"v=spf1 a mx -all"	0	0	0	10800	\N	0	ab	1969-12-31 19:00:00-05	f	f	\N
-4	22	ns1.example.com:hostmaster.example.dev	6	10800:3600:604800:5400	0	0	0	86400	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	23	example.dev	2	ns2.example.com	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	24	example.dev	2	ns1.example.com	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	25	example.dev	1	10.0.0.4	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	26	example.dev	15	mx1.example.com	10	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	27	www.example.dev	5	example.dev	0	0	0	10800	\N	0		1969-12-31 19:00:00-05	f	f	\N
-4	28	example.dev	16	"v=spf1 a mx -all"	0	0	0	10800	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	22	ns1.example.com:hostmaster.expiry1.test	6	10800:3600:604800:5400	0	0	0	86400	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	23	expiry1.test	2	ns2.example.com	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	24	expiry1.test	2	ns1.example.com	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	25	expiry1.test	1	10.0.0.4	0	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	26	expiry1.test	15	mx1.example.com	10	0	0	7200	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	27	www.expiry1.test	5	expiry1.test	0	0	0	10800	\N	0		1969-12-31 19:00:00-05	f	f	\N
+4	28	expiry1.test	16	"v=spf1 a mx -all"	0	0	0	10800	\N	0		1969-12-31 19:00:00-05	f	f	\N
 0	29	hostmaster.example.com:ns1.example.com	6	3600:900:1048576:2560	0	0	0	3600	\N	1		1969-12-31 19:00:00-05	f	f	\N
 0	30	ns2.example.com	2	192.168.2.0/24	0	0	0	7200	\N	1		1969-12-31 19:00:00-05	f	f	\N
@@ -844,7 +845,7 @@
 2	35	%r.example.org	65283	192.168.2.8/29	0	0	0	2560	\N	1		1969-12-31 19:00:00-05	f	f	\N
 2	36	floop.example.org	65280	192.168.2.14	0	0	0	2560	\N	1		1969-12-31 19:00:00-05	f	f	\N
-1	37	mail.example.com	5	mx1.example.com	0	0	0	5400	\N	0		1969-12-31 19:00:00-05	f	f	\N
+1	37	mail.example.com	5	mx1.example.com	0	0	0	900	\N	0		1969-12-31 19:00:00-05	f	f	\N
 1	38	mx1.example.com	16	v=spf1 ip4:192.168.2.42	0	0	0	5400	\N	0		1969-12-31 19:00:00-05	f	f	\N
-1	39	smtp.example.com	1	192.168.2.11	0	0	0	5400	\N	0		1969-12-31 19:00:00-05	f	f	\N
+1	39	smtp.example.com	1	192.168.2.11	0	0	0	900	\N	0		1969-12-31 19:00:00-05	f	f	\N
 1	40	webthing.example.com	5	example.com	0	0	0	5400	\N	0		1969-12-31 19:00:00-05	f	f	\N
 1	41	stuff.example.com	5	example.com	0	0	0	5400	\N	0		1969-12-31 19:00:00-05	f	f	\N
@@ -853,4 +854,5 @@
 0	44	16.16-29.2.168.192.in-addr.arpa	5	192.168.2.16	0	0	0	2560	\N	1		1969-12-31 19:00:00-05	f	f	\N
 0	45	imma blocker!	16	192.168.2.17	0	0	0	2560	\N	1		1969-12-31 19:00:00-05	f	f	\N
+0	46	18-2.arpa.example.com	5	192.168.2.18	0	0	0	2560	\N	1		1969-12-31 19:00:00-05	f	f	\N
 \.
 
@@ -860,5 +862,5 @@
 --
 
-SELECT pg_catalog.setval('public.records_record_id_seq', 45, true);
+SELECT pg_catalog.setval('public.records_record_id_seq', 46, true);
 
 
@@ -975,5 +977,5 @@
 example.org	ac	1765992379	add
 example.net	ab	1765992395	add
-example.dev		1765992408	add
+expiry1.test		1765992408	add
 2.168.192.in-addr.arpa		1765992449	add
 \.
@@ -985,5 +987,5 @@
 
 COPY public.revzones (rdns_id, revnet, group_id, description, status, zserial, sertype, changed, default_location) FROM stdin;
-1	192.168.2.0/24	1		1	2025122301	D	t	
+1	192.168.2.0/24	1		1	2026010700	D	t	
 \.
 
