diff options
author | Darin Petkov <petkov@chromium.org> | 2011-06-10 15:12:57 -0700 |
---|---|---|
committer | Darin Petkov <petkov@chromium.org> | 2011-06-15 14:27:32 -0700 |
commit | 98dd6a0c9facbd208c6f08ad4150f7d384a8a5ea (patch) | |
tree | 44188bab82da5c7f5315abc6c56491f461ff7ad7 /dhcp_config.h | |
parent | 8fe2c7eea92541b5282929361a19ad519e0608a9 (diff) | |
download | shill-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.h | 16 |
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_; |