Nexus: Clean up supplicant events, protocol, and continue plumbing
- Create SupplicantEvent classes for events
- New SupplicantEventFactory for creating events
- Extract Controller -> NetworkManager callbacks into IControllerHandler
- Move ScanResult handling from Supplicant -> WifiController
- Plumb more 'onConnected()' code
- Instead of re-creating NetworkList every-time, merge in
new entries
- Extract SupplicantListener -> Supplicant callbacks into
ISupplicantEventHandler
- Move SupplicantListener callback handling to WifiController
- Add unlocked version of lookupNetwork()
- Save supplicant config after setting a WifiNetwork variable
- Move property registration from WifiNetwork -> Supplicant
- Change wifi enable broadcast messages
- Add 3 new events: 'onAssociating', 'onAssociated', 'onConnectionTimeout'
- Add support for handling KeyManagement
Signed-off-by: San Mehat <san@google.com>
diff --git a/nexus/VpnController.cpp b/nexus/VpnController.cpp
index 1246703..add4dc3 100644
--- a/nexus/VpnController.cpp
+++ b/nexus/VpnController.cpp
@@ -25,18 +25,19 @@
#include "PropertyManager.h"
#include "VpnController.h"
-VpnController::VpnController(PropertyManager *propmngr) :
- Controller("VPN", propmngr) {
+VpnController::VpnController(PropertyManager *propmngr,
+ IControllerHandler *handlers) :
+ Controller("VPN", propmngr, handlers) {
mEnabled = false;
- propmngr->registerProperty("vpn.enabled", this);
- propmngr->registerProperty("vpn.gateway", this);
}
int VpnController::start() {
+ mPropMngr->registerProperty("vpn.enabled", this);
return 0;
}
int VpnController::stop() {
+ mPropMngr->unregisterProperty("vpn.enabled");
return 0;
}
@@ -49,8 +50,13 @@
return 0;
rc = (en ? enable() : disable());
- if (!rc)
+ if (!rc) {
mEnabled = en;
+ if (en)
+ mPropMngr->unregisterProperty("vpn.gateway");
+ else
+ mPropMngr->unregisterProperty("vpn.gateway");
+ }
return rc;
} if (!strcmp(name, "vpn.gateway")) {
if (!inet_aton(value, &mVpnGateway)) {