diff --git a/libraries/ESP8266SSDP/ESP8266SSDP.cpp b/libraries/ESP8266SSDP/ESP8266SSDP.cpp
index 1077f66fb..60bde31ed 100644
--- a/libraries/ESP8266SSDP/ESP8266SSDP.cpp
+++ b/libraries/ESP8266SSDP/ESP8266SSDP.cpp
@@ -57,7 +57,7 @@ const char* _ssdp_notify_template =
const char* _ssdp_packet_template =
"%s" // _ssdp_response_template / _ssdp_notify_template
"CACHE-CONTROL: max-age=%u\r\n" // SSDP_INTERVAL
- "SERVER: Arduino/1.0 UPNP/1.1 %s/%u.%u\r\n" // _modelName, _modelNumber->major, _modelNumber->minor
+ "SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n" // _modelName, _modelNumber
"USN: uuid:%s-%02X%02X%02X%02X%02X%02X\r\n" // _base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5]
"LOCATION: http://%u.%u.%u.%u/ssdp/schema.xml\r\n" // WiFi.localIP()
"\r\n";
@@ -80,7 +80,7 @@ const char* _ssdp_schema_template =
"%s"
"%s"
"%s"
- "%u.%u"
+ "%s"
"%s"
"%s"
"%s"
@@ -96,13 +96,12 @@ SSDPClass::SSDPClass(){
_presentationURL = (char*)os_malloc(SSDP_PRESENTATION_URL_SIZE);
_serialNumber = (char*)os_malloc(SSDP_SERIAL_NUMBER_SIZE);
_modelName = (char*)os_malloc(SSDP_MODEL_NAME_SIZE);
- _modelNumber = (ssdp_version_t*)os_malloc(SSDP_MODEL_VERSION_SIZE);
+ _modelNumber = (char*)os_malloc(SSDP_MODEL_VERSION_SIZE);
_modelURL = (char*)os_malloc(SSDP_MODEL_URL_SIZE);
_manufacturer = (char*)os_malloc(SSDP_MANUFACTURER_SIZE);
_manufacturerURL = (char*)os_malloc(SSDP_MANUFACTURER_URL_SIZE);
- _modelNumber->major = 0;
- _modelNumber->minor = 0;
+ _modelNumber[0] = '\0';
_friendlyName[0] = '\0';
_presentationURL[0] = '\0';
_serialNumber[0] = '\0';
@@ -165,7 +164,7 @@ void SSDPClass::send(ssdp_method_t method){
_server.printf(_ssdp_packet_template,
(method == NONE)?_ssdp_response_template:_ssdp_notify_template,
SSDP_INTERVAL,
- _modelName, _modelNumber->major, _modelNumber->minor,
+ _modelName, _modelNumber,
_base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5],
(uint8_t)(ip & 0xFF), (uint8_t)((ip >> 8) & 0xFF), (uint8_t)((ip >> 16) & 0xFF), (uint8_t)((ip >> 24) & 0xFF)
);
@@ -179,7 +178,7 @@ void SSDPClass::schema(WiFiClient client){
_presentationURL,
_serialNumber,
_modelName,
- _modelNumber->major, _modelNumber->minor,
+ _modelNumber,
_modelURL,
_manufacturer,
_manufacturerURL,
@@ -300,9 +299,8 @@ void SSDPClass::setModelName(char *name){
strcpy(_modelName, name);
}
-void SSDPClass::setModelNumber(uint8_t major, uint8_t minor){
- _modelNumber->major = major;
- _modelNumber->minor = minor;
+void SSDPClass::setModelNumber(char *num){
+ strcpy(_modelNumber, num);
}
void SSDPClass::setModelURL(char *url){
diff --git a/libraries/ESP8266SSDP/ESP8266SSDP.h b/libraries/ESP8266SSDP/ESP8266SSDP.h
index 765809179..04fb41fab 100644
--- a/libraries/ESP8266SSDP/ESP8266SSDP.h
+++ b/libraries/ESP8266SSDP/ESP8266SSDP.h
@@ -41,7 +41,7 @@ License (MIT license):
#define SSDP_PRESENTATION_URL_SIZE 32
#define SSDP_MODEL_NAME_SIZE 32
#define SSDP_MODEL_URL_SIZE 32
-#define SSDP_MODEL_VERSION_SIZE 2
+#define SSDP_MODEL_VERSION_SIZE 32
#define SSDP_MANUFACTURER_SIZE 32
#define SSDP_MANUFACTURER_URL_SIZE 32
@@ -51,12 +51,6 @@ typedef enum {
NOTIFY
} ssdp_method_t;
-typedef struct {
- uint8_t major;
- uint8_t minor;
-} ssdp_version_t;
-
-
class SSDPClass{
public:
SSDPClass();
@@ -71,7 +65,7 @@ class SSDPClass{
void setURL(char *url);
void setSerialNumber(char *serialNumber);
void setModelName(char *name);
- void setModelNumber(uint8_t major, uint8_t minor);
+ void setModelNumber(char *num);
void setModelURL(char *url);
void setManufacturer(char *name);
void setManufacturerURL(char *url);
@@ -92,7 +86,7 @@ class SSDPClass{
char *_manufacturerURL;
char *_modelName;
char *_modelURL;
- ssdp_version_t *_modelNumber;
+ char *_modelNumber;
};
extern SSDPClass SSDP;
diff --git a/libraries/ESP8266SSDP/examples/SSDP.ino b/libraries/ESP8266SSDP/examples/SSDP.ino
index fa7753622..236773abf 100644
--- a/libraries/ESP8266SSDP/examples/SSDP.ino
+++ b/libraries/ESP8266SSDP/examples/SSDP.ino
@@ -38,7 +38,7 @@ void setup() {
SSDP.setSerialNumber((char*)"A0123456789");
SSDP.setURL((char*)"/");
SSDP.setModelName((char*)"ESP-12e");
- SSDP.setModelNumber(1, 0);
+ SSDP.setModelNumber((char*)"1.0");
SSDP.setModelURL((char*)"http://12e.espressif.com");
SSDP.setManufacturer((char*)"Espressif");
SSDP.setManufacturerURL((char*)"http://espressif.com");
@@ -54,4 +54,4 @@ void loop() {
HTTP.handleClient();
SSDP.update();
delay(1);
-}
\ No newline at end of file
+}