Skip to content
25 changes: 24 additions & 1 deletion libraries/ESP8266SSDP/ESP8266SSDP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,30 @@ SSDPClass::SSDPClass() :
}

SSDPClass::~SSDPClass() {
delete _timer;
#ifdef DEBUG_SSDP
DEBUG_SSDP.printf("SSDP end ... ");
#endif
if(_timer) {
ETSTimer* tm = &(_timer->timer);
os_timer_disarm(tm);
delete _timer;
}

if (_server) {
_server->unref();
_server = 0;
}

IPAddress local = WiFi.localIP();
IPAddress mcast(SSDP_MULTICAST_ADDR);
if (igmp_leavegroup(local, mcast) != ERR_OK ) {
#ifdef DEBUG_SSDP
DEBUG_SSDP.printf("SSDP failed to leave igmp group\n");
#endif
}
#ifdef DEBUG_SSDP
DEBUG_SSDP.printf("ok\n");
#endif
}

bool SSDPClass::begin() {
Expand Down