Don't answer DHCP packets if we don't recognize the hardware address
authorQuentin Smith <quentin@mit.edu>
Mon, 1 Feb 2010 23:56:09 +0000 (18:56 -0500)
committerQuentin Smith <quentin@mit.edu>
Mon, 1 Feb 2010 23:56:09 +0000 (18:56 -0500)
svn path=/trunk/packages/invirt-dhcp/; revision=2982

invirt-dhcpserver

index d4e40e0..ffbf839 100755 (executable)
@@ -224,12 +224,14 @@ class DhcpServer(pydhcplib.dhcp_network.DhcpServer):
 
         else : s.syslog(s.LOG_INFO,"Get DHCPREQUEST_UNKNOWN_STATE packet : not implemented")
 
-        if self.backend.Request(packet) : packet.TransformToDhcpAckPacket()
-        else : packet.TransformToDhcpNackPacket()
-
-        self.SendPacket(packet)
-
-
+        if self.backend.Request(packet):
+            packet.TransformToDhcpAckPacket()
+            self.SendPacket(packet)
+        elif self.backend.Discover(packet):
+            packet.TransformToDhcpNackPacket()
+            self.SendPacket(packet)
+        else:
+            pass # We aren't authoritative, so don't reply if we don't know them.
 
     # FIXME: These are not yet implemented.
     def HandleDhcpDecline(self, packet):