[photon/p1] wlan: make sure to close all sockets when deinitializing WICED connectivity subsystem #2313
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Entering listening mode on Photon and P1 does not invalidate current sockets, while at the same time
wlan_restart()
will call into WICED to deinitialize LwIP stack, which invalidates netconns that are in use by WICED sockets and our socket layer.Performing socket actions on a handle that has a reference to invalidated WICED socket/LwIP netconn may cause a crash.
Solution
Make sure to call
socket_close_all()
inwlan_restart()
to avoid getting into this state.Steps to Test
wiring/no_fixture
:WIFI_15_entering_listening_mode_and_enabling_softap_closes_active_sockets_cleanly
Example App
N/A
References
Completeness