oatpp / oatpp-ssdp

Oat++ extension module to work with SSDP protocol.
https://oatpp.io/
Apache License 2.0
2 stars 2 forks source link

Possibility to not respond on M-SEARCH if the ST doesn't match #6

Open EDDragonWolf opened 1 year ago

EDDragonWolf commented 1 year ago

Hi, I'm investigating your SSDP module and trying to use it to implement a custom SSDP discoverable device, but I found one thing that I cannot resolve. If I understood the UPnP specification correctly if the device (service) type doesn't match the ST header value provided in the M-SEARCH request the device/server shouldn't respond.

image

The source: http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf

But I didn't find any way how to not respond with Oat++. If I skip return or return nullptr the program simply crashes.

Of course, I can create an empty response without providing SSDP headers, but it will look like spam for the UDP sockets that listen to the SSDP port.

Is there a way to properly handle it without creating unnecessary responses?

lganzzzo commented 1 year ago

Hello @EDDragonWolf ,

Thanks for posting this issue!

At the moment there is no correct way how oatpp can process request without sending any response back... We have to check how to implement this

EDDragonWolf commented 1 year ago

Thank you!

I have also found a few other places where we need this functionality to properly handle SSDP:

image

image

The source: http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf