Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Kea
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
445
Issues
445
List
Boards
Labels
Service Desk
Milestones
Merge Requests
71
Merge Requests
71
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ISC Open Source Projects
Kea
Commits
76072004
Commit
76072004
authored
Jan 07, 2014
by
Mukund Sivaraman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[1283] Remove toText() calls where IOAddress should be used directly
parent
df980e49
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
124 additions
and
126 deletions
+124
-126
src/bin/dhcp4/config_parser.cc
src/bin/dhcp4/config_parser.cc
+1
-1
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
+20
-20
src/bin/dhcp4/tests/dhcp4_test_utils.cc
src/bin/dhcp4/tests/dhcp4_test_utils.cc
+4
-4
src/bin/dhcp6/config_parser.cc
src/bin/dhcp6/config_parser.cc
+2
-2
src/bin/dhcp6/dhcp6_srv.cc
src/bin/dhcp6/dhcp6_srv.cc
+1
-1
src/bin/dhcp6/tests/config_parser_unittest.cc
src/bin/dhcp6/tests/config_parser_unittest.cc
+2
-4
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
+12
-12
src/bin/dhcp6/tests/dhcp6_test_utils.cc
src/bin/dhcp6/tests/dhcp6_test_utils.cc
+4
-4
src/lib/asiolink/io_endpoint.cc
src/lib/asiolink/io_endpoint.cc
+2
-2
src/lib/asiolink/tests/io_address_unittest.cc
src/lib/asiolink/tests/io_address_unittest.cc
+1
-1
src/lib/dhcp/iface_mgr.cc
src/lib/dhcp/iface_mgr.cc
+5
-4
src/lib/dhcp/option6_iaaddr.cc
src/lib/dhcp/option6_iaaddr.cc
+3
-4
src/lib/dhcp/option6_iaprefix.cc
src/lib/dhcp/option6_iaprefix.cc
+1
-1
src/lib/dhcp/option_custom.cc
src/lib/dhcp/option_custom.cc
+3
-3
src/lib/dhcp/option_definition.cc
src/lib/dhcp/option_definition.cc
+1
-1
src/lib/dhcp/pkt4.cc
src/lib/dhcp/pkt4.cc
+2
-2
src/lib/dhcp/pkt6.cc
src/lib/dhcp/pkt6.cc
+2
-2
src/lib/dhcp/pkt_filter.cc
src/lib/dhcp/pkt_filter.cc
+3
-3
src/lib/dhcp/pkt_filter_inet.cc
src/lib/dhcp/pkt_filter_inet.cc
+2
-1
src/lib/dhcp/tests/iface_mgr_unittest.cc
src/lib/dhcp/tests/iface_mgr_unittest.cc
+3
-3
src/lib/dhcp/tests/option_custom_unittest.cc
src/lib/dhcp/tests/option_custom_unittest.cc
+6
-6
src/lib/dhcp/tests/option_data_types_unittest.cc
src/lib/dhcp/tests/option_data_types_unittest.cc
+2
-2
src/lib/dhcp/tests/pkt4_unittest.cc
src/lib/dhcp/tests/pkt4_unittest.cc
+8
-8
src/lib/dhcp/tests/protocol_util_unittest.cc
src/lib/dhcp/tests/protocol_util_unittest.cc
+2
-2
src/lib/dhcp_ddns/ncr_msg.cc
src/lib/dhcp_ddns/ncr_msg.cc
+1
-1
src/lib/dhcpsrv/lease.cc
src/lib/dhcpsrv/lease.cc
+2
-2
src/lib/dhcpsrv/memfile_lease_mgr.cc
src/lib/dhcpsrv/memfile_lease_mgr.cc
+2
-2
src/lib/dhcpsrv/mysql_lease_mgr.cc
src/lib/dhcpsrv/mysql_lease_mgr.cc
+2
-2
src/lib/dhcpsrv/pool.cc
src/lib/dhcpsrv/pool.cc
+4
-4
src/lib/dhcpsrv/subnet.cc
src/lib/dhcpsrv/subnet.cc
+1
-2
src/lib/dhcpsrv/tests/alloc_engine_unittest.cc
src/lib/dhcpsrv/tests/alloc_engine_unittest.cc
+16
-16
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
+2
-2
src/lib/dhcpsrv/tests/test_utils.cc
src/lib/dhcpsrv/tests/test_utils.cc
+2
-2
No files found.
src/bin/dhcp4/config_parser.cc
View file @
76072004
...
...
@@ -265,7 +265,7 @@ protected:
Triplet
<
uint32_t
>
valid
=
getParam
(
"valid-lifetime"
);
stringstream
tmp
;
tmp
<<
addr
.
toText
()
<<
"/"
<<
(
int
)
len
tmp
<<
addr
<<
"/"
<<
(
int
)
len
<<
" with params t1="
<<
t1
<<
", t2="
<<
t2
<<
", valid="
<<
valid
;
LOG_INFO
(
dhcp4_logger
,
DHCP4_CONFIG_NEW_SUBNET
).
arg
(
tmp
.
str
());
...
...
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
View file @
76072004
...
...
@@ -456,7 +456,7 @@ TEST_F(Dhcpv4SrvTest, DiscoverHint) {
// lifetime is correct, that T1 and T2 are returned properly
checkAddressParams
(
offer
,
subnet_
);
EXPECT_EQ
(
offer
->
getYiaddr
()
.
toText
(),
hint
.
toText
()
);
EXPECT_EQ
(
offer
->
getYiaddr
()
,
hint
);
// Check identifiers
checkServerId
(
offer
,
srv
->
getServerID
());
...
...
@@ -495,7 +495,7 @@ TEST_F(Dhcpv4SrvTest, DiscoverNoClientId) {
// lifetime is correct, that T1 and T2 are returned properly
checkAddressParams
(
offer
,
subnet_
);
EXPECT_EQ
(
offer
->
getYiaddr
()
.
toText
(),
hint
.
toText
()
);
EXPECT_EQ
(
offer
->
getYiaddr
()
,
hint
);
// Check identifiers
checkServerId
(
offer
,
srv
->
getServerID
());
...
...
@@ -534,7 +534,7 @@ TEST_F(Dhcpv4SrvTest, DiscoverInvalidHint) {
// lifetime is correct, that T1 and T2 are returned properly
checkAddressParams
(
offer
,
subnet_
);
EXPECT_NE
(
offer
->
getYiaddr
()
.
toText
(),
hint
.
toText
()
);
EXPECT_NE
(
offer
->
getYiaddr
()
,
hint
);
// Check identifiers
checkServerId
(
offer
,
srv
->
getServerID
());
...
...
@@ -600,12 +600,12 @@ TEST_F(Dhcpv4SrvTest, ManyDiscovers) {
checkClientId
(
offer3
,
clientid3
);
// Finally check that the addresses offered are different
EXPECT_NE
(
addr1
.
toText
(),
addr2
.
toText
()
);
EXPECT_NE
(
addr2
.
toText
(),
addr3
.
toText
()
);
EXPECT_NE
(
addr3
.
toText
(),
addr1
.
toText
()
);
cout
<<
"Offered address to client1="
<<
addr1
.
toText
()
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
.
toText
()
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
.
toText
()
<<
endl
;
EXPECT_NE
(
addr1
,
addr2
);
EXPECT_NE
(
addr2
,
addr3
);
EXPECT_NE
(
addr3
,
addr1
);
cout
<<
"Offered address to client1="
<<
addr1
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
<<
endl
;
}
// Checks whether echoing back client-id is controllable, i.e.
...
...
@@ -665,7 +665,7 @@ TEST_F(Dhcpv4SrvTest, RequestBasic) {
// Check if we get response at all
checkResponse
(
ack
,
DHCPACK
,
1234
);
EXPECT_EQ
(
hint
.
toText
(),
ack
->
getYiaddr
().
toText
());
EXPECT_EQ
(
hint
,
ack
->
getYiaddr
());
// Check that address was returned from proper range, that its lease
// lifetime is correct, that T1 and T2 are returned properly
...
...
@@ -744,9 +744,9 @@ TEST_F(Dhcpv4SrvTest, ManyRequests) {
IOAddress
addr3
=
ack3
->
getYiaddr
();
// Check that every client received the address it requested
EXPECT_EQ
(
req_addr1
.
toText
(),
addr1
.
toText
()
);
EXPECT_EQ
(
req_addr2
.
toText
(),
addr2
.
toText
()
);
EXPECT_EQ
(
req_addr3
.
toText
(),
addr3
.
toText
()
);
EXPECT_EQ
(
req_addr1
,
addr1
);
EXPECT_EQ
(
req_addr2
,
addr2
);
EXPECT_EQ
(
req_addr3
,
addr3
);
// Check that the assigned address is indeed from the configured pool
checkAddressParams
(
ack1
,
subnet_
);
...
...
@@ -768,12 +768,12 @@ TEST_F(Dhcpv4SrvTest, ManyRequests) {
l
=
checkLease
(
ack3
,
clientid3
,
req3
->
getHWAddr
(),
addr3
);
// Finally check that the addresses offered are different
EXPECT_NE
(
addr1
.
toText
(),
addr2
.
toText
()
);
EXPECT_NE
(
addr2
.
toText
(),
addr3
.
toText
()
);
EXPECT_NE
(
addr3
.
toText
(),
addr1
.
toText
()
);
cout
<<
"Offered address to client1="
<<
addr1
.
toText
()
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
.
toText
()
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
.
toText
()
<<
endl
;
EXPECT_NE
(
addr1
,
addr2
);
EXPECT_NE
(
addr2
,
addr3
);
EXPECT_NE
(
addr3
,
addr1
);
cout
<<
"Offered address to client1="
<<
addr1
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
<<
endl
;
}
// Checks whether echoing back client-id is controllable
...
...
@@ -859,7 +859,7 @@ TEST_F(Dhcpv4SrvTest, RenewBasic) {
// Check if we get response at all
checkResponse
(
ack
,
DHCPACK
,
1234
);
EXPECT_EQ
(
addr
.
toText
(),
ack
->
getYiaddr
().
toText
());
EXPECT_EQ
(
addr
,
ack
->
getYiaddr
());
// Check that address was returned from proper range, that its lease
// lifetime is correct, that T1 and T2 are returned properly
...
...
src/bin/dhcp4/tests/dhcp4_test_utils.cc
View file @
76072004
...
...
@@ -136,7 +136,7 @@ void Dhcpv4SrvTest::messageCheck(const Pkt4Ptr& q, const Pkt4Ptr& a) {
EXPECT_TRUE
(
a
->
getOption
(
DHO_DHCP_SERVER_IDENTIFIER
));
// Check that something is offered
EXPECT_
TRUE
(
a
->
getYiaddr
().
toText
()
!=
"0.0.0.0"
);
EXPECT_
NE
(
"0.0.0.0"
,
a
->
getYiaddr
().
toText
()
);
}
::
testing
::
AssertionResult
...
...
@@ -309,14 +309,14 @@ Lease4Ptr Dhcpv4SrvTest::checkLease(const Pkt4Ptr& rsp,
Lease4Ptr
lease
=
LeaseMgrFactory
::
instance
().
getLease4
(
expected_addr
);
if
(
!
lease
)
{
cout
<<
"Lease for "
<<
expected_addr
.
toText
()
cout
<<
"Lease for "
<<
expected_addr
<<
" not found in the database backend."
;
return
(
Lease4Ptr
());
}
EXPECT_EQ
(
rsp
->
getYiaddr
()
.
toText
(),
expected_addr
.
toText
()
);
EXPECT_EQ
(
rsp
->
getYiaddr
()
,
expected_addr
);
EXPECT_EQ
(
expected_addr
.
toText
(),
lease
->
addr_
.
toText
()
);
EXPECT_EQ
(
expected_addr
,
lease
->
addr_
);
if
(
client_id
)
{
EXPECT_TRUE
(
*
lease
->
client_id_
==
*
id
);
}
...
...
src/bin/dhcp6/config_parser.cc
View file @
76072004
...
...
@@ -497,12 +497,12 @@ protected:
"parser error: interface (defined for locally reachable "
"subnets) and interface-id (defined for subnets reachable"
" via relays) cannot be defined at the same time for "
"subnet "
<<
addr
.
toText
()
<<
"/"
<<
(
int
)
len
);
"subnet "
<<
addr
<<
"/"
<<
(
int
)
len
);
}
}
stringstream
tmp
;
tmp
<<
addr
.
toText
()
<<
"/"
<<
static_cast
<
int
>
(
len
)
tmp
<<
addr
<<
"/"
<<
static_cast
<
int
>
(
len
)
<<
" with params t1="
<<
t1
<<
", t2="
<<
t2
<<
", pref="
<<
pref
<<
", valid="
<<
valid
;
...
...
src/bin/dhcp6/dhcp6_srv.cc
View file @
76072004
...
...
@@ -1193,7 +1193,7 @@ Dhcpv6Srv::createRemovalNameChangeRequest(const Lease6Ptr& lease) {
if
(
!
lease
->
duid_
)
{
isc_throw
(
isc
::
Unexpected
,
"DUID must be set when creating"
<<
" NameChangeRequest for DNS records removal for "
<<
lease
->
addr_
.
toText
()
);
<<
lease
->
addr_
);
}
isc
::
dhcp_ddns
::
D2Dhcid
dhcid
(
*
lease
->
duid_
,
hostname_wire
);
...
...
src/bin/dhcp6/tests/config_parser_unittest.cc
View file @
76072004
...
...
@@ -783,8 +783,7 @@ TEST_F(Dhcp6ParserTest, pdPoolBasics) {
// verify that it was interpreted correctly by checking the last address
// value.
isc
::
asiolink
::
IOAddress
prefixAddress
(
"2001:db8:1::"
);
EXPECT_EQ
(
lastAddrInPrefix
(
prefixAddress
,
64
).
toText
(),
p6
->
getLastAddress
().
toText
());
EXPECT_EQ
(
lastAddrInPrefix
(
prefixAddress
,
64
),
p6
->
getLastAddress
());
}
// Goal of this test is verify that a list of PD pools can be configured.
...
...
@@ -917,8 +916,7 @@ TEST_F(Dhcp6ParserTest, subnetAndPrefixDelegated) {
// verify that it was interpreted correctly by checking the last address
// value.
isc
::
asiolink
::
IOAddress
prefixAddress
(
"2001:db8:1::"
);
EXPECT_EQ
(
lastAddrInPrefix
(
prefixAddress
,
64
).
toText
(),
p6
->
getLastAddress
().
toText
());
EXPECT_EQ
(
lastAddrInPrefix
(
prefixAddress
,
64
),
p6
->
getLastAddress
());
}
...
...
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
View file @
76072004
...
...
@@ -642,12 +642,12 @@ TEST_F(Dhcpv6SrvTest, ManySolicits) {
checkClientId
(
reply3
,
clientid3
);
// Finally check that the addresses offered are different
EXPECT_NE
(
addr1
->
getAddress
()
.
toText
(),
addr2
->
getAddress
().
toText
());
EXPECT_NE
(
addr2
->
getAddress
()
.
toText
(),
addr3
->
getAddress
().
toText
());
EXPECT_NE
(
addr3
->
getAddress
()
.
toText
(),
addr1
->
getAddress
().
toText
());
cout
<<
"Offered address to client1="
<<
addr1
->
getAddress
()
.
toText
()
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
->
getAddress
()
.
toText
()
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
->
getAddress
()
.
toText
()
<<
endl
;
EXPECT_NE
(
addr1
->
getAddress
()
,
addr2
->
getAddress
());
EXPECT_NE
(
addr2
->
getAddress
()
,
addr3
->
getAddress
());
EXPECT_NE
(
addr3
->
getAddress
()
,
addr1
->
getAddress
());
cout
<<
"Offered address to client1="
<<
addr1
->
getAddress
()
<<
endl
;
cout
<<
"Offered address to client2="
<<
addr2
->
getAddress
()
<<
endl
;
cout
<<
"Offered address to client3="
<<
addr3
->
getAddress
()
<<
endl
;
}
// This test verifies that incoming REQUEST can be handled properly, that a
...
...
@@ -852,12 +852,12 @@ TEST_F(Dhcpv6SrvTest, ManyRequests) {
checkClientId
(
reply3
,
clientid3
);
// Finally check that the addresses offered are different
EXPECT_NE
(
addr1
->
getAddress
()
.
toText
(),
addr2
->
getAddress
().
toText
());
EXPECT_NE
(
addr2
->
getAddress
()
.
toText
(),
addr3
->
getAddress
().
toText
());
EXPECT_NE
(
addr3
->
getAddress
()
.
toText
(),
addr1
->
getAddress
().
toText
());
cout
<<
"Assigned address to client1="
<<
addr1
->
getAddress
()
.
toText
()
<<
endl
;
cout
<<
"Assigned address to client2="
<<
addr2
->
getAddress
()
.
toText
()
<<
endl
;
cout
<<
"Assigned address to client3="
<<
addr3
->
getAddress
()
.
toText
()
<<
endl
;
EXPECT_NE
(
addr1
->
getAddress
()
,
addr2
->
getAddress
());
EXPECT_NE
(
addr2
->
getAddress
()
,
addr3
->
getAddress
());
EXPECT_NE
(
addr3
->
getAddress
()
,
addr1
->
getAddress
());
cout
<<
"Assigned address to client1="
<<
addr1
->
getAddress
()
<<
endl
;
cout
<<
"Assigned address to client2="
<<
addr2
->
getAddress
()
<<
endl
;
cout
<<
"Assigned address to client3="
<<
addr3
->
getAddress
()
<<
endl
;
}
// This test verifies that incoming (positive) RENEW can be handled properly, that a
...
...
src/bin/dhcp6/tests/dhcp6_test_utils.cc
View file @
76072004
...
...
@@ -80,12 +80,12 @@ Dhcpv6SrvTest::checkLease(const DuidPtr& duid, const OptionPtr& ia_na,
Lease6Ptr
lease
=
LeaseMgrFactory
::
instance
().
getLease6
(
Lease
::
TYPE_NA
,
addr
->
getAddress
());
if
(
!
lease
)
{
std
::
cout
<<
"Lease for "
<<
addr
->
getAddress
()
.
toText
()
std
::
cout
<<
"Lease for "
<<
addr
->
getAddress
()
<<
" not found in the database backend."
;
return
(
Lease6Ptr
());
}
EXPECT_EQ
(
addr
->
getAddress
()
.
toText
(),
lease
->
addr_
.
toText
()
);
EXPECT_EQ
(
addr
->
getAddress
()
,
lease
->
addr_
);
EXPECT_TRUE
(
*
lease
->
duid_
==
*
duid
);
EXPECT_EQ
(
ia
->
getIAID
(),
lease
->
iaid_
);
EXPECT_EQ
(
subnet_
->
getID
(),
lease
->
subnet_id_
);
...
...
@@ -101,12 +101,12 @@ Dhcpv6SrvTest::checkPdLease(const DuidPtr& duid, const OptionPtr& ia_pd,
Lease6Ptr
lease
=
LeaseMgrFactory
::
instance
().
getLease6
(
Lease
::
TYPE_PD
,
prefix
->
getAddress
());
if
(
!
lease
)
{
std
::
cout
<<
"PD lease for "
<<
prefix
->
getAddress
()
.
toText
()
std
::
cout
<<
"PD lease for "
<<
prefix
->
getAddress
()
<<
" not found in the database backend."
;
return
(
Lease6Ptr
());
}
EXPECT_EQ
(
prefix
->
getAddress
()
.
toText
(),
lease
->
addr_
.
toText
()
);
EXPECT_EQ
(
prefix
->
getAddress
()
,
lease
->
addr_
);
EXPECT_TRUE
(
*
lease
->
duid_
==
*
duid
);
EXPECT_EQ
(
ia
->
getIAID
(),
lease
->
iaid_
);
EXPECT_EQ
(
subnet_
->
getID
(),
lease
->
subnet_id_
);
...
...
src/lib/asiolink/io_endpoint.cc
View file @
76072004
...
...
@@ -64,12 +64,12 @@ IOEndpoint::operator!=(const IOEndpoint& other) const {
ostream
&
operator
<<
(
ostream
&
os
,
const
IOEndpoint
&
endpoint
)
{
if
(
endpoint
.
getFamily
()
==
AF_INET6
)
{
os
<<
"["
<<
endpoint
.
getAddress
()
.
toText
()
<<
"]"
;
os
<<
"["
<<
endpoint
.
getAddress
()
<<
"]"
;
}
else
{
// In practice this should be AF_INET, but it's not guaranteed by
// the interface. We'll use the result of textual address
// representation opaquely.
os
<<
endpoint
.
getAddress
()
.
toText
()
;
os
<<
endpoint
.
getAddress
();
}
os
<<
":"
<<
boost
::
lexical_cast
<
string
>
(
endpoint
.
getPort
());
return
(
os
);
...
...
src/lib/asiolink/tests/io_address_unittest.cc
View file @
76072004
...
...
@@ -84,7 +84,7 @@ TEST(IOAddressTest, fromBytes) {
EXPECT_NO_THROW
({
addr
=
IOAddress
::
fromBytes
(
AF_INET
,
v4
);
});
EXPECT_EQ
(
addr
.
toText
(),
IOAddress
(
"192.0.2.3"
).
toText
(
));
EXPECT_EQ
(
addr
,
IOAddress
(
"192.0.2.3"
));
}
TEST
(
IOAddressTest
,
toBytesV4
)
{
...
...
src/lib/dhcp/iface_mgr.cc
View file @
76072004
...
...
@@ -190,7 +190,7 @@ void Iface::addUnicast(const isc::asiolink::IOAddress& addr) {
for
(
Iface
::
AddressCollection
::
const_iterator
i
=
unicasts_
.
begin
();
i
!=
unicasts_
.
end
();
++
i
)
{
if
(
*
i
==
addr
)
{
isc_throw
(
BadValue
,
"Address "
<<
addr
.
toText
()
isc_throw
(
BadValue
,
"Address "
<<
addr
<<
" already defined on the "
<<
name_
<<
" interface."
);
}
}
...
...
@@ -569,7 +569,7 @@ int IfaceMgr::openSocket(const std::string& ifname, const IOAddress& addr,
}
else
{
isc_throw
(
BadValue
,
"Failed to detect family of address: "
<<
addr
.
toText
()
);
<<
addr
);
}
}
...
...
@@ -644,7 +644,7 @@ int IfaceMgr::openSocketFromAddress(const IOAddress& addr,
}
// If we got here it means that we did not find specified address
// on any available interface.
isc_throw
(
BadValue
,
"There is no such address "
<<
addr
.
toText
()
);
isc_throw
(
BadValue
,
"There is no such address "
<<
addr
);
}
int
IfaceMgr
::
openSocketFromRemoteAddress
(
const
IOAddress
&
remote_addr
,
...
...
@@ -751,7 +751,8 @@ int IfaceMgr::openSocket6(Iface& iface, const IOAddress& addr, uint16_t port) {
if
(
bind
(
sock
,
(
struct
sockaddr
*
)
&
addr6
,
sizeof
(
addr6
))
<
0
)
{
close
(
sock
);
isc_throw
(
SocketConfigError
,
"Failed to bind socket "
<<
sock
<<
" to "
<<
addr
.
toText
()
isc_throw
(
SocketConfigError
,
"Failed to bind socket "
<<
sock
<<
" to "
<<
addr
<<
"/port="
<<
port
);
}
#ifdef IPV6_RECVPKTINFO
...
...
src/lib/dhcp/option6_iaaddr.cc
View file @
76072004
...
...
@@ -37,7 +37,7 @@ Option6IAAddr::Option6IAAddr(uint16_t type, const isc::asiolink::IOAddress& addr
valid_
(
valid
)
{
setEncapsulatedSpace
(
"dhcp6"
);
if
(
!
addr
.
isV6
())
{
isc_throw
(
isc
::
BadValue
,
addr_
.
toText
()
<<
" is not an IPv6 address"
);
isc_throw
(
isc
::
BadValue
,
addr_
<<
" is not an IPv6 address"
);
}
}
...
...
@@ -57,8 +57,7 @@ void Option6IAAddr::pack(isc::util::OutputBuffer& buf) {
buf
.
writeUint16
(
len
()
-
getHeaderLen
());
if
(
!
addr_
.
isV6
())
{
isc_throw
(
isc
::
BadValue
,
addr_
.
toText
()
<<
" is not an IPv6 address"
);
isc_throw
(
isc
::
BadValue
,
addr_
<<
" is not an IPv6 address"
);
}
buf
.
writeData
(
&
addr_
.
toBytes
()[
0
],
isc
::
asiolink
::
V6ADDRESS_LEN
);
...
...
@@ -93,7 +92,7 @@ std::string Option6IAAddr::toText(int indent /* =0 */) {
for
(
int
i
=
0
;
i
<
indent
;
i
++
)
tmp
<<
" "
;
tmp
<<
"type="
<<
type_
<<
"(IAADDR) addr="
<<
addr_
.
toText
()
tmp
<<
"type="
<<
type_
<<
"(IAADDR) addr="
<<
addr_
<<
", preferred-lft="
<<
preferred_
<<
", valid-lft="
<<
valid_
<<
endl
;
...
...
src/lib/dhcp/option6_iaprefix.cc
View file @
76072004
...
...
@@ -51,7 +51,7 @@ Option6IAPrefix::Option6IAPrefix(uint32_t type, OptionBuffer::const_iterator beg
void
Option6IAPrefix
::
pack
(
isc
::
util
::
OutputBuffer
&
buf
)
{
if
(
!
addr_
.
isV6
())
{
isc_throw
(
isc
::
BadValue
,
addr_
.
toText
()
<<
" is not an IPv6 address"
);
isc_throw
(
isc
::
BadValue
,
addr_
<<
" is not an IPv6 address"
);
}
buf
.
writeUint16
(
type_
);
...
...
src/lib/dhcp/option_custom.cc
View file @
76072004
...
...
@@ -54,7 +54,7 @@ OptionCustom::addArrayDataField(const asiolink::IOAddress& address) {
if
((
address
.
isV4
()
&&
definition_
.
getType
()
!=
OPT_IPV4_ADDRESS_TYPE
)
||
(
address
.
isV6
()
&&
definition_
.
getType
()
!=
OPT_IPV6_ADDRESS_TYPE
))
{
isc_throw
(
BadDataTypeCast
,
"invalid address specified "
<<
address
.
toText
()
<<
". Expected a valid IPv"
<<
address
<<
". Expected a valid IPv"
<<
(
definition_
.
getType
()
==
OPT_IPV4_ADDRESS_TYPE
?
"4"
:
"6"
)
<<
" address."
);
}
...
...
@@ -375,7 +375,7 @@ OptionCustom::dataFieldToText(const OptionDataType data_type,
break
;
case
OPT_IPV4_ADDRESS_TYPE
:
case
OPT_IPV6_ADDRESS_TYPE
:
text
<<
readAddress
(
index
)
.
toText
()
;
text
<<
readAddress
(
index
);
break
;
case
OPT_FQDN_TYPE
:
text
<<
readFqdn
(
index
);
...
...
@@ -443,7 +443,7 @@ OptionCustom::writeAddress(const asiolink::IOAddress& address,
if
((
address
.
isV4
()
&&
buffers_
[
index
].
size
()
!=
V4ADDRESS_LEN
)
||
(
address
.
isV6
()
&&
buffers_
[
index
].
size
()
!=
V6ADDRESS_LEN
))
{
isc_throw
(
BadDataTypeCast
,
"invalid address specified "
<<
address
.
toText
()
<<
". Expected a valid IPv"
<<
address
<<
". Expected a valid IPv"
<<
(
buffers_
[
index
].
size
()
==
V4ADDRESS_LEN
?
"4"
:
"6"
)
<<
" address."
);
}
...
...
src/lib/dhcp/option_definition.cc
View file @
76072004
...
...
@@ -497,7 +497,7 @@ OptionDefinition::writeToBuffer(const std::string& value,
asiolink
::
IOAddress
address
(
value
);
if
(
!
address
.
isV4
()
&&
!
address
.
isV6
())
{
isc_throw
(
BadDataTypeCast
,
"provided address "
<<
address
.
toText
()
<<
address
<<
" is not a valid IPv4 or IPv6 address."
);
}
OptionDataTypeUtil
::
writeAddress
(
address
,
buf
);
...
...
src/lib/dhcp/pkt4.cc
View file @
76072004
...
...
@@ -278,8 +278,8 @@ void Pkt4::repack() {
std
::
string
Pkt4
::
toText
()
{
stringstream
tmp
;
tmp
<<
"localAddr="
<<
local_addr_
.
toText
()
<<
":"
<<
local_port_
<<
" remoteAddr="
<<
remote_addr_
.
toText
()
tmp
<<
"localAddr="
<<
local_addr_
<<
":"
<<
local_port_
<<
" remoteAddr="
<<
remote_addr_
<<
":"
<<
remote_port_
<<
", msgtype="
<<
static_cast
<
int
>
(
getType
())
<<
", transid=0x"
<<
hex
<<
transid_
<<
dec
<<
endl
;
...
...
src/lib/dhcp/pkt6.cc
View file @
76072004
...
...
@@ -453,8 +453,8 @@ Pkt6::unpackTCP() {
std
::
string
Pkt6
::
toText
()
{
stringstream
tmp
;
tmp
<<
"localAddr=["
<<
local_addr_
.
toText
()
<<
"]:"
<<
local_port_
<<
" remoteAddr=["
<<
remote_addr_
.
toText
()
tmp
<<
"localAddr=["
<<
local_addr_
<<
"]:"
<<
local_port_
<<
" remoteAddr=["
<<
remote_addr_
<<
"]:"
<<
remote_port_
<<
endl
;
tmp
<<
"msgtype="
<<
static_cast
<
int
>
(
msg_type_
)
<<
", transid=0x"
<<
hex
<<
transid_
<<
dec
<<
endl
;
...
...
src/lib/dhcp/pkt_filter.cc
View file @
76072004
...
...
@@ -29,7 +29,7 @@ PktFilter::openFallbackSocket(const isc::asiolink::IOAddress& addr,
int
sock
=
socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
sock
<
0
)
{
isc_throw
(
SocketConfigError
,
"failed to create fallback socket for"
" address "
<<
addr
.
toText
()
<<
", port "
<<
port
" address "
<<
addr
<<
", port "
<<
port
<<
", reason: "
<<
strerror
(
errno
));
}
// Bind the socket to a specified address and port.
...
...
@@ -44,7 +44,7 @@ PktFilter::openFallbackSocket(const isc::asiolink::IOAddress& addr,
// Remember to close the socket if we failed to bind it.
close
(
sock
);
isc_throw
(
SocketConfigError
,
"failed to bind fallback socket to"
" address "
<<
addr
.
toText
()
<<
", port "
<<
port
" address "
<<
addr
<<
", port "
<<
port
<<
", reason: "
<<
strerror
(
errno
)
<<
" - is another DHCP server running?"
);
}
...
...
@@ -54,7 +54,7 @@ PktFilter::openFallbackSocket(const isc::asiolink::IOAddress& addr,
if
(
fcntl
(
sock
,
F_SETFL
,
O_NONBLOCK
)
!=
0
)
{
close
(
sock
);
isc_throw
(
SocketConfigError
,
"failed to set SO_NONBLOCK option on the"
" fallback socket, bound to "
<<
addr
.
toText
()
<<
", port "
" fallback socket, bound to "
<<
addr
<<
", port "
<<
port
<<
", reason: "
<<
strerror
(
errno
));
}
// Successfully created and bound a fallback socket. Return a descriptor.
...
...
src/lib/dhcp/pkt_filter_inet.cc
View file @
76072004
...
...
@@ -79,7 +79,8 @@ PktFilterInet::openSocket(const Iface& iface,
if
(
bind
(
sock
,
(
struct
sockaddr
*
)
&
addr4
,
sizeof
(
addr4
))
<
0
)
{
close
(
sock
);
isc_throw
(
SocketConfigError
,
"Failed to bind socket "
<<
sock
<<
" to "
<<
addr
.
toText
()
isc_throw
(
SocketConfigError
,
"Failed to bind socket "
<<
sock
<<
" to "
<<
addr
<<
"/port="
<<
port
);
}
...
...
src/lib/dhcp/tests/iface_mgr_unittest.cc
View file @
76072004
...
...
@@ -346,10 +346,10 @@ TEST_F(IfaceMgrTest, dhcp6Sniffer) {
cout << " pkt = new Pkt6(" << pkt->data_len_ << ");" << endl;
cout << " pkt->remote_port_ = " << pkt-> remote_port_ << ";" << endl;
cout << " pkt->remote_addr_ = IOAddress(\""
<< pkt->remote_addr_
.toText()
<< "\");" << endl;
<< pkt->remote_addr_ << "\");" << endl;
cout << " pkt->local_port_ = " << pkt-> local_port_ << ";" << endl;
cout << " pkt->local_addr_ = IOAddress(\""
<< pkt->local_addr_
.toText()
<< "\");" << endl;
<< pkt->local_addr_ << "\");" << endl;
cout << " pkt->ifindex_ = " << pkt->ifindex_ << ";" << endl;
cout << " pkt->iface_ = \"" << pkt->iface_ << "\";" << endl;
...
...
@@ -914,7 +914,7 @@ TEST_F(IfaceMgrTest, sendReceive6) {
EXPECT_EQ
(
0
,
memcmp
(
&
sendPkt
->
data_
[
0
],
&
rcvPkt
->
data_
[
0
],
rcvPkt
->
data_
.
size
()));
EXPECT_EQ
(
sendPkt
->
getRemoteAddr
()
.
toText
(),
rcvPkt
->
getRemoteAddr
().
toText
());
EXPECT_EQ
(
sendPkt
->
getRemoteAddr
()
,
rcvPkt
->
getRemoteAddr
());
// since we opened 2 sockets on the same interface and none of them is multicast,
// none is preferred over the other for sending data, so we really should not
...
...
src/lib/dhcp/tests/option_custom_unittest.cc
View file @
76072004
...
...
@@ -667,7 +667,7 @@ TEST_F(OptionCustomTest, ipv4AddressDataArray) {
for
(
int
i
=
0
;
i
<
3
;
++
i
)
{
IOAddress
address
(
"10.10.10.10"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
// Check that it is ok if buffer length is not a multiple of IPv4
...
...
@@ -717,7 +717,7 @@ TEST_F(OptionCustomTest, ipv6AddressDataArray) {
for
(
int
i
=
0
;
i
<
3
;
++
i
)
{
IOAddress
address
(
"fe80::4"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
// Check that it is ok if buffer length is not a multiple of IPv6
...
...
@@ -1451,7 +1451,7 @@ TEST_F(OptionCustomTest, unpack) {
for
(
int
i
=
0
;
i
<
3
;
++
i
)
{
IOAddress
address
(
"10.10.10.10"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
// Remove all addresses we had added. We are going to replace
...
...
@@ -1478,7 +1478,7 @@ TEST_F(OptionCustomTest, unpack) {
for
(
int
i
=
0
;
i
<
2
;
++
i
)
{
IOAddress
address
(
"10.10.10.10"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
}
...
...
@@ -1513,7 +1513,7 @@ TEST_F(OptionCustomTest, initialize) {
for
(
int
i
=
0
;
i
<
3
;
++
i
)
{
IOAddress
address
(
"fe80::4"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
// Clear addresses we had previously added.
...
...
@@ -1539,7 +1539,7 @@ TEST_F(OptionCustomTest, initialize) {
for
(
int
i
=
0
;
i
<
2
;
++
i
)
{
IOAddress
address
(
"10.10.10.10"
);
ASSERT_NO_THROW
(
address
=
option
->
readAddress
(
i
));
EXPECT_EQ
(
addresses
[
i
]
.
toText
(),
address
.
toText
()
);
EXPECT_EQ
(
addresses
[
i
]
,
address
);
}
}
...
...
src/lib/dhcp/tests/option_data_types_unittest.cc
View file @
76072004
...
...
@@ -93,7 +93,7 @@ TEST_F(OptionDataTypesTest, readAddress) {
// Check that the read address matches address that
// we used as input.
EXPECT_EQ
(
address
.
toText
(),
address_out
.
toText
()
);
EXPECT_EQ
(
address
,
address_out
);
// Check that an attempt to read the buffer as IPv6 address
// causes an error as the IPv6 address needs at least 16 bytes
...
...
@@ -109,7 +109,7 @@ TEST_F(OptionDataTypesTest, readAddress) {
address
=
asiolink
::
IOAddress
(
"2001:db8:1:0::1"
);
writeAddress
(
address
,
buf
);
EXPECT_NO_THROW
(
address_out
=
OptionDataTypeUtil
::
readAddress
(
buf
,
AF_INET6
));
EXPECT_EQ
(
address
.
toText
(),
address_out
.
toText
()
);
EXPECT_EQ
(
address
,
address_out
);
// Truncate the buffer and expect an error to be reported when
// trying to read it.
...
...
src/lib/dhcp/tests/pkt4_unittest.cc
View file @
76072004
...
...
@@ -316,10 +316,10 @@ TEST_F(Pkt4Test, fixedFields) {
EXPECT_EQ
(
dummySecs
,
pkt
->
getSecs
());
EXPECT_EQ
(
dummyFlags
,
pkt
->
getFlags
());
EXPECT_EQ
(
dummyCiaddr
.
toText
(),
pkt
->
getCiaddr
().
toText
());
EXPECT_EQ
(
dummyYiaddr
.
toText
(),
pkt
->
getYiaddr
().
toText
());
EXPECT_EQ
(
dummySiaddr
.
toText
(),
pkt
->
getSiaddr
().
toText
());
EXPECT_EQ
(
dummyGiaddr
.
toText
(),
pkt
->
getGiaddr
().
toText
());
EXPECT_EQ
(
dummyCiaddr
,
pkt
->
getCiaddr
());
EXPECT_EQ
(
dummyYiaddr
,
pkt
->
getYiaddr
());
EXPECT_EQ
(
dummySiaddr
,
pkt
->
getSiaddr
());
EXPECT_EQ
(
dummyGiaddr
,
pkt
->
getGiaddr
());
// Chaddr contains link-layer addr (MAC). It is no longer always 16 bytes
// long and its length depends on hlen value (it is up to 16 bytes now).
...
...
@@ -382,10 +382,10 @@ TEST_F(Pkt4Test, fixedFieldsUnpack) {
EXPECT_EQ
(
dummySecs
,
pkt
->
getSecs
());
EXPECT_EQ
(
dummyFlags
,
pkt
->
getFlags
());
EXPECT_EQ
(
dummyCiaddr
.
toText
(),
pkt
->
getCiaddr
().
toText
());
EXPECT_EQ
(
string
(
"1.2.3.4"
)
,
pkt
->
getYiaddr
().
toText
());
EXPECT_EQ
(
string
(
"192.0.2.255"
)
,
pkt
->
getSiaddr
().
toText
());
EXPECT_EQ
(
string
(
"255.255.255.255"
)
,
pkt
->
getGiaddr
().
toText
());
EXPECT_EQ
(
dummyCiaddr
,
pkt
->
getCiaddr
());
EXPECT_EQ
(
"1.2.3.4"
,
pkt
->
getYiaddr
().
toText
());
EXPECT_EQ
(
"192.0.2.255"
,
pkt
->
getSiaddr
().
toText
());
EXPECT_EQ
(
"255.255.255.255"
,
pkt
->
getGiaddr
().
toText
());
// chaddr is always 16 bytes long and contains link-layer addr (MAC)
EXPECT_EQ
(
0
,
memcmp
(
dummyChaddr
,
&
pkt
->
getHWAddr
()
->
hwaddr_
[
0
],
dummyHlen
));
...
...
src/lib/dhcp/tests/protocol_util_unittest.cc
View file @
76072004
...
...
@@ -359,7 +359,7 @@ TEST(ProtocolUtilTest, writeIpUdpHeader) {
in_buf
.
readData
(
src_addr_data
,
4
);
src_addr
=
IOAddress
::
fromBytes
(
AF_INET
,
src_addr_data
);
);
EXPECT_EQ
(
IOAddress
(
"192.0.2.1"
)
.
toText
(),
src_addr
.
toText
()
);
EXPECT_EQ
(
IOAddress
(
"192.0.2.1"
)
,
src_addr
);
// Validate destination address.
IOAddress
dest_addr
(
"::1"
);
...
...
@@ -368,7 +368,7 @@ TEST(ProtocolUtilTest, writeIpUdpHeader) {
in_buf
.
readData
(
dest_addr_data
,
4
);
dest_addr
=
IOAddress
::
fromBytes
(
AF_INET
,
dest_addr_data
);
);
EXPECT_EQ
(