]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2983] Server now handles v4 packet without message type option correctly.
authorTomek Mrugalski <tomasz@isc.org>
Tue, 20 Aug 2013 12:52:24 +0000 (14:52 +0200)
committerTomek Mrugalski <tomasz@isc.org>
Tue, 20 Aug 2013 12:52:24 +0000 (14:52 +0200)
src/bin/dhcp4/dhcp4_messages.mes
src/bin/dhcp4/dhcp4_srv.cc

index 1d445d316d04a382f0f11252c980fd58d886dd51..9fae3135b11cb6488142b5bac57e4e750847b3bf 100644 (file)
@@ -158,6 +158,10 @@ This is a general catch-all message indicating that the processing of a
 received packet failed.  The reason is given in the message.  The server
 will not send a response but will instead ignore the packet.
 
+% DHCP4_PACKET_DROP_NO_TYPE dropped packet received on interface %1: does not have msg-type option
+THis is a debug message informing that incoming DHCPv4 packet did not
+have mandatory DHCP message type option and thus was dropped.
+
 % DHCP4_PACKET_RECEIVED %1 (type %2) packet received on interface %3
 A debug message noting that the server has received the specified type of
 packet on the specified interface.  Note that a packet marked as UNKNOWN
index e238253d835201b6ee7c88beb7fb47c0ae7074cb..6a4943cb183fdddf4d6e422fe869b9e283816c28 100644 (file)
@@ -241,12 +241,14 @@ Dhcpv4Srv::run() {
         int type = -1;
         try {
             type = query->getType();
-        } catch (const std::exception& e) {
-
+        } catch (...) {
+            LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PACKET_DROP_NO_TYPE)
+                .arg(query->getIface());
+            continue;
         }
 
         LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PACKET_RECEIVED)
-            .arg(serverReceivedPacketName(query->getType()))
+            .arg(serverReceivedPacketName(type))
             .arg(type)
             .arg(query->getIface());
         LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL_DATA, DHCP4_QUERY_DATA)