From c3f7a41924ba1c6a9cd4dbd34a2d4624be471934 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Thu, 12 Jan 2017 12:17:35 +0100
Subject: [PATCH] Add support for named/BIND SRV records

---
 src/hostinfo/named.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/hostinfo/named.py b/src/hostinfo/named.py
index 0d0a641..a83ef2e 100755
--- a/src/hostinfo/named.py
+++ b/src/hostinfo/named.py
@@ -194,6 +194,33 @@ def generate_forward(tree, hosts):
         for txt in [ t for t in tree._subnet_._txt_ if t.domain[1] == domain]:
             result += ('                IN      TXT     "%s"' % (txt.value[0]))
             pass
+        for srv in [ s for s in tree._subnet_._srv_ if s.domain[1] == domain]:
+            s = {}
+            if not srv.name[0]:
+                raise util.HostinfoException('SRV has no name %s' % srv,
+                                             where=srv)
+            if not srv.priority[0]:
+                raise util.HostinfoException('SRV has no priority %s' % srv,
+                                             where=srv)
+            if not srv.weight[0]:
+                raise util.HostinfoException('SRV has no weight %s' % srv,
+                                             where=srv)
+            if not srv.port[0]:
+                raise util.HostinfoException('SRV has no port %s' % srv,
+                                             where=srv)
+            if not srv.host[0]:
+                raise util.HostinfoException('SRV has no host %s' % srv,
+                                             where=srv)
+            s['name'] = srv.name[0]
+            s['priority'] = srv.priority[0]
+            s['weight'] = srv.weight[0]
+            s['port'] = srv.port[0]
+            s['host'] = srv.host[0]
+            s['ttl'] = srv.ttl[0] or ''
+            result += (
+                '%(name)s %(ttl)s IN SRV %(priority)s %(weight)s %(port)s %(host)s'
+                % s)
+            pass
         result.append_lines("""
           |;
           |localhost       IN      A       127.0.0.1
-- 
GitLab