diff options
author | Tomek Mrugalski <tomasz@isc.org> | 2015-12-07 17:48:28 +0100 |
---|---|---|
committer | Tomek Mrugalski <tomasz@isc.org> | 2015-12-07 17:48:28 +0100 |
commit | b69ee2d4b13ab1069f4667b8d4b5e5b455e8adc4 (patch) | |
tree | 592ffec7e271bdda43a7c362ba0aae880914a9d1 | |
parent | [master] ChangeLog updated after 3569 merge. (diff) | |
download | kea-b69ee2d4b13ab1069f4667b8d4b5e5b455e8adc4.tar.xz kea-b69ee2d4b13ab1069f4667b8d4b5e5b455e8adc4.zip |
[4206] Fix for empty DUID in v6
-rw-r--r-- | src/bin/dhcp6/dhcp6_messages.mes | 5 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_srv.cc | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/bin/dhcp6/dhcp6_messages.mes b/src/bin/dhcp6/dhcp6_messages.mes index 8c5ca2cfb0..66c27edf2b 100644 --- a/src/bin/dhcp6/dhcp6_messages.mes +++ b/src/bin/dhcp6/dhcp6_messages.mes @@ -425,6 +425,11 @@ because packets of this type must be sent to multicast. The first argument specifies the client and transaction identification information, the second argument specifies packet type. +% 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_PROCESS_FAIL processing of %1 message received from %2 failed: %3 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 diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc index 0aaf4fe6e1..2eaf423e2f 100644 --- a/src/bin/dhcp6/dhcp6_srv.cc +++ b/src/bin/dhcp6/dhcp6_srv.cc @@ -301,6 +301,8 @@ bool Dhcpv6Srv::run() { Pkt6Ptr rsp; try { + + try { uint32_t timeout = 1000; LOG_DEBUG(packet6_logger, DBG_DHCP6_DETAIL, DHCP6_BUFFER_WAIT).arg(timeout); query = receivePacket(timeout); @@ -693,6 +695,18 @@ bool Dhcpv6Srv::run() { .arg(e.what()); } } + + } catch (const std::exception& e) { + // General catch-all standard exceptions that are not caught by more + // specific catches. + LOG_ERROR(packet6_logger, DHCP6_PACKET_PROCESS_EXCEPTION) + .arg(e.what()); + } catch (...) { + // General catch-all non-standard exception that are not caught + // by more specific catches. + LOG_ERROR(packet6_logger, DHCP6_PACKET_PROCESS_EXCEPTION) + .arg("an unknown exception not derived from std::exception"); + } } return (true); |