From a22e4a5409b597c0c0805971dbaf04bb2c44c18e Mon Sep 17 00:00:00 2001 From: nia Date: Mon, 2 Sep 2019 12:58:54 +0000 Subject: [PATCH] libupnp: Update to 1.8.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******************************************************************************* Version 1.8.4 ******************************************************************************* 2017-11-17 Marcelo Jimenez GitHub #57 - 1.8.3 broke ABI without changing SONAME Opened by jcowgill This change in 1.8.3 broke the ABI and therefore the SONAME should have been changed (ie: age reset to 0): EXPORT_SPEC int UpnpAddVirtualDir( /*! [in] The name of the new directory mapping to add. */ - const char *dirName); + const char *dirName, + /*! [in] The cookie to associated with this virtual directory */ + const void *cookie, + /*! [out] The cookie previously associated, if mapping is already present */ + const void **oldcookie); If only the cookie argument was added, you could probably get away with this because all that would happen is that a garbage value is passed around without being used. With the addition of oldcookie, any old programs will not initialise this value and will probably segfault when libupnp tries to write to it. ******************************************************************************* Version 1.8.3 ******************************************************************************* 2017-09-07 Dave Overton Add userdata/cookie to virtualDir callbacks As with the main Device APIs (UpnpRegisterRootDevice etc), it is useful to have a userdata/cookie pointer returned with each callback. This patch allows one cookie per registered path which enables a variety of functionality in client apps. 2017-09-03 Uwe Kleine-König Fix large file system support libupnp uses large file support (if available). If a program linking to libupnp does not however it creates mismatches in callframes. See Issue #51 for the results. This simplifies LFS support by using AC_SYS_LARGEFILE_SENSITIVE instead of manually defining _LARGE_FILE_SOURCE and _FILE_OFFSET_BITS (which is useless on architectures where the size of off_t is fixed). Furthermore additional logic is introduced to catch a library user without 64 bit wide off_t on such a platform. upnp.h also makes use of off_t, but as this file includes FileInfo.h, the latter is the single right place for this check. This fixes #52 which is a generalized variant of #51. 2017-08-19 Uwe Kleine-König configure.ac: Drop copying of include files The comment suggests this is for windows compilation. It should be easily possible to add the source directory as an include path to the windows compiler, too, so drop this. (Otherwise this should better be done using AC_CONFIG_COMMANDS.) 2017-09-03 Uwe Kleine-König Let source code use autoconfig.h not the public upnpconfig.h The former is the one supposed to be used for internal code. upnpconfig.h is only for public stuff. 2017-08-19 Uwe Kleine-König configure.ac: Fix typo s/optionnal/optional/ 2017-08-08 Marcelo Jimenez Fix broken samples when configured with --disable-ipv6. ******************************************************************************* Version 1.8.2 ******************************************************************************* 2017-07-24 Michael Osipov Initialize in_addr and in6_addr to avoid garbage output if never written If any of the address families isn't available in UpnpGetIfInfo(), especially IPv6, always init both structs with zero to avoid garbage output with inet_ntop() to gIF_IPV4 and gIF_IPV6. See v00d00/gerbera#112 (https://github.com/v00d00/gerbera/issues/112) for consequences: bind for IPv6 will fail. 2013-10-28 Vladimir Fedoseev Attached patch allows to register multiple clients from single app. 2014-11-14 Philippe Hi - I recently compiled libupnp on C++ Builder XE7 and had to do a few changes to make it work. In thase this helps, I've generated a small patch file. 2015-04-30 Hugo Beauzée-Luyssen When building using a strict mode (-std=c++11 instead of -std=gnu++11, for instance), the WIN32 macro isn't defined. The attached patch fixes it by using _WIN32 instead. 2015-02-06 Jean-Francois Dockes Queue events on their subscription object instead of adding them to the thread pool immediately. Events destined for a non-responding control point would flood the thread pool and prevent correct dispatching to other clients, sometimes to the point of disabling the device. Events are now queued without allocating thread resources and properly discarded when a client is not accepting them. 2015-02-03 Jean-Francois Dockes genaInitNotify()/genaInitNotifyExt() and genaNotifyAll()/genaNotifyAllExt() are relatively complicated methods which only differ by the format of an input parameter. This update extracts the common code for easier maintenance, esp. relating to the queueing modifications to follow. ******************************************************************************* Version 1.8.1 ******************************************************************************* 2017-04-26 Marcelo Jimenez Fix some compiler warning messages on md5.c 2017-03-07 Fabrice Fontaine Enable IPv6 by default 2017-03-07 Fabrice Fontaine Move threadutil source code to libupnp With this patch, threadutil library is removed as the only public header that has been kept in 1.8.x is ithread.h which is mainly a wrapper to pthread with inline functions. threadutil source code will now be a part of libupnp library. ******************************************************************************* Version 1.8.0 ******************************************************************************* 2014-01-15 Peng Fix memory leaks. 2013-04-27 Thijs Schreijer Renamed SCRIPTSUPPORT to IXML_HAVE_SCRIPTSUPPORT for consistency. Also updated autoconfig and automake files, so it also works on non-windows. Option is enabled by default, because it adds an element to the node structure. Not using an available field is better than accidentally using an unavailable field. 2012-07-11 Thijs Schreijer Changed param to const UpnpAcceptSubscriptionExt() for consistency 2012-06-07 Thijs Schreijer updated ixmlDocument_createAttributeEx() and ixmlDocument_createAttribute() to use parameter DOMString instead of char * (same but now consistent) 2012-05-06 Thijs Schreijer Added script support (directive SCRIPTSUPPORT) for better support of garbage collected script languages. The node element gets a custom tag through ixmlNode_setCTag() and ixmlNode_getCTag(). And a callback upon releasing the node resources can be set using ixmlSetBeforeFree() See updated readme for usage. 2012-03-24 Fabrice Fontaine SF Bug Tracker id 3510595 - UpnpDownloadXmlDoc : can't get the file Submitted: Marco Virgulti ( mvirg83 ) - 2012-03-23 10:08:08 PDT There is a problem, perhaps, during downloading a document by UpnpDownloadXmlDoc. During debugging i've found that in an not exported api (unfortunately i forgot the code line...) where it is setted a local variable "int timeout" to -1 then passed directly to another function for sending data through tcp socket. I patched this setting it to 0 (there is an IF section that exits if timeout < 0). It is normal behavior or it is a bug? 2012-03-08 Fabrice Fontaine Check for NULL pointer in TemplateSource.h calloc can return NULL so check for NULL pointer in CLASS##_new and CLASS##_dup. 2012-03-08 Fabrice Fontaine Replace strcpy with strncpy in get_hoststr Replace strcpy with strncpy to avoid buffer overflow. 2012-03-08 Fabrice Fontaine Memory leak fix in handle_query_variable variable was never freed. 2011-02-07 Chandra Penke Add HTTPS support using OpenSSL. HTTPS support is optional and can be enabled by passing the --enable-open-ssl argument to the configure script. The following methods are introduced to the public API: UpnpInitOpenSslContext When enabled, HTTPS can be used by using "https://" instead of "http://" when passing URLs to the HTTP Client API. 2011-02-07 Chandra Penke Refactor HTTP Client API to be more generic. The following features are added: - Support for persistent HTTP connections (reusing HTTP connections). Tthis is still a work in progress and relies on applications to interpret the 'Connection' header appropriately. - Support for specifying request headers when making requests. Useful for interacting with web services that require custom headers. - Support for retrieving response headers (this is a API only change, some more work needs to be done to implement the actual functionality. Specifically copy_msg_headers in httpreadwrite.c needs to be implemented) - Common API for all HTTP methods. - Support for PUT, and DELETE methods. The following methods are introduced to the public HTTP Client API UpnpOpenHttpConnection, UpnpCloseHttpConnection, UpnpMakeHttpRequest, UpnpWriteHttpRequest, UpnpEndHttpRequest, UpnpGetHttpResponse, UpnpReadHttpResponse. Removed a lot of duplicate code in httpreadwrite.c 2011-01-17 Chandra Penke Include upnpconfig.h in FileInfo.h to automatically include large file macros 2011-01-17 Chandra Penke Fix for warnings Apple systems related to macros defined in list.h. In list.h, in apple systems, undefine the macros prior to defining them. 2011-01-16 Marcelo Jimenez Fix for UpnpFileInfo_get_LastModified() in http_MakeMessage(). UpnpFileInfo_get_LastModified() returns time_t, and http_MakeMessage() takes a "time_t *". Thanks to Chandra Penke for pointing the bug. 2010-11-22 Marcelo Jimenez Template object for ssdp_ResultData. 2010-11-10 Fabrice Fontaine Support for "polling" select in sock_read_write. Currently, in sock_read_write function, if the timeout is 0, pupnp realizes a "blocking" select (with an infinite timeout). With this patch, if timeout is set to 0, pupnp will realize a "polling" select and returns immediately if it can not read or write on the socket. This is very useful for GENA notifications when pupnp is trying to send events to a disconnected Control Point. "Blocking" select can now be done by putting a negative timeout value. 2010-09-18 Chandra Penke This is a minor build fix. The new Template*.h files added in the latest code need to be exported. Patch against the latest sources is attached. 2010-08-22 Marcelo Jimenez * upnp/src/api/Discovery.c: Fix a serious bug and memory leak in UpnpDiscovery_strcpy_DeviceType(). Thanks to David Blanchet for the patch. 2010-04-25 Marcelo Jimenez Separation of the ClientSubscription object. 2010-04-24 Marcelo Jimenez Protect the object destructors agains null pointers on deletion, which should be something valid. 2010-03-27 Marcelo Jimenez SF Patch Tracker [ 2987390 ] upnp_debug vs. ixml_debug Thanks for the load of updates, I'm still assimilating them ! Could I make a suggestion though? The addition of printNodes(IXML_Node) to upnpdebug a dds a new dependency on ixml.h for anything using upnpdebug.h. I'm making quite a bit of use of upnpdebug in porting things to version 1.8.0, and I'd prefer it if printNodes could be added to ixmldebug.h instead. I'm attach ing a patch, what do you think ? Nick 2010-03-27 Marcelo Jimenez * Forward port of svn revision 505: SF Patch Tracker [ 2836704 ] Patch for Solaris10 compilation and usage. Submitted By: zephyrus ( zephyrus00jp ) 2010-03-20 Marcelo Jimenez * SF Patch Tracker [ 2969188 ] 1.8.0: patch for FreeBSD compilation Submitted By: Nick Leverton (leveret) Fix the order of header inclusion for FreeBSD. 2010-03-20 Marcelo Jimenez * Forward port of svn revision 502: SF Patch Tracker [ 2836704 ] Search for nested serviceList (not stopping at the first lis Submitted By: zephyrus ( zephyrus00jp ) Internet Gateway Device description contains nested serviceList (rootdevice -> servicelist, subdevice and subdevice has the lower-level serviceList, etc..) Unfrotunately, the sample code sample_util.c used by tv_device sample, etc. has a code that looks for only the first top-level serviceList. This results in the failure to read all the services of an IGD xml description. Attached patch modifies this behavior and looks for the service by visiting all the serviceList in xml document in turn. With the modified patch (ad additional modification), I could simulate an IGD device and created a modified control program for that. Patch against 1.6.6 TIA. 2010-03-20 Marcelo Jimenez * SF Patch Tracker [ 2973319 ] Problem in commit 499 Submitted By: Nick Leverton (leveret) Afraid that this doesn't compile, it seems retval should be retVal in two places. 2010-03-16 Marcelo Jimenez * Fix for the ithread_mutex_unlock() logic in UpnpInit(). Thanks for Nicholas Kraft. 2010-03-15 Marcelo Jimenez * SF Patch Tracker [ 2962606 ] Autorenewal errors: invalid SID, too-short renewal interval Submitted By: Nick Leverton (leveret) Auto-renewals send an invalid SID due to a missing UpnpString_get_String call. They also send a renewal interval of 0 instead of copying it from the original subscription. 2010-03-15 Marcelo Jimenez * SF Patch Tracker [ 2964685 ] patch for avoiding inet_ntoa (1.8.0) Submitted By: Nick Leverton (leveret) Seems like SF's tracker won't let me add a patch to someone else's issue ?! This refers to https://sourceforge.net/support/tracker.php?aid=2724578 The calls to inet_ntoa are in getlocalhostname(), which is called from UpnpInit when it is returning the bound IP address. UpnpInit/getlocalhostname hasn't been updated to IPv6, I presume this is deliberate so that it doesn't start returning IPv6 addresses and overwriting the caller's IPv4-sized allocation. The attached patch just updates getlocalhostname to use inet_ntop instead of inet_ntoa, and also documents the fact that UpnpInit is IPv4 only whilst UpnpInnit2 is both IPv4 and IPv6. A fuller solution might be to change UpnpInit to use some variant on UpnpGetIfInfo. UpnpInit could still be left as IPv4 only if desired - perhaps UpnpGetIfInfo could take an option for the desired address family. getlocalhostname and its own copy of the interface scanning code would then be redundant. I don't have IPv6 capability here though so I'm reluctant to change the IPv6 code, as I have no way to test it. 2010-03-15 Marcelo Jimenez * SF Patch Tracker [ 2724578 ] patch for avoiding memory leaks when add devices each time a device been added, UpnpInit() is called, on exit, UpnpFinish() is called, but the memories allocated by ThreadPoolInit() may lost because there's no code to call ThreadPoolShutdown() to release the memories. And inet_ntoa() is not thread safe, so in my patch, I substitute inet_ntoa() with inet_ntop(). 2010-03-14 Marcelo Jimenez * SF Patch Tracker [ 2964687 ] Add new string based accessors to upnp object API As per email to pupnp-devel, this is the patch to add the _strget_ accessors for string-like objects in the interface. Will add a further patch shortly to udpate the sample programs. 2008-06-27 Marcelo Jimenez * Nicholas Kraft's patch to fix some IPv6 copy/paste issues. He reported to be getting infinite loops with the svn code. 2008-06-13 Marcelo Jimenez * SF Bug Tracker [ 1984541 ] ixmlDocumenttoString does not render the namespace tag. Submitted By: Beliveau - belivo Undoing the patch that fixed this problem. In fact, there was no problem and the patch was wrong. 2008-06-11 Marcelo Jimenez * Ingo Hofmann's patch for "Content-Type in Subscription responses". Adds charset="utf-8" attribute to the CONTENT-TYPE header line. Hi, I have found an inconsistency regarding the text/xml content-type returned by libupnp. It looks like only subscription responses send "text/xml" where all other messages contain "text/xml; charset="utf-8"". Since I'm working on an DLNA device the latter behaviour is mandatory. I changed the according lines in gena_device.c (see attached patch). I'm not sure if it would be ok for other device to have the charset field but it would help me a lot :) Best regards, Ingo 2008-06-04 Marcelo Jimenez * SF Bug Tracker [ 1984541 ] ixmlDocumenttoString does not render the namespace tag. Submitted By: Beliveau - belivo The problem occurs when converting a xml document using ixmlDocumenttoString containing a namespace tag created with ixmlDocument_createElementNS. The namespace tag doesn't get rendered. example: The following code fragment prints: instead of: Code: #include #include int main() { IXML_Document* wDoc = ixmlDocument_createDocument(); IXML_Element* wRoot = ixmlDocument_createElementNS(wDoc, "urn:schemas-upnp-org:device-1-0", "root"); ixmlNode_appendChild((IXML_Node *)wDoc,(IXML_Node *)wRoot); DOMString wString = ixmlDocumenttoString(wDoc); printf(wString); free(wString); ixmlDocument_free(wDoc); return 0; } The problem was in the printing routine, not in the library data structure. 2008-05-31 Marcelo Jimenez * Charles Nepveu's suggestion of not allocating a thread for MiniServer when it is not compiled. 2008-05-24 Marcelo Jimenez * Ported Peter Hartley's patch to compile with mingw. 2008-05-24 Marcelo Jimenez * Added some debug capability to ixml. 2008-05-02 Marcelo Jimenez * Merged Charles Nepveu's IPv6 work. libupnp now is IPv6 enabled. 2008-02-06 Marcelo Jimenez * Breaking API so that we now hide internal data structures. 2008-02-06 Marcelo Jimenez * Rewrote Peter Hartley's patch to include a new extra header field in FileInfo. ******************************************************************************* Version 1.6.22 ******************************************************************************* 2017-07-07 James Cowgill Replace MD5 impmplementation with public-domain version Currently the RSA MD5 implementation is used. Unfortunately the license has some potential issues: * The license does not explicitly allow distributing derivative works. This was the original argument used in [Debian #459516](https://bugs.debian.org/459516). * The license contains an advertising clause similar to the BSD 4-clause license. This is incompatible with the GPL and if it were enforced, would require RSA to be mentioned by pretty much everyone who uses pupnp. The simple solution is to replace it with a public domain implementation. I've taken OpenBSDs implementation and tweaked it slightly for use by pupnp by: - Adjusting the includes. - Removing the __bounded__ attributes which are specific to OpenBSD. - Using the standard integer types from stdint.h. - Using memset instead of explicit_bzero. 2016-12-16 Peter Pramberger ixml/test/test_document.c is missing the string.h include, therefore the compiler complains about an implicit declaration. ******************************************************************************* Version 1.6.21 ******************************************************************************* 2016-12-16 Gabriel Burca If the error or info log files can not be created, use stderr and stdout instead. 2016-12-08 Uwe Kleine-König Fix out-of-bound access in create_url_list() (CVE-2016-8863) If there is an invalid URL in URLS->buf after a valid one, uri_parse is called with out pointing after the allocated memory. As uri_parse writes to *out before returning an error the loop in create_url_list must be stopped early to prevent an out-of-bound access Bug: https://sourceforge.net/p/pupnp/bugs/133/ Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8863 Bug-Debian: https://bugs.debian.org/842093 Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=1388771 2016-11-30 Uwe Kleine-König miniserver: fix binding to ipv6 link-local addresses Linux requires to have sin6_scope_id hold the interface id when binding to link-local addresses. This is already in use in other parts of upnp, so portability shouldn't be in the way here. Without this bind(2) fails with errno=EINVAL (although ipv6(7) from manpages 4.08 specifies ENODEV in this case). Fixes: https://bugs.debian.org/813249 2016-09-15 Mathew Garret <(at)mjg59 (twitter)> SF Bug Tracker #132 CVE-2016-6255: write files via POST Submitted by: Balint Reczey in 2016-08-02 From Debian's BTS https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831857 : From: Salvatore Bonaccorso carnil@debian.org To: Debian Bug Tracking System submit@bugs.debian.org Subject: libupnp: write files via POST Date: Wed, 20 Jul 2016 11:03:34 +0200 Source: libupnp Version: 1:1.6.17-1 Severity: grave Tags: security upstream Justification: user security hole Hi See http://www.openwall.com/lists/oss-security/2016/07/18/13 and https://twitter.com/mjg59/status/755062278513319936 . Proposed fix: https://github.com/mjg59/pupnp-code/commit/be0a01bdb83395d9f3a5ea09c1308a4f1a972cbd Regards, Salvatore From Mathew Garret's commit: Don't allow unhandled POSTs to write to the filesystem by default ******************************************************************************* Version 1.6.20 ******************************************************************************* 2016-02-22 Jean-Francois Dockes SF Bugs #131, Creator: Jean-Francois Dockes I know it sounds crazy that nobody ever saw this, but the CONTENT-LENGTH value in GENA NOTIFY messages is too small by one. It appears that most current control points don't notice the extra character (an LF, which is validly there but not included in Content-Length), probably because their protocol handler is reasonably lenient, and because the missing body LF does not prevent parsing the XML. But there is a least one anal CP (Linn Kazoo) which barfs, because it reads all data until connection close and the size mismatch triggers a bug. "Proof": In gena_device.c:217 (notify_send_and_recv()) ret_code = http_SendMessage(&info, &timeout, "bbb", start_msg.buf, start_msg.length, propertySet, strlen(propertySet), CRLF, strlen(CRLF)); start_msg has all the headers, including the empty line. Content-length should be strlen(propertySet) + strlen(CRLF) (2) In gena_device.c:433 (AllocGenaHeaders()) rc = snprintf(headers, headers_size, "%s%s%"PRIzu"%s%s%s", HEADER_LINE_1, HEADER_LINE_2A, strlen(propertySet) + 1, HEADER_LINE_2B, HEADER_LINE_3, HEADER_LINE_4); HEADER_LINE_2A is "CONTENT-LENGTH: ". The following value should be strlen(propertySet) + 2 2016-01-07 Marcelo Roberto Jimenez Fix for a reported integer overflow 2016-01-07 Jean-Francois Dockes 2016-01-07 Nick Leverton SF Patches #60, Creator: Jean-Francois Dockes When libupnp is configured with --enable-ipv6 but ipv6 is not available on the system (for example because the ipv6 code is not loaded in a Linux kernel as is the case by default on Raspbian), the ipv6 socket creation call will fail in miniserver.c and the library init will fail, even if the ipv4 initialisation would have succeeded. Let a library configured with --enable-ipv6 initialize in ipv4-only mode if ipv6 is not available instead of failing. This can happen if no ipv6 code is configured or loaded in the kernel. Don't fail if IPv6 is unavailable. We might be an IPv6 enabled distro build running on an IPv4-only custom kernel. 2016-01-07 Nick Leverton SF Bug Tracker #128, Creator: Nick Leverton redefining strndup causes "error: expected identifier or '(' before '__extension__'" Fix redefinition of strnlen and strndup These are available when HAVE_STRNDUP and HAVE_STRNLEN are defined, but libupnp provides an extern prototype anyway. Recent versions of glibc define this prototype differently, causing the following compile error: src/api/UpnpString.c:47:15: error: expected identifier or '(' before '__extension__' extern char *strndup(__const char *__string, size_t __n); 2016-01-07 Nick Leverton SF Bug Tracker #129, Creator: Nick Leverton shutdown() on UDP sockets logs ENOTCONN message. https://sourceforge.net/p/pupnp/bugs/129/ Fix ENOTCONN "Error in shutdown: Transport endpoint is not connected" When logging is enabled, ssdpserver logs bursts of "Error in shutdown: Transport endpoint is not connected" This is because shutdown() is not supported for UDP sockets and under recent UNIX specifications it returns ENOTCONN if used. 2016-01-07 Nick Leverton SF Bug Tracker #127, Creator: Klaus Fischer Miniserver uses INADDR_ANY instead of HostIP https://sourceforge.net/p/pupnp/bugs/127/ The internal miniserver.c uses INADDR_ANY instead of the HostIP/IfName provided when initializing libupnp. But, this HostIP/IfName gets used for the UDP socket when multicasting SSDP messages. Because of this, miniserver may end up sending from different IP address than ssdpserver. This patch causes miniserver to use the already known interface address. 2016-01-07 Marcelo Roberto Jimenez SF Bug Tracker #130, Creator: Shaddy Baddah infinite loop in UpnpGetIfInfo() under WIN32 Original code makes no sense. This patch should fix it. 2015-02-04 Shaun Marko Bug tracker #124 Build fails with --enable-debug Build environment Fedora 21 X86-64 * gcc 4.9.2 How to repeat $ ./configure --enable debug $ make libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../threadutil/inc -I../ixml/inc -I./src/inc -pthread -g -O2 -Wall -MT src/api/libupnp_la-UpnpString.lo -MD -MP -MF src/api/.deps/libupnp_la-UpnpString.Tpo -c src/api/UpnpString.c -fPIC -DPIC -o src/api .libs/libupnp_la-UpnpString.o src/api/UpnpString.c:47:16: error: expected identifier or '(' before 'extension' extern char *strndup(const char *string, size_t __n); ^ Makefile:1016: recipe for target 'src/api/libupnp_la-UpnpString.lo' failed Reason for failure Build enables -O2 optimization flags which causes the inclusion of a macro implementation of strndup from include/bits/string2.h. Workarounds Disable optimization when configuring or making: $ configure CFLAGS='-g -pthread -O0' --enable-debug $ make or $ configure --enable-debug $ make CFLAGS='-g -pthread -O0' Define NO_STRING_INLINES $ export CFLAGS="-DNO_STRING_INLINES -O2" $ ./configure --enagble-debug $ make Fix * Don't declare strndup in src/api/UpnpString.c if it exists 2015-02-01 Jean-Francois Dockes Out-of-tree builds seem to be currently broken, because ixml and threadutil files need an include path to include UpnpGlobal.h, and configure tries to copy files into a directory which it does not create. The patch fixes both issues. 2014-01-03 Peng rewrite soap_device.c 1) separate HTTP handling from SOAP handling 2) remove repeated validity check, each check is performed exactly once 3) fix HTTP status code per UPnP spec, SOAP spec and RFC 2774 --- net/libupnp/Makefile | 9 +- net/libupnp/PLIST | 282 +----------------- net/libupnp/distinfo | 11 +- .../patches/patch-upnp_sample_Makefile.in | 16 - 4 files changed, 23 insertions(+), 295 deletions(-) delete mode 100644 net/libupnp/patches/patch-upnp_sample_Makefile.in diff --git a/net/libupnp/Makefile b/net/libupnp/Makefile index 21319201c18c..3bf5e3eecf91 100644 --- a/net/libupnp/Makefile +++ b/net/libupnp/Makefile @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.23 2015/03/15 17:09:00 hiramatsu Exp $ -# +# $NetBSD: Makefile,v 1.24 2019/09/02 12:58:54 nia Exp $ -DISTNAME= libupnp-1.6.19 +DISTNAME= libupnp-1.8.4 CATEGORIES= net MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=pupnp/} EXTRACT_SUFX= .tar.bz2 @@ -11,13 +10,10 @@ HOMEPAGE= http://pupnp.sourceforge.net/ COMMENT= Portable Universal Plug and Play (UPnP) SDK LICENSE= modified-bsd -USE_LANGUAGES= c USE_TOOLS+= pkg-config USE_LIBTOOL= yes GNU_CONFIGURE= yes -CONFIGURE_ARGS+= --with-documentation - PKGCONFIG_OVERRIDE+= libupnp.pc.in TEST_TARGET= check @@ -25,6 +21,5 @@ TEST_TARGET= check CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS .include "options.mk" - .include "../../mk/pthread.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/net/libupnp/PLIST b/net/libupnp/PLIST index 1a1ce66be3e6..6a15079f28bd 100644 --- a/net/libupnp/PLIST +++ b/net/libupnp/PLIST @@ -1,8 +1,17 @@ -@comment $NetBSD: PLIST,v 1.9 2013/11/21 08:07:55 obache Exp $ -include/upnp/FreeList.h -include/upnp/LinkedList.h -include/upnp/ThreadPool.h -include/upnp/TimerThread.h +@comment $NetBSD: PLIST,v 1.10 2019/09/02 12:58:54 nia Exp $ +include/upnp/ActionComplete.h +include/upnp/ActionRequest.h +include/upnp/Callback.h +include/upnp/Discovery.h +include/upnp/Event.h +include/upnp/EventSubscribe.h +include/upnp/FileInfo.h +include/upnp/StateVarComplete.h +include/upnp/StateVarRequest.h +include/upnp/SubscriptionRequest.h +include/upnp/TemplateInclude.h +include/upnp/TemplateSource.h +include/upnp/TemplateUndef.h include/upnp/UpnpGlobal.h include/upnp/UpnpInet.h include/upnp/UpnpIntTypes.h @@ -12,271 +21,12 @@ include/upnp/UpnpUniStd.h include/upnp/ithread.h include/upnp/ixml.h include/upnp/ixmldebug.h +include/upnp/list.h +include/upnp/poison.h include/upnp/upnp.h include/upnp/upnpconfig.h include/upnp/upnpdebug.h include/upnp/upnptools.h lib/libixml.la -lib/libthreadutil.la lib/libupnp.la lib/pkgconfig/libupnp.pc -share/doc/${PKGNAME}/IXML_Programming_Guide.pdf -share/doc/${PKGNAME}/UPnP_Programming_Guide.pdf -share/doc/${PKGNAME}/examples/sample_util.c -share/doc/${PKGNAME}/examples/sample_util.h -share/doc/${PKGNAME}/examples/tv_ctrlpt.c -share/doc/${PKGNAME}/examples/tv_ctrlpt.h -share/doc/${PKGNAME}/examples/tv_ctrlpt_main.c -share/doc/${PKGNAME}/examples/tv_device.c -share/doc/${PKGNAME}/examples/tv_device.h -share/doc/${PKGNAME}/examples/tv_device_main.c -share/doc/${PKGNAME}/html/ixml/DOMInterfaces.html -share/doc/${PKGNAME}/html/ixml/General.html -share/doc/${PKGNAME}/html/ixml/IXMLAPI.html -share/doc/${PKGNAME}/html/ixml/InterfaceitAttr.html -share/doc/${PKGNAME}/html/ixml/InterfaceitCDATASection.html -share/doc/${PKGNAME}/html/ixml/InterfaceitDocument.html -share/doc/${PKGNAME}/html/ixml/InterfaceitElement.html -share/doc/${PKGNAME}/html/ixml/InterfaceitNamedNodeMap.html -share/doc/${PKGNAME}/html/ixml/InterfaceitNode.html -share/doc/${PKGNAME}/html/ixml/InterfaceitNodeList.html -share/doc/${PKGNAME}/html/ixml/Introduction.html -share/doc/${PKGNAME}/html/ixml/License.html -share/doc/${PKGNAME}/html/ixml/icon1.gif -share/doc/${PKGNAME}/html/ixml/icon2.gif -share/doc/${PKGNAME}/html/ixml/index.html -share/doc/${PKGNAME}/html/ixml/ixmlAttr_free.html -share/doc/${PKGNAME}/html/ixml/ixmlCDATASection_free.html -share/doc/${PKGNAME}/html/ixml/ixmlCDATASection_init.html -share/doc/${PKGNAME}/html/ixml/ixmlCloneDOMString.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createAttribute.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createAttributeEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createAttributeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createAttributeNSEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createCDATASection.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createCDATASectionEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createDocument.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createDocumentEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createElement.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createElementEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createElementNS.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createElementNSEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createTextNode.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_createTextNodeEx.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_free.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_getElementById.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_getElementsByTagName.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_getElementsByTagNameNS.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_importNode.html -share/doc/${PKGNAME}/html/ixml/ixmlDocument_init.html -share/doc/${PKGNAME}/html/ixml/ixmlDocumenttoString.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_free.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getAttribute.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getAttributeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getAttributeNode.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getAttributeNodeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getElementsByTagName.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getElementsByTagNameNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_getTagName.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_hasAttribute.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_hasAttributeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_init.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_removeAttribute.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_removeAttributeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_removeAttributeNode.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_setAttribute.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_setAttributeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_setAttributeNode.html -share/doc/${PKGNAME}/html/ixml/ixmlElement_setAttributeNodeNS.html -share/doc/${PKGNAME}/html/ixml/ixmlFreeDOMString.html -share/doc/${PKGNAME}/html/ixml/ixmlLoadDocument.html -share/doc/${PKGNAME}/html/ixml/ixmlLoadDocumentEx.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_free.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_getLength.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_getNamedItem.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_getNamedItemNS.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_item.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_removeNamedItem.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_removeNamedItemNS.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_setNamedItem.html -share/doc/${PKGNAME}/html/ixml/ixmlNamedNodeMap_setNamedItemNS.html -share/doc/${PKGNAME}/html/ixml/ixmlNodeList_free.html -share/doc/${PKGNAME}/html/ixml/ixmlNodeList_item.html -share/doc/${PKGNAME}/html/ixml/ixmlNodeList_length.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_appendChild.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_cloneNode.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_free.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getAttributes.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getChildNodes.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getFirstChild.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getLastChild.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getLocalName.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getNamespaceURI.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getNextSibling.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getNodeName.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getNodeType.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getNodeValue.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getOwnerDocument.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getParentNode.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getPrefix.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_getPreviousSibling.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_hasAttributes.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_hasChildNodes.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_insertBefore.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_removeChild.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_replaceChild.html -share/doc/${PKGNAME}/html/ixml/ixmlNode_setNodeValue.html -share/doc/${PKGNAME}/html/ixml/ixmlNodetoString.html -share/doc/${PKGNAME}/html/ixml/ixmlParseBuffer.html -share/doc/${PKGNAME}/html/ixml/ixmlParseBufferEx.html -share/doc/${PKGNAME}/html/ixml/ixmlPrintDocument.html -share/doc/${PKGNAME}/html/ixml/ixmlPrintNode.html -share/doc/${PKGNAME}/html/ixml/ixmlRelaxParser.html -share/doc/${PKGNAME}/html/ixml/toc.html -share/doc/${PKGNAME}/html/upnp/AboutCallbacks.html -share/doc/${PKGNAME}/html/upnp/ConstantsStructuresandTypes.html -share/doc/${PKGNAME}/html/upnp/Control.html -share/doc/${PKGNAME}/html/upnp/ControlPointHTTPAPI.html -share/doc/${PKGNAME}/html/upnp/Discovery.html -share/doc/${PKGNAME}/html/upnp/Errorcodes.html -share/doc/${PKGNAME}/html/upnp/Eventing.html -share/doc/${PKGNAME}/html/upnp/General.html -share/doc/${PKGNAME}/html/upnp/InitializationandRegistration.html -share/doc/${PKGNAME}/html/upnp/Introduction.html -share/doc/${PKGNAME}/html/upnp/License.html -share/doc/${PKGNAME}/html/upnp/OptionalToolAPIs.html -share/doc/${PKGNAME}/html/upnp/TheAPI.html -share/doc/${PKGNAME}/html/upnp/UPNPREG_BUF_DESC.html -share/doc/${PKGNAME}/html/upnp/UPNPREG_FILENAME_DESC.html -share/doc/${PKGNAME}/html/upnp/UPNPREG_URL_DESC.html -share/doc/${PKGNAME}/html/upnp/UPNP_CONTROL_ACTION_COMPLETE.html -share/doc/${PKGNAME}/html/upnp/UPNP_CONTROL_ACTION_REQUEST.html -share/doc/${PKGNAME}/html/upnp/UPNP_CONTROL_GET_VAR_COMPLETE.html -share/doc/${PKGNAME}/html/upnp/UPNP_CONTROL_GET_VAR_REQUEST.html -share/doc/${PKGNAME}/html/upnp/UPNP_DISCOVERY_ADVERTISEMENT_ALIVE.html -share/doc/${PKGNAME}/html/upnp/UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE.html -share/doc/${PKGNAME}/html/upnp/UPNP_DISCOVERY_SEARCH_RESULT.html -share/doc/${PKGNAME}/html/upnp/UPNP_DISCOVERY_SEARCH_TIMEOUT.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_AUTORENEWAL_FAILED.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_RECEIVED.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_RENEWAL_COMPLETE.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_SUBSCRIBE_COMPLETE.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_SUBSCRIPTION_EXPIRED.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_SUBSCRIPTION_REQUEST.html -share/doc/${PKGNAME}/html/upnp/UPNP_EVENT_UNSUBSCRIBE_COMPLETE.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_ALREADY_REGISTERED-120.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_BAD_HTTPMSG-119.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_BAD_RESPONSE-113.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_CANCELED-210.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_EXT_NOT_XML-504.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_FILE_NOT_FOUND-502.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_FILE_READ_ERROR-503.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_FINISH-116.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INIT-105.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INIT_FAILED-117.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INTERNAL_ERROR-911.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_ACTION-115.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_ARGUMENT-501.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_DESC-107.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_HANDLE-100.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_PARAM-101.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_SERVICE-111.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_INVALID_URL-108.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_LISTEN-206.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_NETWORK_ERROR-200.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_NOTIFY_UNACCEPTED-303.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_NOT_FOUND-507.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_OUTOF_HANDLE-102.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_OUTOF_MEMORY-104.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_OUTOF_SOCKET-205.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SOCKET_BIND-203.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SOCKET_CONNECT-204.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SOCKET_ERROR-208.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SOCKET_READ-202.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SOCKET_WRITE-201.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SUBSCRIBE_UNACCEPTED-301.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_SUCCESS0.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_TIMEDOUT-207.html -share/doc/${PKGNAME}/html/upnp/UPNP_E_UNSUBSCRIBE_UNACCEPTED-302.html -share/doc/${PKGNAME}/html/upnp/UPNP_S_ALL.html -share/doc/${PKGNAME}/html/upnp/UPNP_S_DEVICE.html -share/doc/${PKGNAME}/html/upnp/UPNP_S_ROOT.html -share/doc/${PKGNAME}/html/upnp/UPNP_S_SERVICE.html -share/doc/${PKGNAME}/html/upnp/UPnP_EventType.html -share/doc/${PKGNAME}/html/upnp/UpnpAcceptSubscription.html -share/doc/${PKGNAME}/html/upnp/UpnpAcceptSubscriptionExt.html -share/doc/${PKGNAME}/html/upnp/UpnpAddToAction.html -share/doc/${PKGNAME}/html/upnp/UpnpAddToActionResponse.html -share/doc/${PKGNAME}/html/upnp/UpnpAddToPropertySet.html -share/doc/${PKGNAME}/html/upnp/UpnpAddVirtualDir.html -share/doc/${PKGNAME}/html/upnp/UpnpCancelHttpGet.html -share/doc/${PKGNAME}/html/upnp/UpnpClient_Handle.html -share/doc/${PKGNAME}/html/upnp/UpnpCloseHttpGet.html -share/doc/${PKGNAME}/html/upnp/UpnpCloseHttpPost.html -share/doc/${PKGNAME}/html/upnp/UpnpCreatePropertySet.html -share/doc/${PKGNAME}/html/upnp/UpnpDevice_Handle.html -share/doc/${PKGNAME}/html/upnp/UpnpDownloadUrlItem.html -share/doc/${PKGNAME}/html/upnp/UpnpDownloadXmlDoc.html -share/doc/${PKGNAME}/html/upnp/UpnpEnableWebserver.html -share/doc/${PKGNAME}/html/upnp/UpnpFinish.html -share/doc/${PKGNAME}/html/upnp/UpnpGetErrorMessage.html -share/doc/${PKGNAME}/html/upnp/UpnpGetServerIpAddress.html -share/doc/${PKGNAME}/html/upnp/UpnpGetServerPort.html -share/doc/${PKGNAME}/html/upnp/UpnpGetServiceVarStatus.html -share/doc/${PKGNAME}/html/upnp/UpnpGetServiceVarStatusAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpHttpGetProgress.html -share/doc/${PKGNAME}/html/upnp/UpnpInit.html -share/doc/${PKGNAME}/html/upnp/UpnpIsWebserverEnabled.html -share/doc/${PKGNAME}/html/upnp/UpnpMakeAction.html -share/doc/${PKGNAME}/html/upnp/UpnpMakeActionResponse.html -share/doc/${PKGNAME}/html/upnp/UpnpNotify.html -share/doc/${PKGNAME}/html/upnp/UpnpNotifyExt.html -share/doc/${PKGNAME}/html/upnp/UpnpOpenHttpGet.html -share/doc/${PKGNAME}/html/upnp/UpnpOpenHttpGetEx.html -share/doc/${PKGNAME}/html/upnp/UpnpOpenHttpGetProxy.html -share/doc/${PKGNAME}/html/upnp/UpnpOpenHttpPost.html -share/doc/${PKGNAME}/html/upnp/UpnpReadHttpGet.html -share/doc/${PKGNAME}/html/upnp/UpnpRegisterClient.html -share/doc/${PKGNAME}/html/upnp/UpnpRegisterRootDevice.html -share/doc/${PKGNAME}/html/upnp/UpnpRegisterRootDevice2.html -share/doc/${PKGNAME}/html/upnp/UpnpRemoveAllVirtualDirs.html -share/doc/${PKGNAME}/html/upnp/UpnpRemoveVirtualDir.html -share/doc/${PKGNAME}/html/upnp/UpnpRenewSubscription.html -share/doc/${PKGNAME}/html/upnp/UpnpRenewSubscriptionAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpResolveURL.html -share/doc/${PKGNAME}/html/upnp/UpnpSearchAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpSendAction.html -share/doc/${PKGNAME}/html/upnp/UpnpSendActionAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpSendActionEx.html -share/doc/${PKGNAME}/html/upnp/UpnpSendActionExAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpSendAdvertisement.html -share/doc/${PKGNAME}/html/upnp/UpnpSetContentLength.html -share/doc/${PKGNAME}/html/upnp/UpnpSetMaxContentLength.html -share/doc/${PKGNAME}/html/upnp/UpnpSetMaxSubscriptionTimeOut.html -share/doc/${PKGNAME}/html/upnp/UpnpSetMaxSubscriptions.html -share/doc/${PKGNAME}/html/upnp/UpnpSetVirtualDirCallbacks.html -share/doc/${PKGNAME}/html/upnp/UpnpSetWebServerRootDir.html -share/doc/${PKGNAME}/html/upnp/UpnpSubscribe.html -share/doc/${PKGNAME}/html/upnp/UpnpSubscribeAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpUnRegisterClient.html -share/doc/${PKGNAME}/html/upnp/UpnpUnRegisterRootDevice.html -share/doc/${PKGNAME}/html/upnp/UpnpUnSubscribe.html -share/doc/${PKGNAME}/html/upnp/UpnpUnSubscribeAsync.html -share/doc/${PKGNAME}/html/upnp/UpnpVirtualDirCallbacks.html -share/doc/${PKGNAME}/html/upnp/UpnpWriteHttpPost.html -share/doc/${PKGNAME}/html/upnp/Upnp_Action_Request.html -share/doc/${PKGNAME}/html/upnp/Upnp_DescType.html -share/doc/${PKGNAME}/html/upnp/Upnp_Discovery.html -share/doc/${PKGNAME}/html/upnp/Upnp_Event.html -share/doc/${PKGNAME}/html/upnp/Upnp_Event_Subscribe.html -share/doc/${PKGNAME}/html/upnp/Upnp_FunPtr.html -share/doc/${PKGNAME}/html/upnp/Upnp_SID44.html -share/doc/${PKGNAME}/html/upnp/Upnp_SType.html -share/doc/${PKGNAME}/html/upnp/Upnp_State_Var_Complete.html -share/doc/${PKGNAME}/html/upnp/Upnp_State_Var_Request.html -share/doc/${PKGNAME}/html/upnp/Upnp_Subscription_Request.html -share/doc/${PKGNAME}/html/upnp/WebServerAPI.html -share/doc/${PKGNAME}/html/upnp/icon1.gif -share/doc/${PKGNAME}/html/upnp/icon2.gif -share/doc/${PKGNAME}/html/upnp/index.html -share/doc/${PKGNAME}/html/upnp/toc.html diff --git a/net/libupnp/distinfo b/net/libupnp/distinfo index e11d64ea54fc..2f9d6d9df817 100644 --- a/net/libupnp/distinfo +++ b/net/libupnp/distinfo @@ -1,8 +1,7 @@ -$NetBSD: distinfo,v 1.22 2015/11/04 00:35:10 agc Exp $ +$NetBSD: distinfo,v 1.23 2019/09/02 12:58:54 nia Exp $ -SHA1 (libupnp-1.6.19.tar.bz2) = ee9e16ff42808521b62b7fc664fc9cba479ede88 -RMD160 (libupnp-1.6.19.tar.bz2) = 9879bc7e2e31b50b36ca752c70a00b3abc6de23f -SHA512 (libupnp-1.6.19.tar.bz2) = 97af62a7483cc19cfe80157cbc3383c1b4b7c9c39b848f4ed063784b74df0b9b0527f7b467e01451e0a44dbf9e8a9eab510619146a6ee1e3dce46f3e4af6e661 -Size (libupnp-1.6.19.tar.bz2) = 1213439 bytes +SHA1 (libupnp-1.8.4.tar.bz2) = 93e7b3c94cf53eb59533b4b7b137ef5cc651e28b +RMD160 (libupnp-1.8.4.tar.bz2) = b31fe48c65c4730eaf4fd523de299ca7e5ac8218 +SHA512 (libupnp-1.8.4.tar.bz2) = 403d7b6408a33330fc59fbe6284cc7bca10a675c41b323bba6b9c6461c8a82fbb39f4a1a07d1a3b55f049c637830ebf21bd825cd6c2f4eb17265018ccee9cbb6 +Size (libupnp-1.8.4.tar.bz2) = 676576 bytes SHA1 (patch-aa) = b3d00b441b3c0ae9aa0769223a4eaf6baa71a71c -SHA1 (patch-upnp_sample_Makefile.in) = 63675848b7289f414f3d78968aef69130addce28 diff --git a/net/libupnp/patches/patch-upnp_sample_Makefile.in b/net/libupnp/patches/patch-upnp_sample_Makefile.in deleted file mode 100644 index f6a97d124019..000000000000 --- a/net/libupnp/patches/patch-upnp_sample_Makefile.in +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-upnp_sample_Makefile.in,v 1.1 2014/03/28 05:51:13 obache Exp $ - -* install(1) from GNU coreutils dislike overwrite with same contents. - https://sourceforge.net/p/pupnp/bugs/120/ - ---- upnp/sample/Makefile.in.orig 2013-11-15 16:19:11.000000000 +0000 -+++ upnp/sample/Makefile.in -@@ -628,7 +628,7 @@ clean-libtool: - -rm -rf .libs _libs - install-examplesDATA: $(examples_DATA) - @$(NORMAL_INSTALL) -- @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \ -+ @list='$(examples_DATA:O:u)'; test -n "$(examplesdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \