mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 07:25:18 +00:00
[master] Merged trac4551 (libdhcp vs Fedora 24)
This commit is contained in:
@@ -880,14 +880,13 @@ IfaceMgr::send(const Pkt4Ptr& pkt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boost::shared_ptr<Pkt4>
|
Pkt4Ptr IfaceMgr::receive4(uint32_t timeout_sec, uint32_t timeout_usec /* = 0 */) {
|
||||||
IfaceMgr::receive4(uint32_t timeout_sec, uint32_t timeout_usec /* = 0 */) {
|
|
||||||
// Sanity check for microsecond timeout.
|
// Sanity check for microsecond timeout.
|
||||||
if (timeout_usec >= 1000000) {
|
if (timeout_usec >= 1000000) {
|
||||||
isc_throw(BadValue, "fractional timeout must be shorter than"
|
isc_throw(BadValue, "fractional timeout must be shorter than"
|
||||||
" one million microseconds");
|
" one million microseconds");
|
||||||
}
|
}
|
||||||
const SocketInfo* candidate = 0;
|
boost::scoped_ptr<SocketInfo> candidate;
|
||||||
IfacePtr iface;
|
IfacePtr iface;
|
||||||
fd_set sockets;
|
fd_set sockets;
|
||||||
int maxfd = 0;
|
int maxfd = 0;
|
||||||
@@ -972,7 +971,7 @@ IfaceMgr::receive4(uint32_t timeout_sec, uint32_t timeout_usec /* = 0 */) {
|
|||||||
BOOST_FOREACH(iface, ifaces_) {
|
BOOST_FOREACH(iface, ifaces_) {
|
||||||
BOOST_FOREACH(SocketInfo s, iface->getSockets()) {
|
BOOST_FOREACH(SocketInfo s, iface->getSockets()) {
|
||||||
if (FD_ISSET(s.sockfd_, &sockets)) {
|
if (FD_ISSET(s.sockfd_, &sockets)) {
|
||||||
candidate = &(s);
|
candidate.reset(new SocketInfo(s));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -997,7 +996,7 @@ Pkt6Ptr IfaceMgr::receive6(uint32_t timeout_sec, uint32_t timeout_usec /* = 0 */
|
|||||||
" one million microseconds");
|
" one million microseconds");
|
||||||
}
|
}
|
||||||
|
|
||||||
const SocketInfo* candidate = 0;
|
boost::scoped_ptr<SocketInfo> candidate;
|
||||||
fd_set sockets;
|
fd_set sockets;
|
||||||
int maxfd = 0;
|
int maxfd = 0;
|
||||||
|
|
||||||
@@ -1082,7 +1081,7 @@ Pkt6Ptr IfaceMgr::receive6(uint32_t timeout_sec, uint32_t timeout_usec /* = 0 */
|
|||||||
BOOST_FOREACH(IfacePtr iface, ifaces_) {
|
BOOST_FOREACH(IfacePtr iface, ifaces_) {
|
||||||
BOOST_FOREACH(SocketInfo s, iface->getSockets()) {
|
BOOST_FOREACH(SocketInfo s, iface->getSockets()) {
|
||||||
if (FD_ISSET(s.sockfd_, &sockets)) {
|
if (FD_ISSET(s.sockfd_, &sockets)) {
|
||||||
candidate = &(s);
|
candidate.reset(new SocketInfo(s));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2833,15 +2833,17 @@ TEST_F(IfaceMgrTest, unicastDuplicates) {
|
|||||||
NakedIfaceMgr ifacemgr;
|
NakedIfaceMgr ifacemgr;
|
||||||
|
|
||||||
IfacePtr iface = ifacemgr.getIface(LOOPBACK);
|
IfacePtr iface = ifacemgr.getIface(LOOPBACK);
|
||||||
if (iface) {
|
if (!iface) {
|
||||||
cout << "Local loopback interface not found. Skipping test. " << endl;
|
cout << "Local loopback interface not found. Skipping test. " << endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tell the interface that it should bind to this global interface
|
// Tell the interface that it should bind to this global interface
|
||||||
|
// It is the first attempt so it should succeed
|
||||||
EXPECT_NO_THROW(iface->addUnicast(IOAddress("2001:db8::1")));
|
EXPECT_NO_THROW(iface->addUnicast(IOAddress("2001:db8::1")));
|
||||||
|
|
||||||
// Tell the interface that it should bind to this global interface
|
// Tell the interface that it should bind to this global interface
|
||||||
|
// It is the second attempt so it should fail
|
||||||
EXPECT_THROW(iface->addUnicast(IOAddress("2001:db8::1")), BadValue);
|
EXPECT_THROW(iface->addUnicast(IOAddress("2001:db8::1")), BadValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user