From: Marcin Siodelski Date: Fri, 18 Jul 2014 17:20:41 +0000 (+0200) Subject: [3269] Include client id in the server's response to Confirm. X-Git-Tag: trac3482_base~71^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=434cc52454cc0b5517ef7d7a243b926dfd10f112;p=thirdparty%2Fkea.git [3269] Include client id in the server's response to Confirm. --- diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc index 6272c3968b..52dffb87be 100644 --- a/src/bin/dhcp6/dhcp6_srv.cc +++ b/src/bin/dhcp6/dhcp6_srv.cc @@ -2323,7 +2323,8 @@ Dhcpv6Srv::processConfirm(const Pkt6Ptr& confirm) { // The server sends Reply message in response to Confirm. Pkt6Ptr reply(new Pkt6(DHCPV6_REPLY, confirm->getTransid())); - // Append necessary options. e.g. server id. + // Make sure that the necessary options are included. + copyDefaultOptions(confirm, reply); appendDefaultOptions(confirm, reply); // Number of addresses verified. If at the end it occurs that no addresses // were verified we will need to dicard the message. diff --git a/src/bin/dhcp6/tests/confirm_unittest.cc b/src/bin/dhcp6/tests/confirm_unittest.cc index 49fdfe18bd..9a80631083 100644 --- a/src/bin/dhcp6/tests/confirm_unittest.cc +++ b/src/bin/dhcp6/tests/confirm_unittest.cc @@ -164,9 +164,9 @@ TEST_F(ConfirmTest, directClientDifferentIAID) { // indicate the success. ASSERT_TRUE(client.receivedStatusCode()); ASSERT_EQ(STATUS_Success, client.getStatusCode()); - // Make sure that the server id has been included. + // Make sure that the server id and client id have been included. EXPECT_TRUE(client.getContext().response_->getOption(D6O_SERVERID)); - + EXPECT_TRUE(client.getContext().response_->getOption(D6O_CLIENTID)); ASSERT_EQ(2, client.getLeaseNum()); lease_client2 = client.getLease(1); @@ -178,8 +178,9 @@ TEST_F(ConfirmTest, directClientDifferentIAID) { ASSERT_NO_THROW(client.doConfirm()); ASSERT_TRUE(client.receivedStatusCode()); ASSERT_EQ(STATUS_NotOnLink, client.getStatusCode()); - // Make sure that the server id has been included. + // Make sure that the server id have been included. EXPECT_TRUE(client.getContext().response_->getOption(D6O_SERVERID)); + EXPECT_TRUE(client.getContext().response_->getOption(D6O_CLIENTID)); } @@ -220,8 +221,9 @@ TEST_F(ConfirmTest, relayedClient) { ASSERT_NO_THROW(client.doConfirm()); ASSERT_TRUE(client.receivedStatusCode()); ASSERT_EQ(STATUS_NotOnLink, client.getStatusCode()); - // Make sure that the server id has been included. + // Make sure that the server id and client id have been included. EXPECT_TRUE(client.getContext().response_->getOption(D6O_SERVERID)); + EXPECT_TRUE(client.getContext().response_->getOption(D6O_CLIENTID)); } // Test that the Confirm message without any addresses is discarded. @@ -261,8 +263,9 @@ TEST_F(ConfirmTest, relayedUnicast) { // indicate the success. ASSERT_TRUE(client.receivedStatusCode()); ASSERT_EQ(STATUS_Success, client.getStatusCode()); - // Make sure that the server id has been included. + // Make sure that the server id and client id have been included. EXPECT_TRUE(client.getContext().response_->getOption(D6O_SERVERID)); + EXPECT_TRUE(client.getContext().response_->getOption(D6O_CLIENTID)); } // This test checks that the Confirm message is discarded by the server if it