fixed deafult event handler init and reset

pull/6188/head
paul-szczepanek-arm 2018-01-10 15:12:59 +00:00
parent 67d1148a56
commit 1e3c1a96ec
3 changed files with 12 additions and 10 deletions

View File

@ -368,7 +368,7 @@ public:
virtual void setSecurityManagerEventHandler(SecurityManagerEventHandler* handler) {
if (handler) {
if (eventHandler != &defaultEventHandler) {
if (eventHandler && (eventHandler != &defaultEventHandler)) {
delete eventHandler;
}
eventHandler = handler;

View File

@ -149,15 +149,13 @@ public:
/* Entry points for the underlying stack to report events back to the user. */
public:
/* guaranteed to return valid pointer */
SecurityManagerEventHandler get_event_handler() {
return _event_handler;
SecurityManagerEventHandler& get_event_handler() {
/* guaranteed to be a valid pointer */
return *_event_handler;
}
void setSecurityManagerEventHandler(SecurityManagerEventHandler* event_handler) {
if (event_handler) {
_event_handler = event_handler;
}
void set_event_handler(SecurityManagerEventHandler &event_handler) {
_event_handler = &event_handler;
}
private:

View File

@ -99,10 +99,14 @@ public:
return pal.set_passkey(passkey);
}
void setSecurityManagerEventHandler(SecurityManagerEventHandler* handler) {
SecurityManager::setSecurityManagerEventHandler(handler);
pal.set_event_handler(*handler);
}
protected:
GenericSecurityManager(ble::pal::SecurityManager& palImpl) : pal(palImpl), saveStateEnabled(false) {
eventHandler = new SecurityManagerEventHandler();
pal.setSecurityManagerEventHandler(eventHandler);
pal.set_event_handler(defaultEventHandler);
}
public: