]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[4206_0.9.2] fix for empty DUID in v6
authorTomek Mrugalski <tomasz@isc.org>
Mon, 7 Dec 2015 16:50:31 +0000 (17:50 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Mon, 7 Dec 2015 16:50:31 +0000 (17:50 +0100)
src/bin/dhcp6/dhcp6_messages.mes
src/bin/dhcp6/dhcp6_srv.cc

index 5b62bb73bc72118b438ddc26e0fda0c48a93074c..9b847970a0c75c8008363003d2565f296eb4f579 100644 (file)
@@ -413,6 +413,11 @@ This is a general catch-all message indicating that the processing of the
 specified packet type from the indicated address failed.  The reason is given in the
 message.  The server will not send a response but will instead ignore the packet.
 
+% DHCP6_PACKET_PROCESS_EXCEPTION exception occurred during packet processing: %1
+This error message indicates that an exception was raised during packet processing
+that was not caught by other, more specific exception handlers. This packet will
+be dropped and the server will continue operation.
+
 % DHCP6_PACKET_RECEIVED %1: %2 (type %3) received from %4 to %5 on interface %6
 A debug message noting that the server has received the specified type of
 packet on the specified interface. The first argument specifies the
index 9f29e9d03ffeebc9ba4cf8d3fd107c7c6d6b83cd..33f54a01c44dd5352653e6e4976fc2890a9b6e54 100644 (file)
@@ -314,6 +314,8 @@ bool Dhcpv6Srv::run() {
         Pkt6Ptr query;
         Pkt6Ptr rsp;
 
+        try {
+
         try {
             // The lease database backend may install some timers for which
             // the handlers need to be executed periodically. Retrieve the
@@ -710,6 +712,13 @@ bool Dhcpv6Srv::run() {
                     .arg(e.what());
             }
         }
+
+        } catch (const std::exception& e) {
+            // General catch-all exception that are not caught by more specific
+            // catches.
+            LOG_ERROR(packet6_logger, DHCP6_PACKET_PROCESS_EXCEPTION)
+                .arg(e.what());
+        }
     }
 
     return (true);