From bb065c1b5cf1ff1bf73a1e6bf1521eefd735c153 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Sat, 8 Dec 2012 13:59:04 +0100
Subject: [PATCH] Version 2012-12-08 13:59

M  src/hostinfo/ifconfig.py
---
 src/hostinfo/ifconfig.py | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/src/hostinfo/ifconfig.py b/src/hostinfo/ifconfig.py
index a6f0c2d..23972a0 100755
--- a/src/hostinfo/ifconfig.py
+++ b/src/hostinfo/ifconfig.py
@@ -33,30 +33,35 @@ def generate(tree, host):
             search = []
             for s, ip in map(lambda ip: (subnet(tree, ip.address[0]), ip),
                              filter(lambda ip: (ip.address[0] and
-                                                subnet(tree, ip.address[0]) and
                                                 (static or
                                                  (not ip.vlan[0] and
                                                   ip.alias[0]))),
                                                 i._ip_)):
-                config += "%sIPADDR%s=%s\n" % (pre, index, ip.address[0])
-                config += "%sGATEWAY%s=%s\n" % (pre, index, s.gateway[0])
-                config += "%sNETMASK%s=%s\n" % (pre, index, s.netmask[0])
-                config += "%sNETWORK%s=%s\n" % (pre, index, s.network[0])
-                config += "%sBROADCAST%s=%s\n" % (pre, index, s.broadcast[0])
                 if ip.search[0]:
                     search.extend(ip.search[0].split())
                     pass
-                for n in re.split("[, ]+", s.name_servers[0]):
-                    # Domain nameservers
-                    if not n in nameservers:
-                        nameservers.append(n)
-                        pass
+                config += "%sIPADDR%s=%s\n" % (pre, index, ip.address[0])
+                if not s:
+                    config += "%sNETMASK%s=255.255.255.255\n" % (pre, index)
                     pass
-                for n in i._nameserver_:
-                    if n.domain[0] == s.domain[0]:
-                        if not '127.0.0.1' in nameservers:
-                            # Insert own address first in nameserver list
-                            nameservers.insert(0, '127.0.0.1')
+                else:
+                    config += "%sGATEWAY%s=%s\n" % (pre, index, s.gateway[0])
+                    config += "%sNETMASK%s=%s\n" % (pre, index, s.netmask[0])
+                    config += "%sNETWORK%s=%s\n" % (pre, index, s.network[0])
+                    config += "%sBROADCAST%s=%s\n" % (pre, index, 
+                                                      s.broadcast[0])
+                    for n in re.split("[, ]+", s.name_servers[0]):
+                        # Domain nameservers
+                        if not n in nameservers:
+                            nameservers.append(n)
+                            pass
+                        pass
+                    for n in i._nameserver_:
+                        if n.domain[0] == s.domain[0]:
+                            if not '127.0.0.1' in nameservers:
+                                # Insert own address first in nameserver list
+                                nameservers.insert(0, '127.0.0.1')
+                                pass
                             pass
                         pass
                     pass
-- 
GitLab