Contents
- Added the ServiceDesc library which allows for parsing of UPnP Service Description XML documents at runtime. This can be used to find out which actions are actually supported by a given device.
- The UPnP code generator allows to disable timestamps written to generated code.
- The UPnP SOAP transport now provides a thread-local Poco::RemotingNG::Context object which can be used to obtain the socket address of the client from within the service method.
- The UPnP SOAP Transport no longer uses the special XML empty element syntax and writes an opening and a closing tag instead, as some poorly implemented UPnP stacks cannot handle empty element syntax.
- The SimpleMediaServer sample has been improved for better compatibility with various UPnP/DLNA media players.
- The IGDClient class (in samples) no longer shuts down the ORB in its destructor.
- The UPnP code generator (UPnPGen) has a new eventSuffix configuration option in the output element, allowing to change the name of generated event member variables.
- The syntax of specifying Remoting attributes for method parameters has been changed and the UPnP code generator (UPnPGen) has been modified accordingly.
- IGDClient now has a getPortMapping() method and binds the socket with reuseaddr/reuseport.
- All files generated with previous versions of the UPnP code generator must be re-generated. Also, the files must be reprocessed by the new Remoting NG code generator.
- SimpleMediaServer sample now has some improvements which allows it to be accessed from consumer electronics devices such as smart TVs.
- It is now possible to set a User-Agent for UPnP SOAP requests in Poco::UPnP::SOAP::Transport.
- Poco::UPnP::SOAP::Serializer now uses "u" namespace prefix for method namespace instead of default "ns1" due to issues with broken third-party UPnP implementations that do not properly parse XML.
- Fixed a bug in UPnP code generator: eventing enabled is now the default for state variables if no sendEvents attribute is specified.
- Added option to disable chunked transfer encoding in UPnP SOAP transport to work with broken UPnP implementations.
- Poco::UPnP::SSDP::SSDPResponder: properly handle SERVER header in SSDP search response.
- Poco::UPnP::URN and Poco::UPnP::UniqueServiceName no longer store device UUIDs as Poco::UUID, but instead as std::string because some devices use invalid UUIDs that cannot be parsed by Poco::UUID.
- In order to improve compatibility with third-party implementations, Poco::UPnP::SSDP::SSDPResponder now uses a second socket to send out M-SEARCH and NOTIFY messages.
- Added InternetGateway1 library to samples.
- Added IGDClient application to samples.
- Added workaround to NetworkLight sample to make it discoverable by Windows XP, which has buggy XML device description parsing (XML declaration in device description, no whitespace before XML declaration).
- This is the first release of Applied Informatics Universal Plug and Play.