From: Marcin Siodelski Date: Tue, 25 Sep 2012 14:06:06 +0000 (+0200) Subject: [2187] Throw exception if packet sending failed. X-Git-Tag: trac2351_base~37^2~3^2^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5633225648b2a4a5582327131f9ca7a7d83b340f;p=thirdparty%2Fkea.git [2187] Throw exception if packet sending failed. --- diff --git a/src/lib/dhcp/iface_mgr.cc b/src/lib/dhcp/iface_mgr.cc index 3ce6434341..35f8c7d08d 100644 --- a/src/lib/dhcp/iface_mgr.cc +++ b/src/lib/dhcp/iface_mgr.cc @@ -702,7 +702,7 @@ IfaceMgr::send(const Pkt6Ptr& pkt) { result = sendmsg(getSocket(*pkt), &m, 0); if (result < 0) { - isc_throw(Unexpected, "Pkt6 send failed: sendmsg() returned " << result); + isc_throw(SocketWriteError, "Pkt6 send failed: sendmsg() returned " << result); } return (result); @@ -752,7 +752,7 @@ IfaceMgr::send(const Pkt4Ptr& pkt) int result = sendmsg(getSocket(*pkt), &m, 0); if (result < 0) { - isc_throw(Unexpected, "Pkt4 send failed."); + isc_throw(SocketWriteError, "pkt4 send failed"); } return (result); diff --git a/src/lib/dhcp/tests/iface_mgr_unittest.cc b/src/lib/dhcp/tests/iface_mgr_unittest.cc index 49f695c625..9ca789970f 100644 --- a/src/lib/dhcp/tests/iface_mgr_unittest.cc +++ b/src/lib/dhcp/tests/iface_mgr_unittest.cc @@ -639,10 +639,11 @@ TEST_F(IfaceMgrTest, sendReceive6) { // we should accept both values as source ports. EXPECT_TRUE((rcvPkt->getRemotePort() == 10546) || (rcvPkt->getRemotePort() == 10547)); - // try to receive data over the closed socket. Closed socket's descriptor is + // try to send/receive data over the closed socket. Closed socket's descriptor is // still being hold by IfaceMgr which will try to use it to receive data. close(socket1); EXPECT_THROW(ifacemgr->receive6(10), SocketReadError); + EXPECT_THROW(ifacemgr->send(sendPkt), SocketWriteError); } TEST_F(IfaceMgrTest, sendReceive4) { @@ -736,6 +737,7 @@ TEST_F(IfaceMgrTest, sendReceive4) { // still being hold by IfaceMgr which will try to use it to receive data. close(socket1); EXPECT_THROW(ifacemgr->receive4(10), SocketReadError); + EXPECT_THROW(ifacemgr->send(sendPkt), SocketWriteError); }