commit | 7d378eab9550dab43d7b2ac74b2f885a6de0bd04 | [log] [tgz] |
---|---|---|
author | Jason Simmons <jsimmons@google.com> | Mon Mar 23 17:23:37 2015 -0700 |
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | Wed Mar 25 01:34:00 2015 +0000 |
tree | 3203ba647c1319dcd4d7275e267111b6aad3bf33 | |
parent | 81448bf3aa239726099874f0dff5c2b293873aca [diff] |
shill: ensure that the reference to the ppp_device_ is dropped in StopPPP. When the PPP daemon terminates, Cellular::OnPPPDied and OnPPPDisconnected are called. OnPPPDisconnected releases the ppp_task_ and then calls Disconnect/StopPPP. StopPPP was exiting early if ppp_task_ is null. Since in this case it is null, StopPPP did not drop the reference to ppp_device_. The DBus object associated with the ppp_device_ remained registered. So when PPP reconnects, Shill will fail an assertion because the new PPP device duplicates the path of an existing DBus object. This patch ensures that the OnPPPDied flow will drop the refernece to the ppp_device_. BUG=b:19666697 TEST=Ran "killall -HUP pppd" and verified that Shill could survive pppd dying. Change-Id: Id565f39fc7054ca5a245fe872d14ea57a21b01fc Reviewed-on: https://chromium-review.googlesource.com/262056 Reviewed-by: mukesh agrawal <quiche@chromium.org> Commit-Queue: mukesh agrawal <quiche@chromium.org> Tested-by: mukesh agrawal <quiche@chromium.org>