SSDP Server - working version provides SSDP based network discovery, and with a companion web server, may provide other functionalities.
Dependents: X10Svr SSDP_Server
Diff: SSDP.cpp
- Revision:
- 7:1e8c677e3d28
- Parent:
- 6:9df748509c3d
- Child:
- 8:e8f0dc2b78c4
diff -r 9df748509c3d -r 1e8c677e3d28 SSDP.cpp --- a/SSDP.cpp Sun Nov 18 04:01:58 2018 +0000 +++ b/SSDP.cpp Mon Nov 19 01:16:59 2018 +0000 @@ -84,13 +84,11 @@ ShowSignOfLife(2); int n = server.receiveFrom(client, buffer, sizeof(buffer)-1); if (n > 0) { - buffer[n] = '\0'; - } - if (n) { char * p = buffer; volatile int delay = 0; uint8_t mask = 0x00; // fragments we found in the received packet + buffer[n] = '\0'; INFO("SSDP receiveFrom %d bytes from %s:%d", n, client.get_address(), client.get_port()); INFO("SSDP\n%s", buffer); @@ -107,6 +105,8 @@ delay = atoi(p + 3); } else if (sw_stristr(p, "ST:") && sw_stristr(p, "upnp:rootdevice")) { mask |= 0x08; + } else if (sw_stristr(p, "ST:") && sw_stristr(p, "ssdp:all")) { + mask |= 0x08; } else if (sw_stristr(p, "HOST: ")) { mask |= 0x10; // HOST: 239.255.255.250:49152 char * pColon = strchr(p+6, ':');