Second-infinite is deprecated

This commit is contained in:
Thomas Bernard 2016-02-16 10:57:22 +01:00
parent 92e6173a97
commit a712218af8
1 changed files with 15 additions and 0 deletions

View File

@ -611,6 +611,21 @@ ProcessHTTPSubscribe_upnphttp(struct upnphttp * h, const char * path)
h->req_CallbackLen, h->req_buf + h->req_CallbackOff,
h->req_Timeout);
syslog(LOG_DEBUG, "SID '%.*s'", h->req_SIDLen, h->req_buf + h->req_SIDOff);
#if defined(UPNP_STRICT) && (UPNP_VERSION_MAJOR > 1) || (UPNP_VERSION_MINOR > 0)
/*if(h->req_Timeout < 1800) {*/
if(h->req_Timeout == 0) {
/* Second-infinite is forbidden with UDA v1.1 and later :
* (UDA 1.1 : 4.1.1 Subscription)
* UPnP 1.1 control points MUST NOT subscribe using keyword infinite,
* UPnP 1.1 devices MUST NOT set actual subscription durations to
* "infinite". The presence of infinite in a request MUST be silently
* ignored by a UPnP 1.1 device (the presence of infinite is handled
* by the device as if the TIMEOUT header field in a request was not
* present) . The keyword infinite MUST NOT be returned by a UPnP 1.1
* device. */
h->req_Timeout = 1800; /* default to 30 minutes */
}
#endif /* UPNP_STRICT */
if((h->req_CallbackOff <= 0) && (h->req_SIDOff <= 0)) {
/* Missing or invalid CALLBACK : 412 Precondition Failed.
* If CALLBACK header is missing or does not contain a valid HTTP URL,