Skip to content

Commit 6fb10c9

Browse files
committed
Set a value for SSDP notify interval
for esp8266 compatibility esp8266/Arduino#7110
1 parent d923c73 commit 6fb10c9

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

ESP32SSDP.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ static const char _ssdp_notify_template[] PROGMEM =
5454

5555
static const char _ssdp_packet_template[] PROGMEM =
5656
"%s" // _ssdp_response_template / _ssdp_notify_template
57-
"CACHE-CONTROL: max-age=%u\r\n" // SSDP_INTERVAL
57+
"CACHE-CONTROL: max-age=%u\r\n" // _interval
5858
"SERVER: %s UPNP/1.1 %s/%s\r\n" // _servername, _modelName, _modelNumber
5959
"USN: uuid:%s%s\r\n" // _uuid, _usn_suffix
6060
"%s: %s\r\n" // "NT" or "ST", _deviceType
@@ -115,6 +115,7 @@ _server(0),
115115
_timer(0),
116116
_port(80),
117117
_ttl(SSDP_MULTICAST_TTL),
118+
_interval(SSDP_INTERVAL),
118119
_replySlots{NULL},
119120
_respondToAddr{0,0,0,0},
120121
_respondToPort(0),
@@ -211,7 +212,7 @@ void SSDPClass::_send(ssdp_method_t method){
211212
int len = snprintf_P(buffer, sizeof(buffer),
212213
_ssdp_packet_template,
213214
valueBuffer,
214-
SSDP_INTERVAL,
215+
_interval,
215216
_servername.c_str(),
216217
_modelName, _modelNumber,
217218
_uuid, _usn_suffix,
@@ -481,7 +482,7 @@ void SSDPClass::_update(){
481482
}
482483
DEBUG_SSDP.println("]");
483484
#endif
484-
if(_notify_time == 0 || (millis() - _notify_time) > (SSDP_INTERVAL * 1000L)){
485+
if(_notify_time == 0 || (millis() - _notify_time) > (_interval * 1000L)){
485486
_notify_time = millis();
486487
// send notify with our root device type
487488
strlcpy(_respondType, "upnp:rootdevice", sizeof(_respondType));
@@ -560,6 +561,10 @@ void SSDPClass::setTTL(const uint8_t ttl){
560561
_ttl = ttl;
561562
}
562563

564+
void SSDPClass::setInterval(uint8_t interval) {
565+
_interval = interval;
566+
}
567+
563568
void SSDPClass::_onTimerStatic(SSDPClass* self) {
564569
#ifdef DEBUG_SSDP
565570
DEBUG_SSDP.println("Update");

ESP32SSDP.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ class SSDPClass{
101101
void setManufacturerURL(const char *url);
102102
void setHTTPPort(uint16_t port);
103103
void setTTL(uint8_t ttl);
104+
void setInterval(uint8_t interval);
104105

105106
protected:
106107
void _send(ssdp_method_t method);
@@ -113,6 +114,7 @@ class SSDPClass{
113114
SSDPTimer* _timer;
114115
uint16_t _port;
115116
uint8_t _ttl;
117+
uint8_t _interval;
116118

117119
ssdp_reply_slot_item_t *_replySlots[SSDP_MAX_REPLY_SLOTS];
118120
IPAddress _respondToAddr;

0 commit comments

Comments
 (0)