libupnp/ChangeLog
2010-10-04 09:58:15 -03:00

1592 lines
62 KiB
Plaintext

*******************************************************************************
Version 1.6.8
*******************************************************************************
*******************************************************************************
Version 1.6.7
*******************************************************************************
2010-10-01 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Adding --disable-notification-reordering option
Adding a configure flag to disable GENA notification reordering as even
with an imillisleep(1), this mechanism consumes too much CPU on embedded
devices when there is a burst of notifications.
2010-09-30 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Bug fix when there is no service in embedded devices
When a device with embedded devices (like IGD) when created and one of
the embedded devices did not have any service, there was a Segmentation
Fault (see SF Tracker [ 2688125 ]).
Original SF Tracker issue follows:
SF Tracker [ 2688125 ] v1.6.6 crashes on subdevices without services
Submitted by: Arno Willig ( akw ) - 2009-03-15 22:45:23 BRT
I discovered a bug, which will make libupnp (1.6.6) segfault, when you
create a upnp description document with multiple devices which have
subdevices, but no own services.
The crash occurs in genlib/service_table.c in line 977:
end->next =
getServiceList( currentDevice, &next_end, URLBase );
In this case "end" seems not to be defined, so end->next crashes.
Can anyone confirm this, please?
2010-09-28 Marc Essayan <marc.essayan(at)orange-ftgroup.com>
Bug fix on burst of GENA notification
When a lot of notifications were generated by a device in a short
period of time then 100% of the CPU was used to reorder those
notifications by pushing back the thread in the job queue. This
mechanism has been modified so now thread sleep 1 ms before being
pushed back into the job queue.
Removing DEFAULT_SCHED_PARAM parameter and use
sched_get_priority_min(DEFAULT_POLICY) instead.
2010-09-22 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Bug fix on M-SEARCH response
Devices must respond to M-SEARCH requests for any supported version and the
response should specify the same version as was contained in the search target.
Previously, the device did not answer if the M-SEARCH request did not
contain the same version number than the version number of the device.
2010-09-21 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Add Content-Language iff Accept-Language
Add Content-Language header in the response if and only if there is an
Accept-Language header in the request.
2010-09-21 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Addition of WEB_SERVER_CONTENT_LANGUAGE parameter
This patch adds the WEB_SERVER_CONTENT_LANGUAGE parameter so the user can specify
the language used by the device during Description and Presentation steps of UPnP
through the HTTP CONTENT-LANGUAGE header.
By default, the WEB_SERVER_CONTENT_LANGUAGE is an empty string so no
CONTENT-LANGUAGE is added.
2010-09-18 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Customize the stack size of the threads used by pupnp through the new
THREAD_STACK_SIZE variable.
This patch allows a user to customize the stack size of the threads used by
pupnp through the new THREAD_STACK_SIZE variable. This is especially useful
on embedded systems with limited memory where the user can set THREAD_STACK_SIZE
to ITHREAD_STACK_MIN.
However, as this modification can have side effects, I set 0 as the default
value, so threads will continue to use the default stack size of the system
(which varies greatly as stated in
https://computing.llnl.gov/tutorials/pthreads/).
2010-09-16 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Broken IPv6.
IPv6 is currently broken in latest release of branch-1.6.x, so find a
patch attached that correct the issue (small fixes on define, undef and
retVal).
2010-09-10 Warwick Harvey <warwick.harvey(at)tieto.com>
Patch to take notice of UPNP_USE_RWLOCK flag
The configure.ac file included with UPnP checks for the presence of the
pthread_rwlock_t type, and then sets the value of the UPNP_USE_RWLOCK
flag appropriately. However, this flag is not referenced at all in the
source code, and thus the code does not compile on systems that don't
have the pthread_rwlock_t type (such as Android).
Please find attached a patch (against the current 1.6.x head) that checks
the value of this flag and falls back on using mutexes if read-write
locks are not available.
2010-09-10 Jean Sigwald <jean.sigwald(at)orange-ftgroup.com>
I discovered a reliable denial-of-service issue on the last stable
release of libupnp (1.6.6) remotely triggerable by any
unauthenticated user. The issue is related with a bad parsing of
malformed XML.
2010-09-10 Chandra Penke <chandrapenke(at)mcntech.com>
* SF Patch Tracker [ 2854711 ] Patch for Solaris10 compilation and usage
Submitted By: zephyrus ( zephyrus00jp )
Patch for Solaris10 compilation and usage.
2010-09-10 Chandra Penke <chandrapenke(at)mcntech.com>
Add support for conditionally enabling ipv6.
2010-09-10 Chandra Penke <chandrapenke(at)mcntech.com>
Fix for compilation in debug builds.
Ensure internal methods are declared as static since debug builds don't inline.
2010-09-09 Chandra Penke <chandrapenke(at)mcntech.com>
Fix for regression in SSDP code to send/receive messages over UDP
Sending messages over UDP is broken in some Apple OSes
such as OS X and iOS. This might be broken in other OSes to but didn't
verify.
The fix is to modify the socket lenght argument of sendto to use the correct
sockaddr lenght dependng on whether the socket is IPV4 or IPV6.
Also added some error checks and debugging related to the issue
2010-09-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
Using UpnpReadHttpGet to download large files causes the application to
crash. This happens when the file being downloaded exceeds the device
memory - entirely possible when transferring video files.
The programmatic cause is that the logic implemented in the function
http_ReadHttpGet (which UpnpReadHttpGet calls) reads the entire file
into memory. The fix modifies the existing logic to discard data after
it's been read; there's no reason to keep it around since the caller
of UpnpReadHttpGet already has a copy of it.
This issue exists in 1.6.6 as well as the latest sources.
Patch submitted by Chandra (inactiveneurons).
2010-09-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
In the latest sources, http_RequestAndResponse and other methods that
use connect() are broken. More specifically, connect() in these methods
is returning with an EINVAL. The programatic cause is that the address_len
argument passed to connect() is different in IPV4 vs IPV6 (as described in:
http://www.opengroup.org/onlinepubs/009695399/functions/connect.html).
The current code always uses the IPV6 size. The fix modifies each use of
connect() to use the correct size based on the address family being used.
Patch submitted by Chandra (inactiveneurons).
2010-09-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
Fix compilation error in upnp/src/gena/gena_ctrlpt.c (this is most
likely an error on all platforms).
Patch submitted by Chandra (inactiveneurons).
2010-09-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
Fix compilation error in upnp/src/inc/ssdplib.h when compiling in OS X
(the netinet/* headers are not available).
Patch submitted by Chandra (inactiveneurons).
2010-09-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
Fix compilation error in ixml/inc/ixml.h when compiling with an
Objective-C compiler (when cross-compiling for iPhone devices).
Patch submitted by Chandra (inactiveneurons).
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Issue regarding the GENA notifications. A string termination indicator
was added at the end of the notification ("\r\n") in
notify_send_and_recv() in upnp/src/gena/gena_device.c.
Patch by Fabrice Fontaine.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* The last part of Ronan Menard's patch.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* upnp/src/ssdp/ssdp_device.c: Fix for IPV6 ULA/GUA issues.
* upnp/src/ssdp/ssdp_ctrlpt.c: Fix for IPV6 ULA/GUA issues.
* upnp/src/ssdp/ssdp_server.c: Fix for IPV6 ULA/GUA issues.
Patch submitted by Ronan Menard.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* upnp/src/genlib/miniserver/miniserver.c: Fix for IPV6 ULA/GUA issues.
Patch submitted by Ronan Menard.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* gena_subscribe(): Fix for IPV6 ULA/GUA issues.
Patch submitted by Ronan Menard.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SOCKET ssdpSock6UlaGua: created variable for later use.
Patch submitted by Ronan Menard.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SSDP_IPV6_SITELOCAL: new macro.
Patch submitted by Ronan Menard.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* The scope of the macro NUM_HANDLE is now restricted to upnpapi.c.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* InitHandleList() has never been implemented, I guess no one has ever
called it, so remove it.
* GetFreeHandle() and FreeHandle() are now static as they should.
2010-08-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* New internal buffer added to store global/ula IPV6 address.
* Macros to test whether an IPV6 address is global or ula.
* UpnpGetServerUlaGuaIp6Address(): added interface.
* IN6_IS_ADDR_GLOBAL, IN6_IS_ADDR_ULA: new macros.
* gIF_IPV6_ULA_GUA: new buffer.
* UpnpRegisterRootDevice3(): Change to the test of already registered
devices for IPV6.
* UpnpGetIfInfo(): gua/ula issues.
Patch submitted by Ronan Menard.
2010-08-19 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* libUPnP does support IPV6 now.
Patch submitted by Ronan Menard.
2010-08-19 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* HTTP version equal to 1.0 should fail as required by the UPnP
certification tool. Patch submitted by Ronan Menard.
2010-06-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
SF Bug Tracker [ 3022490 ] String declaration fix for patch applied in 3007407
Hello,
When my patch for tracker ID 3007407 was accepted, the definition of the
serviceList string was changed from
#define SERVICELIST_STR "serviceList"
to
static const char *SERVICELIST_STR = "serviceList";
During internal code review of the final patch, it was pointed out that
sizeof(SERVICELIST_STR) == 4 since SERVICELIST_STR is now declared as
a pointer instead of an array.
If you wish to use a variable instead of a define, I suggest the
following instead:
static const char SERVICELIST_STR[] = "serviceList";
Thanks,
Chuck Thomason
2010-06-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
SF Bug Tracker [ 3007407 ] Service traversal issue in AdvertiseAndReply()
Submitted: Chuck Thomason ( cyt4 ) - 2010-05-26 15:07:39 UTC
When the UPnP server is started, one alive message is broadcast for each
service in each device. It appears that libupnp's implementation of the
alive message generation does not correctly navigate the XML description
document when locating the services. This can result in the wrong UDN
being used in the alive message sent for a service.
In my specific case (see attached XML), the root EchoSTB device contains
no services, but its embedded MediaServer device contains 2 services.
When the existing libupnp code traverses the EchoSTB device in the XML,
it searches the global list of serviceLists within the document instead
of searching for a serviceList that is its direct child node. The
ContentDirectory and ConnectionManager services are then announced with
the UDN of EchoSTB1 (the root device) instead of with the UDN of
MediaServer, which is actually their parent device.
I discovered this behavior using libupnp-1.6.6. I have generated a patch
against branch-1.6.x that corrects the XML navigation such that all
services are traversed from their parent device, which results in the
correct UDN being sent in the alive message for each service. I built
from branch-1.6.x without this patch, tested, and confirmed that the
issue still exists as I observed it in libupnp-1.6.6. I then built
from branch-1.6.x with this patch, tested, and confirmed that the
issue was resolved.
Thanks,
Chuck Thomason
2010-05-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
SF Bug Tracker [ 2995758 ] libupnp 1.6.6, wrong bind when reuseaddr is
1.
Submitted: viallard anthony ( homer242 )
When trying to use reuseaddr option in miniserver/miniserver.c, there
isn't a affectation of the port chosen (serverAddr.sin_port isn't
receive listen_port variable value).
2010-04-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
Define PROTOTYPES to be one by default in global.h. This affects the
RSA MD5 code.
2010-03-27 Nick Leverton <nick@leverton.org>
Subscription auto-renewals copy the renewal time from old subscription.
2010-03-27 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added API to ithread, created the following functions:
- int ithread_initialize_library(void);
- int ithread_cleanup_library(void);
- int ithread_initialize_thread(void);
- int ithread_cleanup_thread(void);
* SF Bug Tracker [ 2876374 ] Access Violation when compiling with Visual Studio 2008
Submitted: Stulle ( stulleamgym ) - 2009-10-10 19:05
Hi,
I am one of the devs of the MorphXT project and I use this lib in some
other of my projects, too. When I tried to upgrade the lib earlier for one
of my projects I had to realise that something did not work at first and
while most of the things were reasonably ease to be fixed. Now, the last
thing I encountered was not so easy to fix and I am uncertain if my fix is
any good so I'll just post it here and wait for some comments.
The problem was that I got an Access Violation when calling "UpnpInit". It
would call "ithread_rwlock_init(&GlobalHndRWLock, NULL)" which eventually
led to calling "pthread_cond_init" and I got the error notice at
"EnterCriticalSection (&ptw32_cond_list_lock);". It appeared that
"ptw32_cond_list_lock" was NULL. Now, I found two ways to fix this. Firstly
moving the whole block after at least one of the "ThreadPoolInit" calls
will fix the issue. Secondly, you could add:
#ifdef WIN32
#ifdef PTW32_STATIC_LIB
// to get the following working we need this... is it a good patch or
not... I do not know!
pthread_win32_process_attach_np();
#endif
#endif
right before "ithread_rwlock_init(&GlobalHndRWLock, NULL)".
Just so you know, I am using libupnp 1.6.6 and libpthreads 2.8.0 and both
are linked static into the binaries. I am currently using Visual Studio
2008 for development with Windows being the target OS. Any comment at your
end?
Regards, Stulle
2010-03-27 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2836704 ] Patch for Solaris10 compilation and usage.
Submitted By: zephyrus ( zephyrus00jp )
This second part covers the issue on linking with -lsocket -lnsl -lrt.
2010-03-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 2392166 ] ithread_detach not called for finished worker thread
Submitted: Ulrik ( ulsv_enea ) - 2008-12-05 08:24
Valgrind reports a memory leak due to that the function ithread_detach is
not called for finished worker threads in ThreadPool.c.
==21137== 2,176 bytes in 8 blocks are possibly lost in loss record 5 of 5
==21137== at 0x4C20F3F: calloc (vg_replace_malloc.c:279)
==21137== by 0x4010F58: _dl_allocate_tls (in /lib/ld-2.6.1.so)
==21137== by 0x544BA92: pthread_create@@GLIBC_2.2.5 (in
/lib/libpthread-2.6.1.so)
==21137== by 0x5F94592: CreateWorker (ThreadPool.c:639)
==21137== by 0x5F95079: ThreadPoolInit (ThreadPool.c:784)
I'm using libupnp 1.6.6
For more info on pthread_detach, see:
http://gelorakan.wordpress.com/2007/11/26/pthead_create-valgrind-memory-lea
k-solved/
2010-03-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 2392304 ] Memory leak in SSDP AdvertiseAndReply
Submitted: Ulrik ( ulsv_enea ) - 2008-12-05 08:24
Valgrind reports a memory leak function in AdvertiseAndReply
(ssdp/ssdp_server.c) in libupnp 1.6.6
There are continue statements in many places in AdvertiseAndReply. In some
of those error handling cases the variable nodelist is not free'ed before
continuing to the next iteration. The next iteration will take care of
free'ing the nodelist from the previous iteration in most cases, but not
when breaking out of the for loop after the last element.
I belive this memory leak can be solved by makeing sure that the rows
ixmlNodeList_free( nodeList );
nodeList = NULL;
are always executed, also in the beginning of the last iteration when we
found out that there are not more elements.
==29110== at 0x4C21C16: malloc (vg_replace_malloc.c:149)
==29110== by 0x5D8DE0E: ixmlNodeList_addToNodeList (nodeList.c:106)
==29110== by 0x5D8B7E2: ixmlNode_getElementsByTagNameRecursive
(node.c:1438)
==29110== by 0x5D8E587: ixmlElement_getElementsByTagName
(element.c:491)
==29110== by 0x5B6C0F1: AdvertiseAndReply (ssdp_server.c:201)
==29110== by 0x5B7AB74: UpnpSendAdvertisement (upnpapi.c:1495)
2010-03-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* libupnp and multi-flows scenario patch
Submited by Carlo Parata from STMicroelectronics.
Hi Roberto and Nektarios,
after an analysis of the problem of libupnp with a multi-flows scenario, I
noticed that the only cause of the freezed system is the ThreadPool
management. There are not mutex problems. In practise, if all threads in the
thread pool are busy executing jobs, a new worker thread should be created if
a job is scheduled (I inspired to tombupnp library). So I solved the problem
with a little patch in threadutil library that you can find attached in this
e-mail. I hope to have helped you.
2010-03-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2964973 ] install: will not overwrite just-created
...blah... with...
Submitted: Nick Leverton ( leveret ) - 2010-03-07 05:18
Full error:
/usr/bin/install: will not overwrite just-created
`/tmp/buildd/libupnp-1.6.6/debian/tmp/usr/share/doc/libupnp3-dev/examples/s
ample_util.c' with `common/sample_util.c'
This seems to be from Automake 1.11 which doesn't like having duplicate
files in a Makefile.am. Patch attached, kindly provided by Stefan Potyra
for Debian (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543068)
This fix will be needed for both 1.6.x and 1.8.x branches.
2010-03-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Backport of svn revision 504:
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-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2836704 ] Patch for Solaris10 compilation and usage.
Submitted By: zephyrus ( zephyrus00jp )
Obs by Marcelo: The issue with linking with -lsocket -lnsl -lrt is not
covered in this changeset beacuse I don't have solaris to test. I will
need some help from zephyrus in this regard. The issue will be addressed
in a future changeset.
Compilation for solaris
I have used gcc3.x and gcc4.x under solaris 10 for x86 / 64 bits.
A couple of Source file fixes were necessary for successful compilation
and runtime behavior.
threadutil/src/ThreadPool.c
POSIX
sched_setschduler() returns non-negative value for success.
Without the fix, UpnpInit() fails immediately.
upnpp/src/api/upnpai.c
There is a typo of a macro name "__sun" in one of the
CPP conditional.
Without the fix, the compilation aborts due to unknown constant
in socket ioctl call.
A few structs and an array is not properly initialized.
Well, I think it may be safe as is, but when I checked it
using purify evaluation version, it was reported that
uninitizlied iszBuffer may cause read of uninitialized memory.
So play it safe.
Configure issue.
This has to be more of a configure magic.
To link a program successfully using network, we need
-lsocket and -lnsl library specifications on the link line.
We also need -lrt for programs that use thread scheduling features.
The sample program under upnp/sample requires
-lsocket -lnsl -lrt
for successful linking.
I added -lsocket -lnsl -lrt to Makefile.in.
configure probably needs to take care of these.
I don't know much about configure, automake, etc., so
I am just raising a flag here.
TIA
2010-03-20 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2203721 ] timeb.h check obsolete
2010-03-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2970872 ] Update ErrorMessages for latest return
code list
Submitted By: Nick Leverton ( leveret )
ErrorMessage[] in upnptools.c has got a bit out of sync, the attached
patch (generated from grep 'define UPNP_E_') should bring it up to date.
2010-03-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2857611 ] Declare a few functions to have proper
(void) argument list.
Submitted By: zephyrus ( zephyrus00jp )
In a publicly installed headers, a few functions are declared without any
arguments at all, a la "()".
When I used gcc's -Wimplict and -Wstrict-prototypes to check for the
mismatch of
function prototype declarations and their usage in my own program,
some headers from libupnp-1.6.6 produced warnings.
They are not strictly bugs, but pretty much annoying. This is 2009, and
almost all the important compilers
understand ISO-C.
So the offending functions are declared as "(void") to show that they have
no arguments at all.
2010-03-14 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patch Tracker [ 2546532 ] Missing carriage return between
SOAPACTION and User-Agent headers.
There is something going wrong in soap_ctrlpt.c at line 931 (based on
version 1.6.6 release).
The http_Makemessage call looks as follows:
if (http_MakeMessage(
&request, 1, 1,
"Q" "sbc" "N" "s" "s" "Ucc" "sss",
SOAPMETHOD_POST, path.buf, path.length,
"HOST: ", host.buf, host.length,
content_length,
ContentTypeHeader,
"SOAPACTION:
\"urn:schemas-upnp-org:control-1-0#QueryStateVariable\"",
xml_start, var_name, xml_end ) != 0 ) {
return UPNP_E_OUTOF_MEMORY;
}
This will result in the SOAPACTION header to be immediately followed by the
User-Agent header, while a cr-lf should separate the two. I propose to fix
this by changing the second "s" to "sc" to force the addition of a cr-lf
after the SOAPACTION. This looks consistent to the other Makemessage calls.
2009-03-06 Oxygenic <oxygenic(at)users.sourceforge.net>
* parameter problem fixed in soap_request_and_response(), 2nd call to
http_RequestAndResponse() was wrong (thanks to Kim Kyungsan)
2008-07-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added upnp/m4/libupnp.m4 to the distribution tarball.
2008-07-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a missing HandleUnlock() in upnp/src/gena/gena_device.c.
2008-07-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 2026431 ] pupnp does not build on GNU/KfreeBSD.
Submitted By: Nick Leverton - leveret
Gnu/KFreeBSD is one of the Debian architectures, it includes a FreeBSD
kernel with GNU userspace (glibc etc). The Gnu/KfreeBSD developers
provided the attached patch to test the appropriate #define and allow pupnp
to build in their environment, and asked me to forward it to you.
Since the test is a simple check for defined(__GLIBC__), this would
presumably also help with other ports of GNU libc to non-Linux kernels.
2008-07-16 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Andre Sodermans (wienerschnitzel) patch for building libupnp under
windows systems with VC9. This one fixes a missing include.
2008-06-30 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added an m4 macro to deal with finding libupnp in the users'
configure script.
2008-06-11 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a buffer overflow due to a bug in the calculation of the
CONTENT-TYPE header line size, the length was beeing calculated with
the wrong string, there was a missing colon.
2008-06-02 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1942285 ]
UpnpCreatePropertySet can leak memory.
Submitted By: Bob Ciora - bobciora
In file upnp/src/api/upnptools.c, function UpnpCreatePropertySet can leak
memory if no additional arguments are passed. This is because of the
'return' statement at (or near) line 554.
The prior call to ixmlParseBufferEx may succeed. This causes a basic ixml
tree to be created. The return statement at line 554 leaves this tree in
memory without cleaning it up.
There are two options: either add code prior to the return at 554 to clean
up the tree, or simply allow a NumArg parameter of 0 to be passed.
I prefer the second method -- there doesn't seem to be any need to pass
*any* arguments to this function.
In my local copy of upnptools.c, I have simply replaced the "return NULL"
in line 554 to "return PropSet".
I've attached the source file.
2008-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1903069 ]
Subs (not services) not marked 'active'
Submitted By: Bob Ciora - bobciora
If the UpnpAcceptSubscription is not called, the subscription is not marked
as "active", so no state variables will ever be sent.
I have a "lazy" architecture where a service may not be ready to publish
any state data at the time of a subscription. Subscriptions are still
accepted, there's just nothing to send, so UpnpAcceptSubscription is never
called. As a result, the subscription is never marked as "active" via the
genaInitNotify functions.
A best course of action would be to modify UpnpAcceptSubscription<...>
functions so that they can accept *no* initial state information, but can
still result in the subscription being marked as active. Technically,
then, the "active" flag should be set here, not in the genaInitNotify<...>
functions.
But the UpnpAccept functions don't muck with the subscription table, and
it's more work than it's worth to move that code from the gena fucntions to
the upnpapi functions.
So--- what I've done to correct this problem is to modify both
UpnpAcceptSubscription<...> functions (in upnppapi.c) to accept an empty
state list and still call the gena layer functions. The gena layer
genaInitNotify<...> functions (gena_device.c) then mark the subscription as
"active" *before* checking for an empty state set.
In genaInitNotify, a check for "var_count <= 0" is added immediately after
the "subs->active = 1;" line. If this occurs, then all cleanup is
performed and the function returns GENA_SUCCESS (since now, an empty state
list is not an error). The same check is made for "PropSet == 0" in
genaInitNotifyExt (just after the "subs->active = 1;" line).
I've modifified my proxy layer to call UpnpAcceptSubscriptionExt even when
there is no state data to send. With the suggested changes to
gena_device.c, later state changes are sent correctly.
This has solved my problem.
2008-04-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix in function SetSeed() in threadutil/src/ThreadPool.c for CYGWIN
compilation. Thanks to Gary Chan.
*******************************************************************************
Version 1.6.6
*******************************************************************************
2008-04-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added thread id's to the UpnpPrintf debug messages. Thanks to
Charles Nepveu for the idea.
2008-04-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1948586 ]
Uppercase U in in "xmlns:U" in Invoke Action causes seg. f.
Submitted By: Thomas Norheim - kjakan_no
Device no longer segfaults with the following malformed xml action:
<u:SetColor xmlns:U="urn:schemas-upnp-org:service:tvpicture:1">
<Color>2</Color>
</u:SetColor>
2008-04-23 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Use -O0 in debug builds so that variables do not get optimized out.
2008-04-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Apostolos Syropoulos changes for OpenSolaris x86.
2008-03-20 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Andre Sodermans (wienerschnitzel) patch for building libupnp under
windows systems with VC9.
2008-03-20 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Andre Sodermans (wienerschnitzel) patch for building libupnp under
windows systems with VC8.
2008-03-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a printf format problem on the upnp_tv_device.c from both
upnp/sample/tvdevie and upnp/sample/tvcombo directories. The variable
port was a short int instead of an unsigned short and it was beeing
print as a negative value.
2008-03-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1902668 ] Cannot compile on MSVC
Submitted By Luke Kim - nereusuj
Version 1.6.5 cannot be compiled because of some changes in 1.6.3.
MSVC does not support stdint.h, gettimeofday(), sys/param.h, const int
variables in array size and Windows does not define _WINDOWS_ but define
_WINDOWS.
* MSVC does not understand "const int"'s as declarators of array
dimensions, we must use #define'd constants.
* Use WIN32 instead of _WINDOWS_ or _WINDOWS.
2008-02-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* No longer ignore "upnp:rootdevice" advertisement. Thanks to Bob Ciora.
2008-02-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Changed "sys_errlist[errno]", which is deprecated, by
"strerror_r()", which is thread safe.
2008-02-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Slightly improved error report by showing the sys_errlist string
corresponding to errno.
2008-02-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Got rid of two useless constants: UPNP_SOCKETERROR and
UPNP_INVALID_SOCKET. They both mean the same, that a network API
function has failed. -1 is the value to check, not an invented constant.
*******************************************************************************
Version 1.6.5
*******************************************************************************
2008-02-02 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Peter Hartley's fix for wrong sized variable beeing passed to
http_MakeMessage() on 64 bit architectures.
*******************************************************************************
Version 1.6.4
*******************************************************************************
2008-01-23 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Workaround for a problem with the new automake AM_CONDITIONAL macro
from autotools-1.10. Thanks to Ingo Hofmann for helping with debugging
this one.
2008-01-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added quoting to macros AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR and
AC_CONFIG_SRCDIR in configure.ac. Also changed the name of the
auxiliary directory in AC_CONFIG_AUX_DIR to build-aux.
2008-01-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix for setsockopt() in Threadpool.c to allow more than one process
to join the multicast-group on OSX. Thanks to Ingo Hofmann.
2008-01-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Using defined(__OSX__) || defined(__APPLE__) instead of just
defined(__OSX__) in the code. Thanks to Ingo Hofmann and Chris
Pickel.
2008-01-21 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix for isFileInVirtualDir. Thanks to Peter Hartley for the patch.
2008-01-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Putting back a "defined(__OSX__)" that has been removed in the
previous *BSD patch. Thanks to Chris Pickel for pointing it out.
2008-01-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Patches Tracker [ 1865812 ] typo in docs comment
Submitted By: Hartmut Holzgraefe - hholzgra
typo in docs comment ACCAPTED instead of ACCEPTED in
@name UPNP_E_UNSUBSCRIBE_UNACCAPTED [-302]
Also, the documentation file name was mispelled and was corrected in
the Makefile.am.
*******************************************************************************
Version 1.6.3
*******************************************************************************
2007-12-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Using pthread flags for the whole project, not just at the places
individually indicated by several Makefile.am files spread all over
the directories. That was too much error prone.
2007-12-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added a configure test to check if pthread_rwlock_t is available.
Define _GNU_SOURCE if needed. The fallback behaviou will only be
implemented if _GNU_SOURCE prooves to be insufficient on some
platforms. Thanks to Jonathan Casiot (no_dice) and Robert Gingher
(robsbox).
2007-12-17 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Removed unused iasnprintf.{c,h} files.
2007-12-17 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Removed STATSONLY() macro from ThreadPool.{c,h}.
* Removed time() usage from ThreadPool.c.
* Fixed STATS = 0 compilation.
2007-12-16 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Library was not compiling on FreeBSD 7. Code now no longer uses
ftime(), using gettimeofday() instead. Thanks to Josh Carroll.
*******************************************************************************
Version 1.6.2
*******************************************************************************
2007-12-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a compilation error due to a missing #ifdef in
upnp/src/genlib/miniserver/miniserver.c. Thanks to Eugene Christensen.
2007-11-12 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* "make check" was failing because ixml/test/test_document.sh did not
have the executable flag set. Thanks to Steve Bresson.
2007-11-12 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a memory leak in upnpapi.c to delete gMiniServerThreadPool in
the call to UpnpFinish(). Thanks to Fabrice Fontaine.
2007-11-09 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added a isleep() call to the error handler of select() in
RunMiniServer(), so that it does not take 100% cpu in case select()
fails repeatedly.
*******************************************************************************
Version 1.6.1
*******************************************************************************
2007-11-07 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1825278 ] AdvertiseAndReply sleeps with handle lock out
Applied patch from Alex (afaucher) to change some write locks to read
locks.
2007-11-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Adjusting libtool library numbers to reflect the last changes.
2007-11-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1825278 ] AdvertiseAndReply sleeps with handle lock out
GlobalHndMutex, which was a mutex is now GlobalHndRWLock, which is a
rwlock. HandleLock() is mapped to HandleWriteLock() while all other
instances have not been checked. One instance in AdvertiseAndReply()
has been changed to HandleReadLock(). Thanks to Alex (afaucher) for the
bug report and suggestions.
2007-11-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added support for rwlocks.
2007-11-05 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1825929 ] woker thread still alive after UpnpFinish()
Submitted By: Luke Kim - nereusuj
Worker thread still alive after calling UpnpFinish() because
ThreadPoolShutdown() is in the #ifdef DEBUG block.
421
422 #ifdef DEBUG
423 ThreadPoolShutdown( &gSendThreadPool );
424 ThreadPoolShutdown( &gRecvThreadPool );
2007-08-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Changed the calls to virtualDirCallback.open(filename, UPNP_WRITE)
to (virtualDirCallback.open)(filename, UPNP_WRITE) (notice the
parenthesis) due to a change in glibc that produces compilation
errors.
2007-08-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Initialization of the "randomness" struct so that valgrind does not
complain.
2007-08-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Merge of patch submitted By Keith Brindley - brindlk
SF Bug Tracker [ 1762758 ] Seek not working for large files
Problem:
Requests from the uPnP client to seek to a position beyond 2GB in a large
file are handled as a request to see from the 2GB point.
Impact:
Varies depending on client. The Xbox 360 kills the connection when it
realises.
Solution:
GetNextRange function (webserver.c) is updated to handle large file sizes.
Fix should also recognise when built on a 32bit platform rather than 64 and
handle accordingly.
2007-08-05 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Merge of Mac OS X patch from Stéphane Corthésy (davelopper),
SF Bug Tracker [ 1686420 ] Modifications for MacOSX.
Some of the proposed changes were already done by Rene Hexel's patch.
*******************************************************************************
Version 1.6.0
*******************************************************************************
2007-06-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* More fixes to Mac OS X and NetBSD from Rene Hexel:
[pupnp-devel] NetBSD & Mac OS X packages and patches
Okay, I found a couple more things. I have attached a patch file
against the trunk (version 206) that make the repository code compile
and run on both Mac OS X and NetBSD.
This fixes the following issues:
upnp/src/api/upnpapi.c: SIOCGIFCONF didn't work properly, use
getifaddrs() instead (on BSD systems).
threadutil/src/ThreadPool.c: priorities only work if
_POSIX_PRIORITY_SCHEDULING is defined (and greater than 0).
threadutil/src/LinkedList.c and threadutil/src/iasnprintf.c: use
stdlib.h instead of malloc.h on all BSD systems (not just FreeBSD).
This is important, because malloc.h does not exist on Darwin/Mac OS X.
Cheers
,
Rene
2007-06-09 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* [pupnp-devel] NetBSD & Mac OS X packages and patches.
Rene Hexel's <rh@netbsd.org> patch to compile in NetBSD and Mac OS X.
2007-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Updated the macro files acx_pthread.m4, ax_cflags_gcc_option.m4,
ax_cflags_warn_all.m4, m4/ax_cflags_warn_all_ansi.m4,
m4/type_socklen_t.m4.
2007-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed an issue with the instalation of the file upnpdebug.h. Since
the last modifications that removed the macro DEBUV_ONLY, this file
must be installed even on a non-debug build.
2007-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1711325 ] Bad DestAddr in Upnp_Discovery structure
Submitted By: Bob Ciora
The field DestAddr of the structure Upnp_Discovery is now a full
SOCKADDRIN instead of a pointer to SOCKADDRIN. Commented code sugests
that in a previous moment, the function ssdp_handle_ctrlpt_msg() did
not use a postponed thread to call ctrlpt_callback(). Now the code
uses a thread, and most probably the original data would get lost and
the pointer would point to an invalid memory region. This fix caused
an interface change in the library and the minor library version was
bumped. Also, the libtool library numbers were changed accordingly.
*******************************************************************************
Version 1.4.7
*******************************************************************************
2007-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added support for the Basic Device
(http://www.upnp.org/standardizeddcps/basic.asp) as suggested by
Titus Winters.
2007-05-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed the file libupnp.pc.in to generate a correct path for the
include files.
2007-05-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Removing the Dbg_Level, InitLog, SetLogFileNames and CloseLog
defines. These were just aliases, no reason to keep them.
2007-05-25 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Changed the comments of the include files that expose the UPnP API
to use only C89 comments and no C99 comments.
2007-05-24 Nektarios K. Papadopoulos <npapadop(at)inaccessnetworks.com>
* Added tvcombo sample that demonstrates coexistence of a device and a
control point in the same application.
2007-05-24 Nektarios K. Papadopoulos <npapadop(at)inaccessnetworks.com>
* 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 <npapadop(at)inaccessnetworks.com>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* Removed all uses of the DEVICEONLY(x) macro.
2007-05-17 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* Fixed a bug in UpnpPrintf, function could call va_start() and return
befor calling va_end().
2007-05-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* EXPORT_SPEC missing on some declarations in ixml/inc/ixml.h.
Thanks to David Maass.
2007-05-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* sizeof is unsigned, so %zu is more adequate than %zd.
2007-05-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* Rewrote raw_find_str. Now it no longer uses strcasestr(), but it
transforms the first input buffer into lowercase.
2007-05-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix for debug printf format strings. size_t are not expected
in a string format like "%.*s".
2007-05-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added inttypes.h as a header requirement in configure.ac.
2007-05-11 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* Fix for freebsd host_os in configure.ac.
*******************************************************************************
Version 1.4.5
*******************************************************************************
2007-04-19 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <npapadop(at)inaccessnetworks.com>
* Fix for a bug in makeAction where va_arg was beeing called one
extra time.
2007-04-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* [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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <oxygenic(at)users.sourceforge.net>
* Code adapted and typedefs added to compile cleanly under Windows
with Borland C++ Builder and MS Visual C++
2007-03-03 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed nasty segmentation fault bug on membuffer.c.
*******************************************************************************
Version 1.4.2
*******************************************************************************
2007-02-09 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* SF Tracker [ 1634922 ] Support for large files (>= 2 GiB), part 2
Submitted By: Jonathan Casiot - 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <mroberto(at)users.sourceforge.net>
* 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 <npapadop(at)inaccessnetworks.com>
* [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 <virtual_worlds(at)gmx.de>
* support for large files (>2 GBytes) added
*******************************************************************************
Version 1.4.1
*******************************************************************************
2006-07-07 Oxy <virtual_worlds(at)gmx.de>
* 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 <npapadop(at)inaccessnetworks.com>
* Include prebuilt documentation (html,pdf), dropping doc++
dependancy.
2006-07-03 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Patch for FreeBSD, thanks to Markus Strobl.
2006-06-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix for missing "else" in httpreadwrite.c. Thanks to npapadop
for the patch.
2006-06-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fix for va_list initialization in x86_64 architectures.
2006-06-08 Oxy <virtual_worlds(at)gmx.de>
* Patch to fix memory leaks and reasons for crashes added (thanks
to loigu)
*******************************************************************************
Version 1.4.0
*******************************************************************************
2006-05-26 Oxy <virtual_worlds(at)gmx.de>
* defines in iasnprintf.h changed to work with GCC-version < 3
2006-05-22 Oxy <virtual_worlds(at)gmx.de>
* BSD-patch added (not tested yet on an BSD system)
2006-05-19 Oxy <virtual_worlds(at)gmx.de>
* Patch added for bug: ixml parser colapsed on empty args (arg="")
2006-05-18 Oxy <virtual_worlds(at)gmx.de>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* upnp/Makefile.am: install upnp samples in $(docdir)/examples
2006-03-28 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* ixml/test: add simple test suite for xml parser
2006-03-26 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* upnp/test/test_init.c: add some version checks and exit if failure
2006-03-05 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* libupnp version 1.3.0
2006-03-03 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <upnp/upnpconfig.h>)
2006-02-22 Rémi Turboult <r3mi(at)users.sourceforge.net>
* upnp/ : add missing include of config.h in some .c files
2006-02-21 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* threadutil/Makefile.am (libthreadutil_la_SOURCES): remove extraneous
file
2006-01-15 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* upnp/src/inc/readwrite.h : suppress unused C++ header file
2006-01-11 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* threadutil/src/Makefile (clean): remove built library
2005-08-28 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* ixml/src/Makefile: correct bug for static library being incorrectly
stripped when building non-debug
2005-06-09 Rémi Turboult <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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 <r3mi(at)users.sourceforge.net>
* 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