Index: /tools/gformat.py
===================================================================
--- /tools/gformat.py	(revision 10654)
+++ /tools/gformat.py	(revision 10655)
@@ -995,5 +995,5 @@
       wleiden_cname[datadump['nodename']] = fqdn
 
-    wleiden_zone[fqdn].append(datadump['masterip'])
+    wleiden_zone[fqdn].append((datadump['masterip'], True))
 
     # Hacking to get proper DHCP IPs and hostnames
@@ -1006,7 +1006,7 @@
         dhcp_part = ".".join(ip.split('.')[0:3])
         if ip != datadump['masterip']:
-          wleiden_zone["dhcp-gateway-%s.%s" % (iface_name, fqdn)].append(ip)
+          wleiden_zone["dhcp-gateway-%s.%s" % (iface_name, fqdn)].append((ip, False))
         for i in range(int(dhcp_start), int(dhcp_stop) + 1):
-          wleiden_zone["dhcp-%s-%s.%s" % (i, iface_name, fqdn)].append("%s.%s" % (dhcp_part, i))
+          wleiden_zone["dhcp-%s-%s.%s" % (i, iface_name, fqdn)].append(("%s.%s" % (dhcp_part, i), True))
       except (AttributeError, ValueError):
         # First push it into a pool, to indentify the counter-part later on
@@ -1048,21 +1048,21 @@
     if len(value) == 1:
       (iface_name, fqdn, ip) = value[0]
-      wleiden_zone["2unused-%s.%s" % (iface_name, fqdn)].append(ip)
+      wleiden_zone["2unused-%s.%s" % (iface_name, fqdn)].append((ip, True))
 
       # Device DNS names
       if 'cnode' in fqdn.lower():
-        wleiden_zone["d-at-%s.%s" % (iface_name, fqdn)].append(showaddr(parseaddr(ip) + 1))
-        wleiden_cname["d-at-%s.%s" % (iface_name,sn(fqdn))] = "d-at-%s.%s" % (iface_name, fqdn)
+        wleiden_zone["d-at-%s.%s" % (iface_name, fqdn)].append((showaddr(parseaddr(ip) + 1), False))
+        wleiden_cname["d-at-%s.%s" % (iface_name,sn(fqdn))] = "d-at-%s.%s" % ((iface_name, fqdn))
 
     elif len(value) == 2:
       (a_iface_name, a_fqdn, a_ip) = value[0]
       (b_iface_name, b_fqdn, b_ip) = value[1]
-      wleiden_zone["2%s.%s" % (b_fqdn,a_fqdn)].append(a_ip)
-      wleiden_zone["2%s.%s" % (a_fqdn,b_fqdn)].append(b_ip)
+      wleiden_zone["2%s.%s" % (b_fqdn,a_fqdn)].append((a_ip, True))
+      wleiden_zone["2%s.%s" % (a_fqdn,b_fqdn)].append((b_ip, True))
 
       # Device DNS names
       if 'cnode' in a_fqdn.lower() and 'cnode' in b_fqdn.lower():
-        wleiden_zone["d-at-%s.%s" % (a_iface_name, a_fqdn)].append(showaddr(parseaddr(a_ip) + 1))
-        wleiden_zone["d-at-%s.%s" % (b_iface_name, b_fqdn)].append(showaddr(parseaddr(b_ip) - 1))
+        wleiden_zone["d-at-%s.%s" % (a_iface_name, a_fqdn)].append((showaddr(parseaddr(a_ip) + 1), False))
+        wleiden_zone["d-at-%s.%s" % (b_iface_name, b_fqdn)].append((showaddr(parseaddr(b_ip) - 1), False))
         wleiden_cname["d-at-%s.%s" % (a_iface_name,sn(a_fqdn))] = "d-at-%s.%s" % (a_iface_name, a_fqdn)
         wleiden_cname["d-at-%s.%s" % (b_iface_name,sn(b_fqdn))] = "d-at-%s.%s" % (b_iface_name, b_fqdn)
@@ -1075,5 +1075,5 @@
         (iface_name, fqdn, ip) = item
         pool_name = "2pool-" + showaddr(key).replace('.','-') + "-" + pool_to_name(fqdn,pool_members)
-        wleiden_zone["%s.%s" % (pool_name, fqdn)].append(ip)
+        wleiden_zone["%s.%s" % (pool_name, fqdn)].append((ip, True))
 
   # Include static DNS entries
@@ -1096,5 +1096,5 @@
         wleiden_raw[k] = item
       elif valid_addr(item):
-        wleiden_zone[k].append(item)
+        wleiden_zone[k].append((item, False))
       else:
         wleiden_cname[k] = item
@@ -1127,6 +1127,6 @@
   f.write(dns_header % details)
 
-  for host,ips in wleiden_zone.iteritems():
-    for ip in ips:
+  for host,items in wleiden_zone.iteritems():
+    for ip,reverse in items:
       if valid_addr(ip):
         f.write("%s.wleiden.net. IN A %s \n" % (host.lower(), ip))
@@ -1145,10 +1145,13 @@
     #XXX: Not effient, fix to proper data structure and do checks at other
     # stages
-    for host,ips in wleiden_zone.iteritems():
-      for ip in ips:
+    for host,items in wleiden_zone.iteritems():
+      for ip,reverse in items:
+        if not reverse:
+          continue
         if valid_addr(ip):
-          if int(ip.split('.')[1]) == s:
-            rev_ip = '.'.join(reversed(ip.split('.')))
-            f.write("%s.in-addr.arpa. IN PTR %s.wleiden.net.\n" % (rev_ip.lower(), host.lower()))
+          if valid_addr(ip):
+            if int(ip.split('.')[1]) == s:
+              rev_ip = '.'.join(reversed(ip.split('.')))
+              f.write("%s.in-addr.arpa. IN PTR %s.wleiden.net.\n" % (rev_ip.lower(), host.lower()))
     f.close()
 
