shill: Make nl80211 broadcast callback a list of callbacks.
This will allow multiple callbacks to be called when an nl80211 message
is received. This allows a user to add a callback without displacing
others (e.g. disconnect metrics).
BUG=chromium-os:35468
TEST=unit tests, manual tests
Change-Id: I19d6cfac5754ea1d2a699de80d4465c49fec888c
Reviewed-on: https://gerrit.chromium.org/gerrit/36061
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Wade Guthrie <wdg@google.com>
Tested-by: Wade Guthrie <wdg@google.com>
diff --git a/shill_daemon.cc b/shill_daemon.cc
index ea17007..be82903 100644
--- a/shill_daemon.cc
+++ b/shill_daemon.cc
@@ -46,6 +46,7 @@
config->GetRunDirectory(),
config->GetStorageDirectory(),
config->GetUserStorageDirectoryFormat())),
+ callback80211_output_(config80211_),
callback80211_metrics_(config80211_, &metrics_) {
}
@@ -108,8 +109,9 @@
Config80211::kEventTypeRegulatory,
Config80211::kEventTypeMlme };
- // Install |callback80211_| in the Config80211 singleton.
- callback80211_metrics_.InstallAsCallback();
+ // Install callbacks in the Config80211 singleton.
+ callback80211_output_.InstallAsBroadcastCallback();
+ callback80211_metrics_.InstallAsBroadcastCallback();
for (size_t i = 0; i < arraysize(kEvents); i++) {
config80211_->SubscribeToEvents(kEvents[i]);