]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2187] Throw exception if packet sending failed.
authorMarcin Siodelski <marcin@isc.org>
Tue, 25 Sep 2012 14:06:06 +0000 (16:06 +0200)
committerMarcin Siodelski <marcin@isc.org>
Tue, 25 Sep 2012 14:06:06 +0000 (16:06 +0200)
src/lib/dhcp/iface_mgr.cc
src/lib/dhcp/tests/iface_mgr_unittest.cc

index 3ce64343414e63265a1e9d8c964c78e8d5fb08bb..35f8c7d08d2b91f141bcc5de1cd84ffb0f0fae85 100644 (file)
@@ -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);
index 49f695c625103f039c57f3b87eb5f578a3f30b30..9ca789970f88be8748a5c7402ce935e074eb0c75 100644 (file)
@@ -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);
 }