diff --git a/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c b/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c index 1c6f4bcf19..0aab9c2d36 100644 --- a/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c +++ b/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c @@ -144,6 +144,19 @@ esp_err_t esp_modem_netif_clear_default_handlers(void *h) if (ret != ESP_OK) { goto clear_event_failed; } + ret = esp_event_handler_unregister(IP_EVENT, IP_EVENT_PPP_GOT_IP, esp_netif_action_connected); + if (ret != ESP_OK) { + goto clear_event_failed; + } + ret = esp_event_handler_unregister(IP_EVENT, IP_EVENT_PPP_LOST_IP, esp_netif_action_disconnected); + if (ret != ESP_OK) { + goto clear_event_failed; + } + + // this event is registered while modem gets attached to netif. + // we don't have any detach functionality, so we unregister here and ignore potential error + esp_event_handler_unregister(NETIF_PPP_STATUS, ESP_EVENT_ANY_ID, on_ppp_changed); + return ESP_OK; clear_event_failed: