summaryrefslogtreecommitdiff
path: root/dhcp_config.h
diff options
context:
space:
mode:
authorDarin Petkov <petkov@chromium.org>2011-06-10 15:12:57 -0700
committerDarin Petkov <petkov@chromium.org>2011-06-15 14:27:32 -0700
commit98dd6a0c9facbd208c6f08ad4150f7d384a8a5ea (patch)
tree44188bab82da5c7f5315abc6c56491f461ff7ad7 /dhcp_config.h
parent8fe2c7eea92541b5282929361a19ad519e0608a9 (diff)
downloadshill-98dd6a0c9facbd208c6f08ad4150f7d384a8a5ea.tar.gz
shill: Implement DHCPConfig::ReleaseIP
Also, add some unit tests, and some cleanup. BUG=chromium-os:16365,chromium-os:16013 TEST=unit tests Change-Id: I896bce08c6f177c9d5f6c5772c9208e8223c39df Reviewed-on: http://gerrit.chromium.org/gerrit/2486 Reviewed-by: Chris Masone <cmasone@chromium.org> Reviewed-by: Darin Petkov <petkov@chromium.org> Tested-by: Darin Petkov <petkov@chromium.org>
Diffstat (limited to 'dhcp_config.h')
-rw-r--r--dhcp_config.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/dhcp_config.h b/dhcp_config.h
index 6d4ca2b0..1152d611 100644
--- a/dhcp_config.h
+++ b/dhcp_config.h
@@ -7,9 +7,9 @@
#include <base/file_path.h>
#include <base/memory/scoped_ptr.h>
+#include <dbus-c++/connection.h>
#include <glib.h>
#include <gtest/gtest_prod.h> // for FRIEND_TEST
-#include <dbus-c++/connection.h>
#include "shill/device.h"
#include "shill/ipconfig.h"
@@ -55,10 +55,18 @@ class DHCPConfig : public IPConfig {
const Configuration &configuration);
private:
+ friend class DHCPConfigTest;
FRIEND_TEST(DHCPConfigTest, GetIPv4AddressString);
FRIEND_TEST(DHCPConfigTest, ParseConfiguration);
+ FRIEND_TEST(DHCPConfigTest, ReleaseIP);
+ FRIEND_TEST(DHCPConfigTest, RenewIP);
+ FRIEND_TEST(DHCPConfigTest, RequestIP);
+ FRIEND_TEST(DHCPConfigTest, Restart);
+ FRIEND_TEST(DHCPConfigTest, RestartNoClient);
FRIEND_TEST(DHCPConfigTest, StartFail);
FRIEND_TEST(DHCPConfigTest, StartSuccess);
+ FRIEND_TEST(DHCPConfigTest, Stop);
+ FRIEND_TEST(DHCPProviderTest, CreateConfig);
static const char kDHCPCDPath[];
static const char kDHCPCDPathFormatLease[];
@@ -70,6 +78,10 @@ class DHCPConfig : public IPConfig {
// Stops dhcpcd if running.
void Stop();
+ // Stops dhcpcd if already running and then starts it. Returns true on success
+ // and false otherwise.
+ bool Restart();
+
// Parses |configuration| into |properties|. Returns true on success, and
// false otherwise.
bool ParseConfiguration(const Configuration& configuration,
@@ -82,6 +94,8 @@ class DHCPConfig : public IPConfig {
// Called when the dhcpcd client process exits.
static void ChildWatchCallback(GPid pid, gint status, gpointer data);
+ // Cleans up remaining state from a running client, if any, including freeing
+ // its GPid, exit watch callback, and state files.
void CleanupClientState();
DHCPProvider *provider_;