******************************************************************************* Version 1.4.7 ******************************************************************************* 2007-05-24 Nektarios K. Papadopoulos * SF Tracker FR [ 1570020 ]. * Enable both device and control point in the same application. Resolve deadlock in the SSDP processing threads. * Fix Threadpool expansion condition. Thanks to Siva Chandran P. for the original patch. 2007-05-24 Nektarios K. Papadopoulos * Modified tvdevice (control and picture) service descriptions to make compatible with WinXP/IE control point. 'in' arguments must appear before 'out' arguments in argument list. Thanks to Martin Tremblay for pointing out the solution originally provided by MORIOKA Yasuhiro. 2007-05-21 Marcelo Jimenez * More MSVC fixes, using XINLINE instead of inline, MSVC has troubles with inline. Thanks to David Maass for reporting. * Changed XINLINE to UPNP_INLINE. 2007-05-21 Marcelo Jimenez * Added the file build/inc/msvc/inttypes.h. This file is for use with MSVC only, because it does not provide C99 compatibility. 2007-05-18 Marcelo Jimenez * Removed all uses of the DEVICEONLY(x) macro. 2007-05-17 Marcelo Jimenez * Removed all uses of the DBGONLY(x) macro. A static inline empty function now is used and the compiler takes care of optimizing it out. 2007-05-17 Marcelo Jimenez * Fixed a bug in UpnpPrintf, function could call va_start() and return befor calling va_end(). 2007-05-15 Marcelo Jimenez * EXPORT_SPEC missing on some declarations in ixml/inc/ixml.h. Thanks to David Maass. 2007-05-15 Marcelo Jimenez * sizeof is unsigned, so %zu is more adequate than %zd. 2007-05-15 Marcelo Jimenez * Using an invented printf directive PRIzu that on MSVC expands to "lu", and on normal C99 compilers expands to "zu". 2007-05-15 Marcelo Jimenez * Rewrote raw_find_str. Now it no longer uses strcasestr(), but it transforms the first input buffer into lowercase. 2007-05-08 Marcelo Jimenez * Fix for debug printf format strings. size_t are not expected in a string format like "%.*s". 2007-05-08 Marcelo Jimenez * Added inttypes.h as a header requirement in configure.ac. 2007-05-11 Marcelo Jimenez * Moved upnp_tv_ctrlpt and upnp_tv_device executables from folder upnp to folder upnp/sample. Moved folder upnp/sample/tvdevice/web to folder upnp/sample/web. This way, if someone compiles the tarball and executes upnp_tv_device from its creation directory, there will be no error -108 for not finding directory web. ******************************************************************************* Version 1.4.6 ******************************************************************************* 2007-04-19 Marcelo Jimenez * Fix for freebsd host_os in configure.ac. ******************************************************************************* Version 1.4.5 ******************************************************************************* 2007-04-19 Marcelo Jimenez * Case insensitive comparison in raw_find_str() (httpparser.c) as suggested by Craig Nelson in SF Tracker [ 1689382 ] DLINK DIR-625 patch. 2007-04-07 Nektarios K. Papadopoulos * Fix for a bug in makeAction where va_arg was beeing called one extra time. 2007-04-28 Marcelo Jimenez * SF Tracker [ 1703533 ] Patch to make it compile under FreeBSD Submitted By: Timothy Redaelli - drittz I made some patches to make it compile under FreeBSD using gethostbyaddr_r when supported. 2007-04-28 Marcelo Jimenez * [pupnp-devel] Type mixup on x86_64 causes UPNP_E_OUTOF_MEMORY Submitted By: Glen Masgai after an UpnpSendActionAsync() for example, i get UPNP_E_OUTOF_MEMORY in the callback using 1.4.4 on a x86_64 system. This happens in http_MakeMessage(), which in some cases get called with wrong types (int instead of size_t) in combination with format "b" and "Q". The attached patch should fix this. ******************************************************************************* Version 1.4.4 ******************************************************************************* 2007-04-06 Marcelo Jimenez * SF Tracker [ 1695399 ] Typo in util.h Submitted By: Luke Kim - nereusuj Unix sleep is in seconds but WIN32 Sleep is in milliseconds. 2007-04-17 Marcelo Jimenez * SF Tracker [ 1652827 ] UpnpRegisterRootDevice returned -104 Submitted By: Michael Andersen - miwer Issue was found to be related to sizeof (size_t) != sizeof (int) on AMD64 systems. Emil Ljungdahl's AMD64 patch has been applied along with some other fixes. Original user report follows: When I run upnpd I get the above mentioned error (UPNP_E_OUTOF_MEMORY). I've tried with 1.4.1 and 1.4.2-RC3, it's the same. I don't understand why, because I have plenty of RAM, and I even tried closing some applications, but it didn't help. $ upnpd eth1 br0 The following is logged in the /var/log/messages: Feb 6 01:33:47 server upnpd[6933]: Error registering the root device with descDocUrl: http://192.168.0.1:49152/gatedesc.xml Feb 6 01:33:47 server upnpd[6933]: UpnpRegisterRootDevice returned -104 I tried enabling debugging and it looks like it cannot allocate memory through the membuffer_append function. It's wierd because it's only a few bytes. Please note, that I enabled some extra debugging lines that were commented, in order to get more information. See attached files. ******************************************************************************* Version 1.4.3 ******************************************************************************* 2007-03-13 Marcelo Jimenez * SF Tracker [ 1663004 ] Compile on Cygwin Submitted By: Jon Foster - jongfoster This patch gives basic support for building under Cygwin - it compiles, links, and a simple UPnP device application can initialise. I'm not sure if it actually works yet, but this is definitely a step in the right direction. Patch is against the 1.4.1 release. Changes are: * threadutil/inc/ithread.h: Fix the ithread mutex support to use documented, portable APIs (if present) rather than the Non-Portable (_NP) ones it uses now. This is required because Cygwin implements only the portable API. * threadutil/src/ThreadPool.c: Fake SetPolicyType() to do nothing on Cygwin because otherwise it fails. Should probably investigate why it fails and add a proper implementation later. * upnp/src/api/upnpapi.c: On Cygwin, zero out the GlobalHndMutex structure before initialising it. Without this, the initialisation fails. This appears to be a bug in Cygwin. * upnp/src/genlib/net/uri/uri.c: Use gethostbyname() on Cygwin. 2007-03-05 Oxy * Code adapted and typedefs added to compile cleanly under Windows with Borland C++ Builder and MS Visual C++ 2007-03-03 Marcelo Jimenez * Fixed nasty segmentation fault bug on membuffer.c. ******************************************************************************* Version 1.4.2 ******************************************************************************* 2007-02-09 Marcelo Jimenez * 32/64 bits portability issues on *printf. Use %zd for size_t, and cast to (long long) for off_t. 2007-02-02 Marcelo Jimenez * Bumped the program version to 1.4.2 in config.ac. * Now requires autoconf 2.60. * Fixed docdir use. * Does not install the documentation by default. * Use dist-bzip2 to create a .bz2 distribution file. 2007-01-23 Marcelo Jimenez * SF Tracker [ 1634922 ] Support for large files (>= 2 GiB), part 2 Submitted By: Jonathan - no_dice Summary: This patch hopefully fixes the remaining types and related code to enable files >= 2 GiB to be streamed. Jonathan claims to have tested this with a patched version of ushare-0.9.8 and a D-Link DSM-520. 2007-01-09 Marcelo Jimenez * SF Tracker [ 1628629 ] Multicast interface patch Submitted By: Fredrik Svensson - svefredrik This patch fixes two problems: 1) Specify the IP address for the interface when we do setsockopt IP_ADD_MEMBERSHIP. This makes it possible to run when no default router has been configured. 2) Explicitly set the multicast interface through setsockopt IP_MULTICAST_IF. Avoids socket error -207 in some cases. * SF Tracker [ 1628590 ] XML parsing segfault patch Submitted By: Fredrik Svensson - svefredrik This patch fixes a segmentation fault problem that occurrs when parsing XML code than some routers produce. 2007-01-06 Marcelo Jimenez * SF Tracker [ 1628552 ] XML white space patch Submitted By: Fredrik Svensson - svefredrik * SF Tracker [ 1628562 ] Maximum total jobs patch Submitted By: Fredrik Svensson - svefredrik Also, I incremented the libray versions and included some comments in the file configure.ac so that we do not bump the library version excessively, only the necessary numbers on the next release. * SF Tracker [ 1628575 ] Linksys WRT54G patch Submitted By: Fredrik Svensson - svefredrik * SF Tracker [ 1628636 ] SSDP packet copy patch Submitted By: Fredrik Svensson - svefredrik Changed NUM_COPY to 1 since, according to section 9.2 of the HTTPU/MU spec, we should never send more than one copy of a reply to an SSDP request. Ref. section 9.2 of http://www.upnp.org/download/draft-goland-http-udp-04.txt 2006-12-23 Marcelo Jimenez * Thorough revision of every call of http_MakeMessage() due to a bug introduced in rev.79 "largefile patch added". http_MakeMessage() has a worst than brain damaged "printf" like interface. In rev.79, the "N" format parameter must be an off_t. Every call of this function with an "N" format parameter and an int passed on the stack would fail terribly. * SF Bug tracker [ 1590469 ] Typo in ixmlparser.c Submitted By: Erik Johansson - erijo * SF Bug Tracker [ 1590466 ] Invalid xml output Submitted By: Erik Johansson - erijo * SF Patch tracker [ 1581161 ] VStudio2005 patch Submitted By: David Maass - darkservant * SF Patch tracker [ 1587272 ] const-ified ixml Submitted By: Erik Johansson * Finished const-ifications as suggested by Erik Johansson in SF Patch tracker [ 1587272 ]. 2006-07-05 Nektarios K. Papadopoulos * [bug-id] 1580440 [submitted-by] Erik Johansson - erijo [patched-by] Erik Johansson - erijo The SOAP HTTP message that's generated on upnp errors is missing a \r\n\ between header and body. 2006-07-07 Oxy * support for large files (>2 GBytes) added ******************************************************************************* Version 1.4.1 ******************************************************************************* 2006-07-07 Oxy * full support for Windows added, static library and DLL are fully working, code compiles with Borland Builder C++ and MS Visual C/C++ 2006-07-05 Nektarios K. Papadopoulos * Include prebuilt documentation (html,pdf), dropping doc++ dependancy. 2006-07-03 Marcelo Jimenez * Patch for FreeBSD, thanks to Markus Strobl. 2006-06-26 Marcelo Jimenez * Fix for missing "else" in httpreadwrite.c. Thanks to npapadop for the patch. 2006-06-26 Marcelo Jimenez * Fix for va_list initialization in x86_64 architectures. 2006-06-08 Oxy * Patch to fix memory leaks and reasons for crashes added (thanks to loigu) ******************************************************************************* Version 1.4.0 ******************************************************************************* 2006-05-26 Oxy * defines in iasnprintf.h changed to work with GCC-version < 3 2006-05-22 Oxy * BSD-patch added (not tested yet on an BSD system) 2006-05-19 Oxy * Patch added for bug: ixml parser colapsed on empty args (arg="") 2006-05-18 Oxy * DSM-320 patch added (fetched from project MediaTomb) * httpGet additons atch added, Added proxy support by introducing UpnpOpenHttpGetProxy. UpnpOpenHttpGet now just calls UpnpOpenHttpGetProxy with the proxy url set to NULL. * Bugfix for typo ("\0" / "0") in ixmlparser.c * Bugfix for M-Search packet ******************************************************************************* FORK FROM DEAD libupnp ******************************************************************************* 2006-04-29 Rémi Turboult * THANKS: new file with list of contributors * upnp/src/gena/gena_device.c (respond_ok): add 'Content-Length: 0' in subscription response. Patch by Chaos (Bug # 1455367). 2006-04-08 Rémi Turboult * upnp/doc/UPnP_Programming_Guide.pdf: replace this document with the one in libupnp-doc-1.2.1 because current CVS version was corrupted. 2006-04-06 * changes applied to several files to work under Sparc Solaris, temporarily requiring a define SPARC_SOLARIS 2006-04-03 Rémi Turboult * upnp/Makefile.am: install upnp samples in $(docdir)/examples 2006-03-28 Rémi Turboult * configure.ac: add --with-docdir option to choose where documentation is installed (or -without-docdir to not install the documentation) 2006-03-27 Rémi Turboult * ixml/test: add simple test suite for xml parser 2006-03-26 Rémi Turboult * ixml/src/ixmlparser.c (Parser_processCDSect): fix bug which prevents CDATA sections which contain a 0 (zero) to be parsed (instead the parsing of the whole document is aborted). Patch by Arno Willig (Patch # 1432124). * configure.ac, upnp/Makefile.am: add "--disable-samples" configure option, and move samples compilation from check_PROGRAMS to noinst_PROGRAMS 2006-03-25 Rémi Turboult * upnp/src/genlib/miniserver/miniserver.c (get_miniserver_sockets): fix bug if new socket created has fd 0 (can only occur when stdin has been closed). Patch by Oskar Liljeblad 2004-07-02 : http://sourceforge.net/mailarchive/message.php?msg_id=8870528 2006-03-21 Rémi Turboult * upnp/test/test_init.c: add some version checks and exit if failure 2006-03-05 Rémi Turboult * libupnp version 1.3.1 * upnp/inc/upnpconfig.h.in: add new define UPNP_VERSION_PATCH * upnp/test/test_init.c: add simple test to run during checks * upnp/inc/upnp.h: include "upnpdebug.h" only if debug enabled in the library (else header file is not installed) * upnp/Makefile.am (libupnp_la_LDFLAGS): add inter-library libtool dependencies between upnp and ixml / threadutil, so that programs linking against upnp only still work. 2006-03-04 Rémi Turboult * libupnp version 1.3.0 2006-03-03 Rémi Turboult * upnp/src/genlib/net/http/httpreadwrite.c (get_sdk_info): use package version string from configure to set sdk info * upnp/Makefile.am: add sample/tvdevice/web/ files in EXTRA_DIST + do not distribute generated upnpconfig.h file. 2006-02-28 Rémi Turboult * upnp/src/inc/config.h, configure.ac: use only new defines UPNP_HAVE_xx instead of INCLUDE_yyy_APIS and INTERNAL_WEB_SERVER * upnp/Makefile.am, ixml/Makefile.am: add -export-symbols-regex to the librarie LDFLAGS in order to export only the symbols defined in the API 2006-02-27 Rémi Turboult * configure.ac: add libtool versions for the 3 libraries * ixml/src/ixml.c (copy_with_escape): add missing 'static' to function * threadutil/src/ThreadPool.c (SetSeed): add missing 'static' 2006-02-26 Rémi Turboult * threadutil/inc/iasnprintf.h: add gcc __printf__ format attribute to "iasnprintf" * upnp/src/api/upnpapi.c: fix invalid UpnpPrintf formats * upnp/src/gena/gena_device.c: fix invalid UpnpPrintf formats * upnp/src/inc/config.h: move upnp/inc/config.h to internal sources (this file is no longer installed with the libraries) * upnp/inc/upnpdebug.h: new file created from debug definitions previously in upnp/inc/config.h * upnp/src/api/config.c: rename to upnp/src/api/upnpdebug.c * upnp/inc/upnpconfig.h.in: new file to contain information on the configuration of the installed libraries (generates installed file ) 2006-02-22 Rémi Turboult * upnp/ : add missing include of config.h in some .c files 2006-02-21 Rémi Turboult * upnp/inc/upnp.h: move some definitions which should not be exported into "upnp/src/inc/util.h" * import all modifications below from libupnp in djmount 0.51 into official libupnp 2006-01-17 Rémi Turboult * threadutil/Makefile.am (libthreadutil_la_SOURCES): remove extraneous file 2006-01-15 Rémi Turboult * configure.ac: add checks for large-file support * upnp/inc/config.h: rename to "upnpconfig.h". The new "config.h" file is the one generated by autoconf. * m4/type_socklen_t.m4: added new check for socklen_t (fallback to int if not defined) * upnp/src/genlib/miniserver/miniserver.c, upnp/src/ssdp/ssdp_server.c: use socklen_t where appropriate (instead of int) * upnp/src/genlib/net/http/httpreadwrite.c (get_sdk_info): remove XINLINE declaration (unused and too late) * ixml/src/node.c (ixmlNode_getNodeType): fix compilation warning on const return type 2006-01-12 Rémi Turboult * upnp/src/inc/readwrite.h : suppress unused C++ header file 2006-01-11 Rémi Turboult * upnp/inc/config.h, upnp/src/inc/upnpapi.h, upnp/src/inc/httpreadwrite.h: remove internal configuration variable MINIMUM_DELAY (no clear purpose) 2005-12-05 Rémi Turboult * upnp/inc/upnp.h: re-declare obsolete method UpnpSetContentLength, for binary compatibility with previous libupnp version. * upnp/src/api/upnpapi.c: correct type of g_maxContentLength to size_t 2005-11-01 Rémi Turboult * autoconfiscate library : replace all makefiles by Makefile.am for automake support, + preliminary autoconf support (generated config.h not yet used in source files) 2005-10-18 Rémi Turboult * upnp/src/makefile: fix location of DEBUG STATIC libupnp library * upnp/sample/tvctrlpt/linux/Makefile, upnp/sample/tvdevice/linux/Makefile: fix STATIC library support 2005-10-16 Rémi Turboult * threadutil/src/Makefile (clean): remove built library 2005-08-28 Rémi Turboult * ixml/src/ixml.h, ixml/src/ixml.c (ixmlRelaxParser) : new function * ixml/src/ixmlparser.h, ixml/src/ixmlparser.c (Parser_setErrorChar) : new function 2005-08-02 Rémi Turboult * ixml/src/Makefile: correct bug for static library being incorrectly stripped when building non-debug 2005-06-09 Rémi Turboult * ixml/src/element.c (ixmlElement_removeAttributeNode): remove some compilation warning * ixml/inc/ixml.h, ixml/src/document.c : add some missing const's in public API * upnp/inc/upnptools.h, upnp/src/api/upnptools.c : add missing const's in public API 2005-05-28 Rémi Turboult * upnp/inc/config.h: suppress HTTP_READ_BYTES (unused) and replace by DEFAULT_SOAP_CONTENT_LENGTH (previously in upnpapi.h) * upnp/inc/upnp.h, upnp/src/api/upnpapi.c : replace UpnpSetContentLength (which was not using its Handle argument) by global function UpnpSetMaxContentLength. Remove "hard" limitation to 32K (not suitable for using in UPnP AV). * upnp/src/inc/upnpapi.h : removed DEFAULT_SOAP_CONTENT_LENGTH (moved to config.h) and MAX_SOAP_CONTENT_LENGTH (now unused) * upnp/src/api/upnptools.c : add more error message strings * upnp/src/genlib/net/http/httpreadwrite.c : return OUTOF_BOUNDS instead of BAD_HTTPMSG when allowed Content Length is exceeded. * upnp/src/genlib/net/http/httpreadwrite.c : corrected an incorrect sprintf format 2005-05-27 Rémi Turboult * upnp/makefile, upnp/src/makefile, ixml/Makefile, ixml/src/Makefile, threadutil/Makefile, threadutil/src/Makefile : implement STATIC library support (from patch at http://sourceforge.net/tracker/?group_id=7189&atid=307189 ) 2005-05-26 Rémi Turboult * upnp/src/api/upnpapi.c, upnp/src/soap/soap_device.c, upnp/src/soap/makefile : corrections for compilation with CLIENT=1 only * importing "libupnp-1.2.1a" as baseline