Skip to content

Commit b1796de

Browse files
author
Arto Kinnunen
authored
Merge pull request #14525 from jarlamsa/no_duplicate_status_cb_feature_wisun
Check for duplicate status callbacks before adding to the list
2 parents fd83ee5 + 5ed33de commit b1796de

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

features/netsocket/NetworkInterface.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@ static void call_all_event_listeners(NetworkInterface *iface, nsapi_event_t even
149149
void NetworkInterface::add_event_listener(mbed::Callback<void(nsapi_event_t, intptr_t)> status_cb)
150150
{
151151
iface_eventlist_t *event_list = get_interface_event_list_head();
152+
ns_list_foreach_safe(iface_eventlist_entry_t, entry, event_list) {
153+
if (entry->status_cb == status_cb && entry->iface == this) {
154+
return;
155+
}
156+
}
152157
iface_eventlist_entry_t *entry = new iface_eventlist_entry_t;
153158
entry->iface = this;
154159
entry->status_cb = status_cb;
@@ -163,7 +168,6 @@ void NetworkInterface::remove_event_listener(mbed::Callback<void(nsapi_event_t,
163168
if (entry->status_cb == status_cb && entry->iface == this) {
164169
ns_list_remove(event_list, entry);
165170
delete entry;
166-
return;
167171
}
168172
}
169173
}

0 commit comments

Comments
 (0)