mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 23:45:27 +00:00
[4106] Throw exception from IPC for out of range port.
This commit is contained in:
@@ -37,9 +37,6 @@ void Dhcp4o6Ipc::open() {
|
|||||||
Dhcp4o6IpcBase::close();
|
Dhcp4o6IpcBase::close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (port > 65534) {
|
|
||||||
isc_throw(OutOfRange, "DHCP4o6 port " << port);
|
|
||||||
}
|
|
||||||
|
|
||||||
int old_fd = socket_fd_;
|
int old_fd = socket_fd_;
|
||||||
socket_fd_ = Dhcp4o6IpcBase::open(static_cast<uint16_t>(port), ENDPOINT_TYPE_V4);
|
socket_fd_ = Dhcp4o6IpcBase::open(static_cast<uint16_t>(port), ENDPOINT_TYPE_V4);
|
||||||
|
@@ -37,9 +37,6 @@ void Dhcp4o6Ipc::open() {
|
|||||||
Dhcp4o6IpcBase::close();
|
Dhcp4o6IpcBase::close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (port > 65534) {
|
|
||||||
isc_throw(OutOfRange, "DHCP4o6 port " << port);
|
|
||||||
}
|
|
||||||
|
|
||||||
int old_fd = socket_fd_;
|
int old_fd = socket_fd_;
|
||||||
socket_fd_ = Dhcp4o6IpcBase::open(static_cast<uint16_t>(port), ENDPOINT_TYPE_V6);
|
socket_fd_ = Dhcp4o6IpcBase::open(static_cast<uint16_t>(port), ENDPOINT_TYPE_V6);
|
||||||
|
@@ -40,6 +40,12 @@ Dhcp4o6IpcBase::~Dhcp4o6IpcBase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int Dhcp4o6IpcBase::open(const uint16_t port, const EndpointType& endpoint_type) {
|
int Dhcp4o6IpcBase::open(const uint16_t port, const EndpointType& endpoint_type) {
|
||||||
|
// Check if the port value is correct.
|
||||||
|
if (port > 65534) {
|
||||||
|
isc_throw(Dhcp4o6IpcError, "specified port " << port << " is out of"
|
||||||
|
" range. The port value must not be greater than 65534 ");
|
||||||
|
}
|
||||||
|
|
||||||
if (port == port_) {
|
if (port == port_) {
|
||||||
// No change: nothing to do
|
// No change: nothing to do
|
||||||
return (socket_fd_);
|
return (socket_fd_);
|
||||||
|
@@ -531,6 +531,19 @@ TEST_F(Dhcp4o6IpcBaseTest, openError) {
|
|||||||
EXPECT_EQ(TEST_PORT + 10, ipc.getPort());
|
EXPECT_EQ(TEST_PORT + 10, ipc.getPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This test verifies that the IPC returns an error when trying to bind
|
||||||
|
// to the out of range port.
|
||||||
|
TEST_F(Dhcp4o6IpcBaseTest, invalidPortError4) {
|
||||||
|
TestIpc ipc(65535, TestIpc::ENDPOINT_TYPE_V4);
|
||||||
|
EXPECT_THROW(ipc.open(), Dhcp4o6IpcError);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This test verifies that the IPC returns an error when trying to bind
|
||||||
|
// to the out of range port.
|
||||||
|
TEST_F(Dhcp4o6IpcBaseTest, invalidPortError6) {
|
||||||
|
TestIpc ipc(65535, TestIpc::ENDPOINT_TYPE_V6);
|
||||||
|
EXPECT_THROW(ipc.open(), Dhcp4o6IpcError);
|
||||||
|
}
|
||||||
|
|
||||||
// This test verifies that receiving packet over the IPC fails when there
|
// This test verifies that receiving packet over the IPC fails when there
|
||||||
// is no vendor option present.
|
// is no vendor option present.
|
||||||
|
Reference in New Issue
Block a user