From 191814ec1305feb61ec17940cb3b19e521d0a023 Mon Sep 17 00:00:00 2001 From: Marcelo Roberto Jimenez Date: Tue, 4 Jul 2006 02:49:47 +0000 Subject: [PATCH] Applying current development branch to 1.4.x stable branch. git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/branches/branch-1.4.x@30 119443c7-1b9e-41f8-b6fc-b9c35fce742c --- libupnp/AUTHORS => AUTHORS | 0 libupnp/COPYING => COPYING | 0 libupnp/ChangeLog => ChangeLog | 23 + libupnp/INSTALL => INSTALL | 0 libupnp/LICENSE => LICENSE | 0 libupnp/Makefile.am => Makefile.am | 0 libupnp/NEWS => NEWS | 0 libupnp/README => README | 9 + libupnp/THANKS => THANKS | 2 +- libupnp/TODO => TODO | 0 libupnp/bootstrap => bootstrap | 0 libupnp/configure.ac => configure.ac | 0 {libupnp/ixml => ixml}/Makefile.am | 0 {libupnp/ixml => ixml}/doc/Makefile.am | 0 {libupnp/ixml => ixml}/doc/docxx.sty | 0 {libupnp/ixml => ixml}/doc/intro.dxx | 0 {libupnp/ixml => ixml}/doc/ixml.dxx | 0 {libupnp/ixml => ixml}/doc/license.dxx | 0 {libupnp/ixml => ixml}/inc/ixml.h | 187 ++++---- {libupnp/ixml => ixml}/src/attr.c | 0 {libupnp/ixml => ixml}/src/document.c | 0 {libupnp/ixml => ixml}/src/element.c | 0 {libupnp/ixml => ixml}/src/inc/ixmlmembuf.h | 4 +- {libupnp/ixml => ixml}/src/inc/ixmlparser.h | 0 {libupnp/ixml => ixml}/src/ixml.c | 0 {libupnp/ixml => ixml}/src/ixmlmembuf.c | 0 {libupnp/ixml => ixml}/src/ixmlparser.c | 19 +- {libupnp/ixml => ixml}/src/namedNodeMap.c | 0 {libupnp/ixml => ixml}/src/node.c | 10 + {libupnp/ixml => ixml}/src/nodeList.c | 2 + {libupnp/ixml => ixml}/test/test_document.c | 0 {libupnp/ixml => ixml}/test/test_document.sh | 0 .../test/testdata/empty_attribute.xml | 0 .../ixml => ixml}/test/testdata/p43pass1.xml | 0 .../test/testdata/tvcontrolSCPD.xml | 0 .../test/testdata/tvdevicedesc.xml | 0 .../test/testdata/tvpictureSCPD.xml | 0 .../test/testdata/xml.ascc.net/legal.html | 0 .../testdata/xml.ascc.net/wf/zh-utf8-0.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-1.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-10.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-11.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-12.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-2.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-3.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-4.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-5.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-6.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-7.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-8.xml | 0 .../testdata/xml.ascc.net/wf/zh-utf8-9.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-0.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-1.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-10.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-11.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-12.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-2.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-3.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-4.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-5.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-6.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-7.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-8.xml | 0 .../testdata/xml.ascc.net/wfns/zh-utf8-9.xml | 0 .../test/testdata/xmlconf/014.xml | 0 .../test/testdata/xmlconf/040.xml | 0 .../test/testdata/xmlconf/059.xml | 0 .../test/testdata/xmlconf/111.xml | 0 .../test/testdata/xmlconf/element.xml | 0 libupnp/libupnp.pc.in => libupnp.pc.in | 0 libupnp/build/inc/autoconfig.h | 162 +++++++ libupnp/build/inc/config.h | 362 ++++++++++++++++ libupnp/build/inc/upnpconfig.h | 97 +++++ libupnp/upnp/doc/UPnP_Programming_Guide.pdf | Bin 107401 -> 0 bytes {libupnp/m4 => m4}/acx_pthread.m4 | 0 {libupnp/m4 => m4}/ax_cflags_gcc_option.m4 | 0 {libupnp/m4 => m4}/ax_cflags_warn_all.m4 | 0 {libupnp/m4 => m4}/ax_cflags_warn_all_ansi.m4 | 0 {libupnp/m4 => m4}/rt_bool_arg_enable.m4 | 0 {libupnp/m4 => m4}/type_socklen_t.m4 | 0 .../threadutil => threadutil}/Makefile.am | 0 .../threadutil => threadutil}/inc/FreeList.h | 0 .../inc/LinkedList.h | 0 .../inc/ThreadPool.h | 10 +- .../inc/TimerThread.h | 0 .../inc/iasnprintf.h | 0 .../threadutil => threadutil}/inc/ithread.h | 16 +- .../threadutil => threadutil}/src/FreeList.c | 0 .../src/LinkedList.c | 4 + .../src/ThreadPool.c | 22 +- .../src/TimerThread.c | 0 .../src/iasnprintf.c | 10 + {libupnp/upnp => upnp}/LICENSE | 0 {libupnp/upnp => upnp}/Makefile.am | 0 {libupnp/upnp => upnp}/doc/Makefile.am | 0 upnp/doc/UPnP_Programming_Guide.pdf | Bin 0 -> 373412 bytes {libupnp/upnp => upnp}/doc/callback.dxx | 0 {libupnp/upnp => upnp}/doc/docxx.sty | 0 {libupnp/upnp => upnp}/doc/intro.dxx | 0 {libupnp/upnp => upnp}/doc/license.dxx | 0 {libupnp/upnp => upnp}/doc/upnpsdk.dxx | 0 {libupnp/upnp => upnp}/inc/upnp.h | 215 ++++------ {libupnp/upnp => upnp}/inc/upnpconfig.h.in | 0 {libupnp/upnp => upnp}/inc/upnpdebug.h | 0 {libupnp/upnp => upnp}/inc/upnptools.h | 16 +- .../upnp => upnp}/sample/common/sample_util.c | 0 .../upnp => upnp}/sample/common/sample_util.h | 0 .../tvctrlpt/linux/upnp_tv_ctrlpt_main.c | 0 .../sample/tvctrlpt/upnp_tv_ctrlpt.c | 0 .../sample/tvctrlpt/upnp_tv_ctrlpt.h | 0 .../tvdevice/linux/upnp_tv_device_main.c | 0 .../sample/tvdevice/upnp_tv_device.c | 0 .../sample/tvdevice/upnp_tv_device.h | 0 .../sample/tvdevice/web/tvcontrolSCPD.xml | 0 .../sample/tvdevice/web/tvdevicedesc.xml | 0 .../sample/tvdevice/web/tvdevicepres.html | 0 .../sample/tvdevice/web/tvpictureSCPD.xml | 0 {libupnp/upnp => upnp}/src/api/upnpapi.c | 123 +++++- {libupnp/upnp => upnp}/src/api/upnpdebug.c | 0 {libupnp/upnp => upnp}/src/api/upnptools.c | 4 +- .../upnp => upnp}/src/gena/gena_callback2.c | 0 {libupnp/upnp => upnp}/src/gena/gena_ctrlpt.c | 8 +- {libupnp/upnp => upnp}/src/gena/gena_device.c | 0 .../src/genlib/client_table/client_table.c | 8 +- .../src/genlib/miniserver/miniserver.c | 29 +- .../src/genlib/net/http/httpparser.c | 3 + .../src/genlib/net/http/httpreadwrite.c | 50 ++- .../src/genlib/net/http/parsetools.c | 0 .../src/genlib/net/http/statcodes.c | 4 + .../src/genlib/net/http/webserver.c | 5 +- {libupnp/upnp => upnp}/src/genlib/net/sock.c | 16 +- .../upnp => upnp}/src/genlib/net/uri/uri.c | 36 +- .../src/genlib/service_table/service_table.c | 0 .../upnp => upnp}/src/genlib/util/membuffer.c | 1 + .../upnp => upnp}/src/genlib/util/strintmap.c | 0 .../src/genlib/util/upnp_timeout.c | 0 {libupnp/upnp => upnp}/src/genlib/util/util.c | 0 {libupnp/upnp => upnp}/src/inc/client_table.h | 0 {libupnp/upnp => upnp}/src/inc/config.h | 0 {libupnp/upnp => upnp}/src/inc/gena.h | 4 +- {libupnp/upnp => upnp}/src/inc/gena_ctrlpt.h | 0 {libupnp/upnp => upnp}/src/inc/gena_device.h | 0 {libupnp/upnp => upnp}/src/inc/global.h | 0 {libupnp/upnp => upnp}/src/inc/gmtdate.h | 0 {libupnp/upnp => upnp}/src/inc/http_client.h | 0 {libupnp/upnp => upnp}/src/inc/httpparser.h | 0 .../upnp => upnp}/src/inc/httpreadwrite.h | 0 upnp/src/inc/inet_pton.h | 103 +++++ {libupnp/upnp => upnp}/src/inc/md5.h | 0 {libupnp/upnp => upnp}/src/inc/membuffer.h | 0 {libupnp/upnp => upnp}/src/inc/miniserver.h | 0 {libupnp/upnp => upnp}/src/inc/netall.h | 0 {libupnp/upnp => upnp}/src/inc/parsetools.h | 0 {libupnp/upnp => upnp}/src/inc/server.h | 0 .../upnp => upnp}/src/inc/service_table.h | 0 {libupnp/upnp => upnp}/src/inc/soaplib.h | 0 {libupnp/upnp => upnp}/src/inc/sock.h | 4 +- {libupnp/upnp => upnp}/src/inc/ssdplib.h | 20 +- {libupnp/upnp => upnp}/src/inc/statcodes.h | 0 {libupnp/upnp => upnp}/src/inc/statuscodes.h | 0 {libupnp/upnp => upnp}/src/inc/strintmap.h | 0 {libupnp/upnp => upnp}/src/inc/sysdep.h | 10 +- {libupnp/upnp => upnp}/src/inc/unixutil.h | 9 +- {libupnp/upnp => upnp}/src/inc/upnp_timeout.h | 0 {libupnp/upnp => upnp}/src/inc/upnpapi.h | 3 + .../upnp => upnp}/src/inc/upnpclosesocket.h | 0 {libupnp/upnp => upnp}/src/inc/uri.h | 23 +- {libupnp/upnp => upnp}/src/inc/urlconfig.h | 10 +- {libupnp/upnp => upnp}/src/inc/util.h | 31 +- {libupnp/upnp => upnp}/src/inc/utilall.h | 0 {libupnp/upnp => upnp}/src/inc/uuid.h | 0 {libupnp/upnp => upnp}/src/inc/webserver.h | 0 upnp/src/inet_pton.c | 400 ++++++++++++++++++ {libupnp/upnp => upnp}/src/soap/soap_common.c | 3 - {libupnp/upnp => upnp}/src/soap/soap_ctrlpt.c | 9 +- {libupnp/upnp => upnp}/src/soap/soap_device.c | 17 +- {libupnp/upnp => upnp}/src/soap/soaplib.h | 0 {libupnp/upnp => upnp}/src/ssdp/ssdp_ctrlpt.c | 14 +- {libupnp/upnp => upnp}/src/ssdp/ssdp_device.c | 5 + {libupnp/upnp => upnp}/src/ssdp/ssdp_server.c | 29 +- .../upnp => upnp}/src/urlconfig/urlconfig.c | 11 +- {libupnp/upnp => upnp}/src/uuid/md5.c | 0 {libupnp/upnp => upnp}/src/uuid/sysdep.c | 6 +- {libupnp/upnp => upnp}/src/uuid/uuid.c | 6 +- upnp/src/win_dll.c | 17 + {libupnp/upnp => upnp}/test/test_init.c | 0 186 files changed, 1832 insertions(+), 359 deletions(-) rename libupnp/AUTHORS => AUTHORS (100%) rename libupnp/COPYING => COPYING (100%) rename libupnp/ChangeLog => ChangeLog (93%) rename libupnp/INSTALL => INSTALL (100%) rename libupnp/LICENSE => LICENSE (100%) rename libupnp/Makefile.am => Makefile.am (100%) rename libupnp/NEWS => NEWS (100%) rename libupnp/README => README (95%) rename libupnp/THANKS => THANKS (88%) rename libupnp/TODO => TODO (100%) rename libupnp/bootstrap => bootstrap (100%) rename libupnp/configure.ac => configure.ac (100%) rename {libupnp/ixml => ixml}/Makefile.am (100%) rename {libupnp/ixml => ixml}/doc/Makefile.am (100%) rename {libupnp/ixml => ixml}/doc/docxx.sty (100%) rename {libupnp/ixml => ixml}/doc/intro.dxx (100%) rename {libupnp/ixml => ixml}/doc/ixml.dxx (100%) rename {libupnp/ixml => ixml}/doc/license.dxx (100%) rename {libupnp/ixml => ixml}/inc/ixml.h (96%) rename {libupnp/ixml => ixml}/src/attr.c (100%) rename {libupnp/ixml => ixml}/src/document.c (100%) rename {libupnp/ixml => ixml}/src/element.c (100%) rename {libupnp/ixml => ixml}/src/inc/ixmlmembuf.h (98%) rename {libupnp/ixml => ixml}/src/inc/ixmlparser.h (100%) rename {libupnp/ixml => ixml}/src/ixml.c (100%) rename {libupnp/ixml => ixml}/src/ixmlmembuf.c (100%) rename {libupnp/ixml => ixml}/src/ixmlparser.c (99%) rename {libupnp/ixml => ixml}/src/namedNodeMap.c (100%) rename {libupnp/ixml => ixml}/src/node.c (99%) rename {libupnp/ixml => ixml}/src/nodeList.c (99%) rename {libupnp/ixml => ixml}/test/test_document.c (100%) rename {libupnp/ixml => ixml}/test/test_document.sh (100%) rename {libupnp/ixml => ixml}/test/testdata/empty_attribute.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/p43pass1.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/tvcontrolSCPD.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/tvdevicedesc.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/tvpictureSCPD.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/legal.html (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-0.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-1.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-10.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-11.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-12.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-2.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-3.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-4.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-5.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-6.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-7.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-8.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wf/zh-utf8-9.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-0.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-1.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-10.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-11.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-12.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-2.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-3.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-4.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-5.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-6.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-7.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-8.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xml.ascc.net/wfns/zh-utf8-9.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xmlconf/014.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xmlconf/040.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xmlconf/059.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xmlconf/111.xml (100%) rename {libupnp/ixml => ixml}/test/testdata/xmlconf/element.xml (100%) rename libupnp/libupnp.pc.in => libupnp.pc.in (100%) create mode 100644 libupnp/build/inc/autoconfig.h create mode 100644 libupnp/build/inc/config.h create mode 100644 libupnp/build/inc/upnpconfig.h delete mode 100644 libupnp/upnp/doc/UPnP_Programming_Guide.pdf rename {libupnp/m4 => m4}/acx_pthread.m4 (100%) rename {libupnp/m4 => m4}/ax_cflags_gcc_option.m4 (100%) rename {libupnp/m4 => m4}/ax_cflags_warn_all.m4 (100%) rename {libupnp/m4 => m4}/ax_cflags_warn_all_ansi.m4 (100%) rename {libupnp/m4 => m4}/rt_bool_arg_enable.m4 (100%) rename {libupnp/m4 => m4}/type_socklen_t.m4 (100%) rename {libupnp/threadutil => threadutil}/Makefile.am (100%) rename {libupnp/threadutil => threadutil}/inc/FreeList.h (100%) rename {libupnp/threadutil => threadutil}/inc/LinkedList.h (100%) rename {libupnp/threadutil => threadutil}/inc/ThreadPool.h (99%) rename {libupnp/threadutil => threadutil}/inc/TimerThread.h (100%) rename {libupnp/threadutil => threadutil}/inc/iasnprintf.h (100%) rename {libupnp/threadutil => threadutil}/inc/ithread.h (98%) rename {libupnp/threadutil => threadutil}/src/FreeList.c (100%) rename {libupnp/threadutil => threadutil}/src/LinkedList.c (99%) rename {libupnp/threadutil => threadutil}/src/ThreadPool.c (98%) rename {libupnp/threadutil => threadutil}/src/TimerThread.c (100%) rename {libupnp/threadutil => threadutil}/src/iasnprintf.c (96%) rename {libupnp/upnp => upnp}/LICENSE (100%) rename {libupnp/upnp => upnp}/Makefile.am (100%) rename {libupnp/upnp => upnp}/doc/Makefile.am (100%) create mode 100644 upnp/doc/UPnP_Programming_Guide.pdf rename {libupnp/upnp => upnp}/doc/callback.dxx (100%) rename {libupnp/upnp => upnp}/doc/docxx.sty (100%) rename {libupnp/upnp => upnp}/doc/intro.dxx (100%) rename {libupnp/upnp => upnp}/doc/license.dxx (100%) rename {libupnp/upnp => upnp}/doc/upnpsdk.dxx (100%) rename {libupnp/upnp => upnp}/inc/upnp.h (95%) rename {libupnp/upnp => upnp}/inc/upnpconfig.h.in (100%) rename {libupnp/upnp => upnp}/inc/upnpdebug.h (100%) rename {libupnp/upnp => upnp}/inc/upnptools.h (96%) rename {libupnp/upnp => upnp}/sample/common/sample_util.c (100%) rename {libupnp/upnp => upnp}/sample/common/sample_util.h (100%) rename {libupnp/upnp => upnp}/sample/tvctrlpt/linux/upnp_tv_ctrlpt_main.c (100%) rename {libupnp/upnp => upnp}/sample/tvctrlpt/upnp_tv_ctrlpt.c (100%) rename {libupnp/upnp => upnp}/sample/tvctrlpt/upnp_tv_ctrlpt.h (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/linux/upnp_tv_device_main.c (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/upnp_tv_device.c (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/upnp_tv_device.h (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/web/tvcontrolSCPD.xml (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/web/tvdevicedesc.xml (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/web/tvdevicepres.html (100%) rename {libupnp/upnp => upnp}/sample/tvdevice/web/tvpictureSCPD.xml (100%) rename {libupnp/upnp => upnp}/src/api/upnpapi.c (98%) rename {libupnp/upnp => upnp}/src/api/upnpdebug.c (100%) rename {libupnp/upnp => upnp}/src/api/upnptools.c (99%) rename {libupnp/upnp => upnp}/src/gena/gena_callback2.c (100%) rename {libupnp/upnp => upnp}/src/gena/gena_ctrlpt.c (99%) rename {libupnp/upnp => upnp}/src/gena/gena_device.c (100%) rename {libupnp/upnp => upnp}/src/genlib/client_table/client_table.c (97%) rename {libupnp/upnp => upnp}/src/genlib/miniserver/miniserver.c (99%) rename {libupnp/upnp => upnp}/src/genlib/net/http/httpparser.c (99%) rename {libupnp/upnp => upnp}/src/genlib/net/http/httpreadwrite.c (98%) rename {libupnp/upnp => upnp}/src/genlib/net/http/parsetools.c (100%) rename {libupnp/upnp => upnp}/src/genlib/net/http/statcodes.c (99%) rename {libupnp/upnp => upnp}/src/genlib/net/http/webserver.c (99%) rename {libupnp/upnp => upnp}/src/genlib/net/sock.c (97%) rename {libupnp/upnp => upnp}/src/genlib/net/uri/uri.c (98%) rename {libupnp/upnp => upnp}/src/genlib/service_table/service_table.c (100%) rename {libupnp/upnp => upnp}/src/genlib/util/membuffer.c (99%) rename {libupnp/upnp => upnp}/src/genlib/util/strintmap.c (100%) rename {libupnp/upnp => upnp}/src/genlib/util/upnp_timeout.c (100%) rename {libupnp/upnp => upnp}/src/genlib/util/util.c (100%) rename {libupnp/upnp => upnp}/src/inc/client_table.h (100%) rename {libupnp/upnp => upnp}/src/inc/config.h (100%) rename {libupnp/upnp => upnp}/src/inc/gena.h (99%) rename {libupnp/upnp => upnp}/src/inc/gena_ctrlpt.h (100%) rename {libupnp/upnp => upnp}/src/inc/gena_device.h (100%) rename {libupnp/upnp => upnp}/src/inc/global.h (100%) rename {libupnp/upnp => upnp}/src/inc/gmtdate.h (100%) rename {libupnp/upnp => upnp}/src/inc/http_client.h (100%) rename {libupnp/upnp => upnp}/src/inc/httpparser.h (100%) rename {libupnp/upnp => upnp}/src/inc/httpreadwrite.h (100%) create mode 100644 upnp/src/inc/inet_pton.h rename {libupnp/upnp => upnp}/src/inc/md5.h (100%) rename {libupnp/upnp => upnp}/src/inc/membuffer.h (100%) rename {libupnp/upnp => upnp}/src/inc/miniserver.h (100%) rename {libupnp/upnp => upnp}/src/inc/netall.h (100%) rename {libupnp/upnp => upnp}/src/inc/parsetools.h (100%) rename {libupnp/upnp => upnp}/src/inc/server.h (100%) rename {libupnp/upnp => upnp}/src/inc/service_table.h (100%) rename {libupnp/upnp => upnp}/src/inc/soaplib.h (100%) rename {libupnp/upnp => upnp}/src/inc/sock.h (99%) rename {libupnp/upnp => upnp}/src/inc/ssdplib.h (98%) rename {libupnp/upnp => upnp}/src/inc/statcodes.h (100%) rename {libupnp/upnp => upnp}/src/inc/statuscodes.h (100%) rename {libupnp/upnp => upnp}/src/inc/strintmap.h (100%) rename {libupnp/upnp => upnp}/src/inc/sysdep.h (93%) rename {libupnp/upnp => upnp}/src/inc/unixutil.h (94%) rename {libupnp/upnp => upnp}/src/inc/upnp_timeout.h (100%) rename {libupnp/upnp => upnp}/src/inc/upnpapi.h (98%) rename {libupnp/upnp => upnp}/src/inc/upnpclosesocket.h (100%) rename {libupnp/upnp => upnp}/src/inc/uri.h (98%) rename {libupnp/upnp => upnp}/src/inc/urlconfig.h (96%) rename {libupnp/upnp => upnp}/src/inc/util.h (89%) rename {libupnp/upnp => upnp}/src/inc/utilall.h (100%) rename {libupnp/upnp => upnp}/src/inc/uuid.h (100%) rename {libupnp/upnp => upnp}/src/inc/webserver.h (100%) create mode 100644 upnp/src/inet_pton.c rename {libupnp/upnp => upnp}/src/soap/soap_common.c (60%) rename {libupnp/upnp => upnp}/src/soap/soap_ctrlpt.c (99%) rename {libupnp/upnp => upnp}/src/soap/soap_device.c (98%) rename {libupnp/upnp => upnp}/src/soap/soaplib.h (100%) rename {libupnp/upnp => upnp}/src/ssdp/ssdp_ctrlpt.c (98%) rename {libupnp/upnp => upnp}/src/ssdp/ssdp_device.c (99%) rename {libupnp/upnp => upnp}/src/ssdp/ssdp_server.c (97%) rename {libupnp/upnp => upnp}/src/urlconfig/urlconfig.c (98%) rename {libupnp/upnp => upnp}/src/uuid/md5.c (100%) rename {libupnp/upnp => upnp}/src/uuid/sysdep.c (98%) rename {libupnp/upnp => upnp}/src/uuid/uuid.c (99%) create mode 100644 upnp/src/win_dll.c rename {libupnp/upnp => upnp}/test/test_init.c (100%) diff --git a/libupnp/AUTHORS b/AUTHORS similarity index 100% rename from libupnp/AUTHORS rename to AUTHORS diff --git a/libupnp/COPYING b/COPYING similarity index 100% rename from libupnp/COPYING rename to COPYING diff --git a/libupnp/ChangeLog b/ChangeLog similarity index 93% rename from libupnp/ChangeLog rename to ChangeLog index edff3c7..1d65171 100644 --- a/libupnp/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +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-12 Oxy + + * Windows support added, it compiles and exports DLL-symbols but + it is not fully tested yet + +2006-06-08 Oxy + + * Patch to fix memory leaks and reasons for crashes added (thanks + to loigu) + ************************************************************************* Release of version 1.4.0 ************************************************************************* diff --git a/libupnp/INSTALL b/INSTALL similarity index 100% rename from libupnp/INSTALL rename to INSTALL diff --git a/libupnp/LICENSE b/LICENSE similarity index 100% rename from libupnp/LICENSE rename to LICENSE diff --git a/libupnp/Makefile.am b/Makefile.am similarity index 100% rename from libupnp/Makefile.am rename to Makefile.am diff --git a/libupnp/NEWS b/NEWS similarity index 100% rename from libupnp/NEWS rename to NEWS diff --git a/libupnp/README b/README similarity index 95% rename from libupnp/README rename to README index c3f104a..7275c3a 100644 --- a/libupnp/README +++ b/README @@ -2,6 +2,7 @@ Linux* SDK for UPnP* Devices (libupnp) Copyright (c) 2000-2003 Intel Corporation - All Rights Reserved. Copyright (c) 2005-2006 Rémi Turboult +Copyright (c) 2006 Michel Pfeiffer and others See LICENSE for details. @@ -118,6 +119,14 @@ All pieces of the SDK are configured and built from the $(LIBUPNP) directory. will build a version of the binaries without debug support, and with default options enabled (see below for options available at configure time). +% cd $(LIBUPNP) +% ./configure CFLAGS="-DSPARC_SOLARIS -mtune= -mcpu=" +% make + +will build a Sparc Solaris version of the binaries without debug support +and with default options enabled (see below for options available at +configure time). Please note: has to be replaced by a token that +fits to your platform and CPU (e.g. "supersparc"). To build the documentation, assuming all the necessary tools are installed (see section 3) : diff --git a/libupnp/THANKS b/THANKS similarity index 88% rename from libupnp/THANKS rename to THANKS index fe174bf..9f0e451 100644 --- a/libupnp/THANKS +++ b/THANKS @@ -6,7 +6,7 @@ suggesting various improvements or submitting actual code. Here is a list of these people. Help us keep it complete and exempt of errors. -Patches: Arno Willig, Oskar Liljeblad, Chaos, +Patches: Loigu, Arno Willig, Oskar Liljeblad, Chaos, Nektarios K. Papadopoulos, John Dennis, Jiri Zouhar, Marcelo Jimenez Solaris Port: Oxy diff --git a/libupnp/TODO b/TODO similarity index 100% rename from libupnp/TODO rename to TODO diff --git a/libupnp/bootstrap b/bootstrap similarity index 100% rename from libupnp/bootstrap rename to bootstrap diff --git a/libupnp/configure.ac b/configure.ac similarity index 100% rename from libupnp/configure.ac rename to configure.ac diff --git a/libupnp/ixml/Makefile.am b/ixml/Makefile.am similarity index 100% rename from libupnp/ixml/Makefile.am rename to ixml/Makefile.am diff --git a/libupnp/ixml/doc/Makefile.am b/ixml/doc/Makefile.am similarity index 100% rename from libupnp/ixml/doc/Makefile.am rename to ixml/doc/Makefile.am diff --git a/libupnp/ixml/doc/docxx.sty b/ixml/doc/docxx.sty similarity index 100% rename from libupnp/ixml/doc/docxx.sty rename to ixml/doc/docxx.sty diff --git a/libupnp/ixml/doc/intro.dxx b/ixml/doc/intro.dxx similarity index 100% rename from libupnp/ixml/doc/intro.dxx rename to ixml/doc/intro.dxx diff --git a/libupnp/ixml/doc/ixml.dxx b/ixml/doc/ixml.dxx similarity index 100% rename from libupnp/ixml/doc/ixml.dxx rename to ixml/doc/ixml.dxx diff --git a/libupnp/ixml/doc/license.dxx b/ixml/doc/license.dxx similarity index 100% rename from libupnp/ixml/doc/license.dxx rename to ixml/doc/license.dxx diff --git a/libupnp/ixml/inc/ixml.h b/ixml/inc/ixml.h similarity index 96% rename from libupnp/ixml/inc/ixml.h rename to ixml/inc/ixml.h index 21f3a51..0301357 100644 --- a/libupnp/ixml/inc/ixml.h +++ b/ixml/inc/ixml.h @@ -37,6 +37,17 @@ //#include #include +#ifdef WIN32 + #ifdef LIBUPNP_EXPORTS + // set up declspec for dll export to make functions visible to library users + #define EXPORT_SPEC __declspec(dllexport) + #else + #define EXPORT_SPEC __declspec(dllimport) + #endif +#else + #define EXPORT_SPEC +#endif + typedef int BOOL; #define DOMString char * @@ -234,7 +245,7 @@ extern "C" { * @return [const DOMString] A constant {\bf DOMString} of the node name. */ -const DOMString +EXPORT_SPEC const DOMString ixmlNode_getNodeName(IXML_Node *nodeptr /** Pointer to the node to retrieve the name. */ ); @@ -245,7 +256,7 @@ ixmlNode_getNodeName(IXML_Node *nodeptr * @return [DOMString] A {\bf DOMString} of the {\bf Node} value. */ -DOMString +EXPORT_SPEC DOMString ixmlNode_getNodeValue(IXML_Node *nodeptr /** Pointer to the {\bf Node} to retrieve the value. */ ); @@ -264,7 +275,7 @@ ixmlNode_getNodeValue(IXML_Node *nodeptr * \end{itemize} */ -int +EXPORT_SPEC int ixmlNode_setNodeValue(IXML_Node *nodeptr, /** The {\bf Node} to which to assign a new value. */ char *newNodeValue @@ -292,7 +303,7 @@ ixmlNode_setNodeValue(IXML_Node *nodeptr, * {\bf Node}. */ -unsigned short +EXPORT_SPEC unsigned short ixmlNode_getNodeType(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the type. */ ); @@ -303,7 +314,7 @@ ixmlNode_getNodeType(IXML_Node *nodeptr * {\bf Node} has no parent. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_getParentNode(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the parent. */ @@ -316,7 +327,7 @@ ixmlNode_getParentNode(IXML_Node *nodeptr * @return [NodeList*] A {\bf NodeList} of the children of the {\bf Node}. */ -IXML_NodeList* +EXPORT_SPEC IXML_NodeList* ixmlNode_getChildNodes(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the children. */ @@ -328,7 +339,7 @@ ixmlNode_getChildNodes(IXML_Node *nodeptr * if the {\bf Node} does not have any children. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_getFirstChild(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the first child. */ @@ -340,7 +351,7 @@ ixmlNode_getFirstChild(IXML_Node *nodeptr * the {\bf Node} does not have any children. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_getLastChild(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the last child. */ @@ -352,7 +363,7 @@ ixmlNode_getLastChild(IXML_Node *nodeptr * {\tt NULL} if no such {\bf Node} exists. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_getPreviousSibling(IXML_Node *nodeptr /** The {\bf Node} for which to retrieve the previous sibling. */ @@ -364,7 +375,7 @@ ixmlNode_getPreviousSibling(IXML_Node *nodeptr * if no such {\bf Node} exists. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_getNextSibling(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the next sibling. */ @@ -377,7 +388,7 @@ ixmlNode_getNextSibling(IXML_Node *nodeptr * {\tt NULL}. */ -IXML_NamedNodeMap* +EXPORT_SPEC IXML_NamedNodeMap* ixmlNode_getAttributes(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the attributes. */ @@ -392,7 +403,7 @@ ixmlNode_getAttributes(IXML_Node *nodeptr * {\tt NULL}, if the {\bf Node} does not have an owner. */ -IXML_Document* +EXPORT_SPEC IXML_Document* ixmlNode_getOwnerDocument(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the owner document. */ @@ -408,7 +419,7 @@ ixmlNode_getOwnerDocument(IXML_Node *nodeptr * namespace or {\tt NULL}. */ -const DOMString +EXPORT_SPEC const DOMString ixmlNode_getNamespaceURI(IXML_Node *nodeptr /** The {\bf Node} for which to retrieve the namespace. */ @@ -424,7 +435,7 @@ ixmlNode_getNamespaceURI(IXML_Node *nodeptr * or {\tt NULL}. */ -DOMString +EXPORT_SPEC DOMString ixmlNode_getPrefix(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the prefix. */ ); @@ -439,7 +450,7 @@ ixmlNode_getPrefix(IXML_Node *nodeptr * of the {\bf Element} or {\tt NULL}. */ -const DOMString +EXPORT_SPEC const DOMString ixmlNode_getLocalName(IXML_Node *nodeptr /** The {\bf Node} from which to retrieve the local name. */ @@ -471,7 +482,7 @@ ixmlNode_getLocalName(IXML_Node *nodeptr * \end{itemize} */ -int +EXPORT_SPEC int ixmlNode_insertBefore(IXML_Node *nodeptr, /** The parent of the {\bf Node} before which to insert the new child. */ @@ -506,7 +517,7 @@ ixmlNode_insertBefore(IXML_Node *nodeptr, * \end{itemize} */ -int +EXPORT_SPEC int ixmlNode_replaceChild(IXML_Node *nodeptr, /** The parent of the {\bf Node} which contains the child to replace. */ @@ -536,7 +547,7 @@ ixmlNode_replaceChild(IXML_Node *nodeptr, * \end{itemize} */ -int +EXPORT_SPEC int ixmlNode_removeChild(IXML_Node *nodeptr, /** The parent of the child to remove. */ IXML_Node* oldChild, @@ -563,7 +574,7 @@ ixmlNode_removeChild(IXML_Node *nodeptr, * read-only {\bf Node}. */ -int +EXPORT_SPEC int ixmlNode_appendChild(IXML_Node *nodeptr, /** The {\bf Node} in which to append the new child. */ IXML_Node* newChild @@ -576,7 +587,7 @@ ixmlNode_appendChild(IXML_Node *nodeptr, * otherwise {\tt FALSE}. */ -BOOL +EXPORT_SPEC BOOL ixmlNode_hasChildNodes(IXML_Node *nodeptr /** The {\bf Node} to query for children. */ ); @@ -589,7 +600,7 @@ ixmlNode_hasChildNodes(IXML_Node *nodeptr * @return [Node*] A clone of {\bf nodeptr} or {\tt NULL}. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNode_cloneNode(IXML_Node *nodeptr, /** The {\bf Node} to clone. */ BOOL deep @@ -604,7 +615,7 @@ ixmlNode_cloneNode(IXML_Node *nodeptr, * {\tt FALSE}. */ -BOOL +EXPORT_SPEC BOOL ixmlNode_hasAttributes(IXML_Node *node /** The {\bf Node} to query for attributes. */ ); @@ -614,7 +625,7 @@ ixmlNode_hasAttributes(IXML_Node *node * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlNode_free(IXML_Node *IXML_Node /** The {\bf Node} to free. */ ); @@ -642,7 +653,7 @@ ixmlNode_free(IXML_Node *IXML_Node * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlAttr_free(IXML_Attr *attrNode /** The {\bf Attr} node to free. */ ); @@ -673,7 +684,7 @@ ixmlAttr_free(IXML_Attr *attrNode * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlCDATASection_init(IXML_CDATASection *nodeptr /** The {\bf CDATASection} node to initialize. */ ); @@ -684,7 +695,7 @@ ixmlCDATASection_init(IXML_CDATASection *nodeptr * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlCDATASection_free(IXML_CDATASection *nodeptr /** The {\bf CDATASection} node to free. */ ); @@ -711,7 +722,7 @@ ixmlCDATASection_free(IXML_CDATASection *nodeptr * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlDocument_init(IXML_Document *nodeptr /** The {\bf Document} node to initialize. */ ); @@ -729,7 +740,7 @@ ixmlDocument_init(IXML_Document *nodeptr * \end{itemize} */ -int ixmlDocument_createDocumentEx(IXML_Document** doc +EXPORT_SPEC int ixmlDocument_createDocumentEx(IXML_Document** doc /** Pointer to a {\bf Document} where the new object will be stored. */ ); @@ -741,7 +752,7 @@ int ixmlDocument_createDocumentEx(IXML_Document** doc * failure. */ -IXML_Document* ixmlDocument_createDocument(); +EXPORT_SPEC IXML_Document* ixmlDocument_createDocument(); /** Creates a new {\bf Element} node with the given tag name. The new * {\bf Element} node has a {\tt nodeName} of {\bf tagName} and @@ -763,7 +774,7 @@ IXML_Document* ixmlDocument_createDocument(); * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createElementEx(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ const DOMString tagName, @@ -784,7 +795,7 @@ ixmlDocument_createElementEx(IXML_Document *doc, * failure. */ -IXML_Element* +EXPORT_SPEC IXML_Element* ixmlDocument_createElement(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ const DOMString tagName @@ -807,7 +818,7 @@ ixmlDocument_createElement(IXML_Document *doc, * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createTextNodeEx(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ const DOMString data, @@ -824,7 +835,7 @@ ixmlDocument_createTextNodeEx(IXML_Document *doc, * @return [Node*] A pointer to the new {\bf Node} or {\tt NULL} on failure. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlDocument_createTextNode(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ const DOMString data @@ -848,7 +859,7 @@ ixmlDocument_createTextNode(IXML_Document *doc, * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createCDATASectionEx(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ @@ -867,7 +878,7 @@ ixmlDocument_createCDATASectionEx(IXML_Document *doc, * {\tt NULL} on failure. */ -IXML_CDATASection* +EXPORT_SPEC IXML_CDATASection* ixmlDocument_createCDATASection(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ @@ -881,7 +892,7 @@ ixmlDocument_createCDATASection(IXML_Document *doc, * @return [Attr*] A pointer to the new {\bf Attr} or {\tt NULL} on failure. */ -IXML_Attr* +EXPORT_SPEC IXML_Attr* ixmlDocument_createAttribute(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ char *name @@ -905,7 +916,7 @@ ixmlDocument_createAttribute(IXML_Document *doc, * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createAttributeEx(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ @@ -925,7 +936,7 @@ ixmlDocument_createAttributeEx(IXML_Document *doc, * matching items or {\tt NULL} on an error. */ -IXML_NodeList* +EXPORT_SPEC IXML_NodeList* ixmlDocument_getElementsByTagName(IXML_Document *doc, /** The {\bf Document} to search. */ DOMString tagName @@ -951,7 +962,7 @@ ixmlDocument_getElementsByTagName(IXML_Document *doc, * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createElementNSEx(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ @@ -974,7 +985,7 @@ ixmlDocument_createElementNSEx(IXML_Document *doc, * failure. */ -IXML_Element* +EXPORT_SPEC IXML_Element* ixmlDocument_createElementNS(IXML_Document *doc, /** The owner {\bf Document} of the new node. */ DOMString namespaceURI, @@ -1002,7 +1013,7 @@ ixmlDocument_createElementNS(IXML_Document *doc, * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_createAttributeNSEx(IXML_Document *doc, /** The owner {\bf Document} of the new {\bf Attr}. */ @@ -1021,7 +1032,7 @@ ixmlDocument_createAttributeNSEx(IXML_Document *doc, * @return [Attr*] A pointer to the new {\bf Attr} or {\tt NULL} on failure. */ -IXML_Attr* +EXPORT_SPEC IXML_Attr* ixmlDocument_createAttributeNS(IXML_Document *doc, /** The owner {\bf Document} of the new {\bf Attr}. */ @@ -1041,7 +1052,7 @@ ixmlDocument_createAttributeNS(IXML_Document *doc, * matching items or {\tt NULL} on an error. */ -IXML_NodeList* +EXPORT_SPEC IXML_NodeList* ixmlDocument_getElementsByTagNameNS(IXML_Document* doc, /** The {\bf Document} to search. */ DOMString namespaceURI, @@ -1060,7 +1071,7 @@ ixmlDocument_getElementsByTagNameNS(IXML_Document* doc, * {\tt NULL} on an error. */ -IXML_Element* +EXPORT_SPEC IXML_Element* ixmlDocument_getElementById(IXML_Document* doc, /** The owner {\bf Document} of the {\bf Element}. */ @@ -1076,7 +1087,7 @@ ixmlDocument_getElementById(IXML_Document* doc, * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlDocument_free(IXML_Document* doc /** The {\bf Document} to free. */ ); @@ -1100,7 +1111,7 @@ ixmlDocument_free(IXML_Document* doc * \end{itemize} */ -int +EXPORT_SPEC int ixmlDocument_importNode(IXML_Document* doc, /** The {\bf Document} into which to import. */ IXML_Node* importNode, @@ -1136,7 +1147,7 @@ ixmlDocument_importNode(IXML_Document* doc, * @return [void] This function does not return a value. */ -void ixmlElement_init(IXML_Element *element +EXPORT_SPEC void ixmlElement_init(IXML_Element *element /** The {\bf Element} to initialize.*/ ); @@ -1147,7 +1158,7 @@ void ixmlElement_init(IXML_Element *element * {\bf Element}. */ -const DOMString +EXPORT_SPEC const DOMString ixmlElement_getTagName(IXML_Element* element /** The {\bf Element} from which to retrieve the name. */ @@ -1159,7 +1170,7 @@ ixmlElement_getTagName(IXML_Element* element * attribute. */ -DOMString +EXPORT_SPEC DOMString ixmlElement_getAttribute(IXML_Element* element, /** The {\bf Element} from which to retrieve the attribute. */ @@ -1183,7 +1194,7 @@ ixmlElement_getAttribute(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_setAttribute(IXML_Element* element, /** The {\bf Element} on which to set the attribute. */ @@ -1205,7 +1216,7 @@ ixmlElement_setAttribute(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_removeAttribute(IXML_Element* element, /** The {\bf Element} from which to remove the attribute. */ @@ -1221,7 +1232,7 @@ ixmlElement_removeAttribute(IXML_Element* element, * {\tt NULL} on an error. */ -IXML_Attr* +EXPORT_SPEC IXML_Attr* ixmlElement_getAttributeNode(IXML_Element* element, /** The {\bf Element} from which to get the attribute node. */ @@ -1245,7 +1256,7 @@ ixmlElement_getAttributeNode(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_setAttributeNode(IXML_Element* element, /** The {\bf Element} in which to add the new attribute. */ @@ -1270,7 +1281,7 @@ ixmlElement_setAttributeNode(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_removeAttributeNode(IXML_Element* element, /** The {\bf Element} from which to remove the attribute. */ @@ -1290,7 +1301,7 @@ ixmlElement_removeAttributeNode(IXML_Element* element, * {\tt NULL} on an error. */ -IXML_NodeList* +EXPORT_SPEC IXML_NodeList* ixmlElement_getElementsByTagName(IXML_Element* element, /** The {\bf Element} from which to start the search. */ @@ -1307,7 +1318,7 @@ ixmlElement_getElementsByTagName(IXML_Element* element, * matching attribute. */ -DOMString +EXPORT_SPEC DOMString ixmlElement_getAttributeNS(IXML_Element* element, /** The {\bf Element} from which to get the attribute value. */ @@ -1339,7 +1350,7 @@ ixmlElement_getAttributeNS(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_setAttributeNS(IXML_Element* element, /** The {\bf Element} on which to set the attribute. */ @@ -1361,7 +1372,7 @@ ixmlElement_setAttributeNS(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_removeAttributeNS(IXML_Element* element, /** The {\bf Element} from which to remove the the attribute. */ @@ -1376,7 +1387,7 @@ ixmlElement_removeAttributeNS(IXML_Element* element, * @return [Attr*] A pointer to an {\bf Attr} or {\tt NULL} on an error. */ -IXML_Attr* +EXPORT_SPEC IXML_Attr* ixmlElement_getAttributeNodeNS(IXML_Element* element, /** The {\bf Element} from which to get the attribute. */ @@ -1403,7 +1414,7 @@ ixmlElement_getAttributeNodeNS(IXML_Element* element, * \end{itemize} */ -int +EXPORT_SPEC int ixmlElement_setAttributeNodeNS(IXML_Element* element, /** The {\bf Element} in which to add the attribute node. */ @@ -1422,7 +1433,7 @@ ixmlElement_setAttributeNodeNS(IXML_Element* element, * {\tt NULL} on an error. */ -IXML_NodeList* +EXPORT_SPEC IXML_NodeList* ixmlElement_getElementsByTagNameNS(IXML_Element* element, /** The {\bf Element} from which to start the search. */ @@ -1442,7 +1453,7 @@ ixmlElement_getElementsByTagNameNS(IXML_Element* element, * otherwise {\tt FALSE}. */ -BOOL +EXPORT_SPEC BOOL ixmlElement_hasAttribute(IXML_Element* element, /** The {\bf Element} on which to check for an attribute. */ @@ -1458,7 +1469,7 @@ ixmlElement_hasAttribute(IXML_Element* element, * value for that attribute, otherwise {\tt FALSE}. */ -BOOL +EXPORT_SPEC BOOL ixmlElement_hasAttributeNS(IXML_Element* element, /** The {\bf Element} on which to check for the attribute. */ @@ -1473,7 +1484,7 @@ ixmlElement_hasAttributeNS(IXML_Element* element, * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlElement_free(IXML_Element* element /** The {\bf Element} to free. */ ); @@ -1500,7 +1511,7 @@ ixmlElement_free(IXML_Element* element * @return [unsigned long] The number of nodes in this map. */ -unsigned long +EXPORT_SPEC unsigned long ixmlNamedNodeMap_getLength(IXML_NamedNodeMap *nnMap /** The {\bf NamedNodeMap} from which to retrieve the size. */ @@ -1511,7 +1522,7 @@ ixmlNamedNodeMap_getLength(IXML_NamedNodeMap *nnMap * @return [Node*] A {\bf Node} or {\tt NULL} if there is an error. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_getNamedItem(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} to search. */ DOMString name @@ -1526,7 +1537,7 @@ ixmlNamedNodeMap_getNamedItem(IXML_NamedNodeMap *nnMap, * {\bf NamedNodeMap} before. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_setNamedItem(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} in which to add the new {\bf Node}. */ @@ -1541,7 +1552,7 @@ ixmlNamedNodeMap_setNamedItem(IXML_NamedNodeMap *nnMap, * it wasn't. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_removeNamedItem(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} from which to remove the item. */ @@ -1556,7 +1567,7 @@ ixmlNamedNodeMap_removeNamedItem(IXML_NamedNodeMap *nnMap, * it wasn't. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_item(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} from which to remove the {\bf Node}. */ @@ -1573,7 +1584,7 @@ ixmlNamedNodeMap_item(IXML_NamedNodeMap *nnMap, * it wasn't */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_getNamedItemNS(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} from which to remove the {\bf Node}. */ @@ -1593,7 +1604,7 @@ ixmlNamedNodeMap_getNamedItemNS(IXML_NamedNodeMap *nnMap, * {\bf NamedNodeMap} before. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_setNamedItemNS(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} in which to add the {\bf Node}. */ @@ -1608,7 +1619,7 @@ ixmlNamedNodeMap_setNamedItemNS(IXML_NamedNodeMap *nnMap, * it wasn't. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNamedNodeMap_removeNamedItemNS(IXML_NamedNodeMap *nnMap, /** The {\bf NamedNodeMap} from which to remove the {\bf Node}. */ @@ -1626,7 +1637,7 @@ ixmlNamedNodeMap_removeNamedItemNS(IXML_NamedNodeMap *nnMap, * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlNamedNodeMap_free(IXML_NamedNodeMap *nnMap /** The {\bf NamedNodeMap to free}. */ ); @@ -1655,7 +1666,7 @@ ixmlNamedNodeMap_free(IXML_NamedNodeMap *nnMap * error. */ -IXML_Node* +EXPORT_SPEC IXML_Node* ixmlNodeList_item(IXML_NodeList *nList, /** The {\bf NodeList} from which to retrieve the {\bf Node}. */ @@ -1668,7 +1679,7 @@ ixmlNodeList_item(IXML_NodeList *nList, * @return [unsigned long] The number of {\bf Nodes} in the {\bf NodeList}. */ -unsigned long +EXPORT_SPEC unsigned long ixmlNodeList_length(IXML_NodeList *nList /** The {\bf NodeList} for which to retrieve the number of {\bf Nodes}. */ @@ -1681,7 +1692,7 @@ ixmlNodeList_length(IXML_NodeList *nList * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlNodeList_free(IXML_NodeList *nList /** The {\bf NodeList} to free. */ ); @@ -1732,12 +1743,10 @@ ixmlPrintDocument(IXML_Document *doc); * is no longer required. * * Note that this function can be used for any {\bf Node}-derived - * interface. The difference between {\bf ixmlPrintNode} and - * {\bf ixmlPrintDocument} is {\bf ixmlPrintNode} does not include - * the XML prolog, it only produces XML elements. - * - * This function introduces lots of white space to print the - * {\bf DOMString} in readable format. + * interface. A similar {\bf ixmlPrintDocument} function is defined + * to avoid casting when printing whole documents. This function + * introduces lots of white space to print the {\bf DOMString} in readable + * format. * * @return [DOMString] A {\bf DOMString} with the XML text representation * of the DOM tree or {\tt NULL} on an error. @@ -1781,7 +1790,7 @@ ixmlDocumenttoString(IXML_Document *doc); * of the DOM tree or {\tt NULL} on an error. */ -DOMString +EXPORT_SPEC DOMString ixmlNodetoString(IXML_Node *doc /** The root of the {\bf Node} tree to render to XML text. */ ); @@ -1805,7 +1814,7 @@ ixmlRelaxParser(char errorChar); * @return [Document*] A {\bf Document} if the buffer correctly parses or * {\tt NULL} on an error. */ -IXML_Document* +EXPORT_SPEC IXML_Document* ixmlParseBuffer(char *buffer /** The buffer that contains the XML text to convert to a {\bf Document}. */ @@ -1828,7 +1837,7 @@ ixmlParseBuffer(char *buffer * \end{itemize} */ -int +EXPORT_SPEC int ixmlParseBufferEx(char *buffer, /** The buffer that contains the XML text to convert to a {\bf Document}. */ @@ -1843,7 +1852,7 @@ ixmlParseBufferEx(char *buffer, * {\tt NULL} on an error. */ -IXML_Document* +EXPORT_SPEC IXML_Document* ixmlLoadDocument(char* xmlFile /** The filename of the XML text to convert to a {\bf Document}. */ @@ -1865,7 +1874,7 @@ ixmlLoadDocument(char* xmlFile * \end{itemize} */ -int +EXPORT_SPEC int ixmlLoadDocumentEx(char* xmlFile, /** The filename of the XML text to convert to a {\bf Document}. */ @@ -1881,7 +1890,7 @@ ixmlLoadDocumentEx(char* xmlFile, * be completed. */ -DOMString +EXPORT_SPEC DOMString ixmlCloneDOMString(const DOMString src /** The source {\bf DOMString} to clone. */ ); @@ -1891,7 +1900,7 @@ ixmlCloneDOMString(const DOMString src * @return [void] This function does not return a value. */ -void +EXPORT_SPEC void ixmlFreeDOMString(DOMString buf /** The {\bf DOMString} to free. */ ); diff --git a/libupnp/ixml/src/attr.c b/ixml/src/attr.c similarity index 100% rename from libupnp/ixml/src/attr.c rename to ixml/src/attr.c diff --git a/libupnp/ixml/src/document.c b/ixml/src/document.c similarity index 100% rename from libupnp/ixml/src/document.c rename to ixml/src/document.c diff --git a/libupnp/ixml/src/element.c b/ixml/src/element.c similarity index 100% rename from libupnp/ixml/src/element.c rename to ixml/src/element.c diff --git a/libupnp/ixml/src/inc/ixmlmembuf.h b/ixml/src/inc/ixmlmembuf.h similarity index 98% rename from libupnp/ixml/src/inc/ixmlmembuf.h rename to ixml/src/inc/ixmlmembuf.h index 4ab756f..cd99c25 100644 --- a/libupnp/ixml/src/inc/ixmlmembuf.h +++ b/ixml/src/inc/ixmlmembuf.h @@ -38,7 +38,9 @@ #define MINVAL( a, b ) ( (a) < (b) ? (a) : (b) ) #define MAXVAL( a, b ) ( (a) > (b) ? (a) : (b) ) -#define XINLINE inline +#ifndef WIN32 + #define XINLINE inline +#endif #define MEMBUF_DEF_SIZE_INC 20 diff --git a/libupnp/ixml/src/inc/ixmlparser.h b/ixml/src/inc/ixmlparser.h similarity index 100% rename from libupnp/ixml/src/inc/ixmlparser.h rename to ixml/src/inc/ixmlparser.h diff --git a/libupnp/ixml/src/ixml.c b/ixml/src/ixml.c similarity index 100% rename from libupnp/ixml/src/ixml.c rename to ixml/src/ixml.c diff --git a/libupnp/ixml/src/ixmlmembuf.c b/ixml/src/ixmlmembuf.c similarity index 100% rename from libupnp/ixml/src/ixmlmembuf.c rename to ixml/src/ixmlmembuf.c diff --git a/libupnp/ixml/src/ixmlparser.c b/ixml/src/ixmlparser.c similarity index 99% rename from libupnp/ixml/src/ixmlparser.c rename to ixml/src/ixmlparser.c index 6a4ffb2..1b68594 100644 --- a/libupnp/ixml/src/ixmlparser.c +++ b/ixml/src/ixmlparser.c @@ -32,6 +32,10 @@ #include #include "ixmlparser.h" +#ifdef WIN32 + #define strncasecmp strnicmp +#endif + static char g_error_char = '\0'; static const char LESSTHAN = '<'; @@ -1712,11 +1716,13 @@ Parser_xmlNamespace( IN Parser * xmlParser, if( pCur->namespaceUri != NULL ) { free( pCur->namespaceUri ); } - - pCur->namespaceUri = strdup( newNode->nodeValue ); - if( pCur->namespaceUri == NULL ) { - return IXML_INSUFFICIENT_MEMORY; - } +///here it goes to segfault on "" when not copying + if(newNode->nodeValue){ + pCur->namespaceUri = strdup( newNode->nodeValue ); + if( pCur->namespaceUri == NULL ) { + return IXML_INSUFFICIENT_MEMORY; + } + } } else if( strncmp( newNode->nodeName, "xmlns:", strlen( "xmlns:" ) ) == 0 ) { // namespace definition rc = Parser_setNodePrefixAndLocalName( newNode ); @@ -2458,7 +2464,8 @@ Parser_getNextNode( IN Parser * xmlParser, *bETag = TRUE; return IXML_SUCCESS; - } else if( xmlParser->state == eATTRIBUTE ) { + } else if( (xmlParser->state == eATTRIBUTE) && + (xmlParser->pCurElement != NULL) ) { if( Parser_processAttribute( xmlParser, node ) != IXML_SUCCESS ) { return IXML_SYNTAX_ERR; diff --git a/libupnp/ixml/src/namedNodeMap.c b/ixml/src/namedNodeMap.c similarity index 100% rename from libupnp/ixml/src/namedNodeMap.c rename to ixml/src/namedNodeMap.c diff --git a/libupnp/ixml/src/node.c b/ixml/src/node.c similarity index 99% rename from libupnp/ixml/src/node.c rename to ixml/src/node.c index a445de5..01e8d59 100644 --- a/libupnp/ixml/src/node.c +++ b/ixml/src/node.c @@ -929,6 +929,7 @@ ixmlNode_cloneElement( IN IXML_Element * nodeptr ) rc = ixmlElement_setTagName( newElement, nodeptr->tagName ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } elementNode = ( IXML_Node * ) newElement; @@ -936,26 +937,31 @@ ixmlNode_cloneElement( IN IXML_Element * nodeptr ) rc = ixmlNode_setNodeName( elementNode, srcNode->nodeName ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } rc = ixmlNode_setNodeValue( elementNode, srcNode->nodeValue ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } rc = ixmlNode_setNamespaceURI( elementNode, srcNode->namespaceURI ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } rc = ixmlNode_setPrefix( elementNode, srcNode->prefix ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } rc = ixmlNode_setLocalName( elementNode, srcNode->localName ); if( rc != IXML_SUCCESS ) { ixmlElement_free( newElement ); + return NULL; } elementNode->nodeType = eELEMENT_NODE; @@ -1247,6 +1253,10 @@ ixmlNode_cloneNodeTree( IN IXML_Node * nodeptr, case eDOCUMENT_TYPE_NODE: case eDOCUMENT_FRAGMENT_NODE: case eNOTATION_NODE: +/* create a new node here? newNode = (IXML_Node *)malloc(sizeof(IXML_Node)); + if( newNode == NULL ) { + return NULL; + }*/ break; } diff --git a/libupnp/ixml/src/nodeList.c b/ixml/src/nodeList.c similarity index 99% rename from libupnp/ixml/src/nodeList.c rename to ixml/src/nodeList.c index a7f5dbd..aadd158 100644 --- a/libupnp/ixml/src/nodeList.c +++ b/ixml/src/nodeList.c @@ -75,6 +75,8 @@ ixmlNodeList_item( IXML_NodeList * nList, next = next->next; } + if( next == NULL ) return NULL; + return next->nodeItem; } diff --git a/libupnp/ixml/test/test_document.c b/ixml/test/test_document.c similarity index 100% rename from libupnp/ixml/test/test_document.c rename to ixml/test/test_document.c diff --git a/libupnp/ixml/test/test_document.sh b/ixml/test/test_document.sh similarity index 100% rename from libupnp/ixml/test/test_document.sh rename to ixml/test/test_document.sh diff --git a/libupnp/ixml/test/testdata/empty_attribute.xml b/ixml/test/testdata/empty_attribute.xml similarity index 100% rename from libupnp/ixml/test/testdata/empty_attribute.xml rename to ixml/test/testdata/empty_attribute.xml diff --git a/libupnp/ixml/test/testdata/p43pass1.xml b/ixml/test/testdata/p43pass1.xml similarity index 100% rename from libupnp/ixml/test/testdata/p43pass1.xml rename to ixml/test/testdata/p43pass1.xml diff --git a/libupnp/ixml/test/testdata/tvcontrolSCPD.xml b/ixml/test/testdata/tvcontrolSCPD.xml similarity index 100% rename from libupnp/ixml/test/testdata/tvcontrolSCPD.xml rename to ixml/test/testdata/tvcontrolSCPD.xml diff --git a/libupnp/ixml/test/testdata/tvdevicedesc.xml b/ixml/test/testdata/tvdevicedesc.xml similarity index 100% rename from libupnp/ixml/test/testdata/tvdevicedesc.xml rename to ixml/test/testdata/tvdevicedesc.xml diff --git a/libupnp/ixml/test/testdata/tvpictureSCPD.xml b/ixml/test/testdata/tvpictureSCPD.xml similarity index 100% rename from libupnp/ixml/test/testdata/tvpictureSCPD.xml rename to ixml/test/testdata/tvpictureSCPD.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/legal.html b/ixml/test/testdata/xml.ascc.net/legal.html similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/legal.html rename to ixml/test/testdata/xml.ascc.net/legal.html diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-0.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-0.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-0.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-0.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-1.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-1.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-1.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-1.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-10.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-10.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-10.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-10.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-11.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-11.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-11.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-11.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-12.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-12.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-12.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-12.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-2.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-2.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-2.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-2.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-3.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-3.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-3.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-3.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-4.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-4.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-4.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-4.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-5.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-5.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-5.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-5.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-6.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-6.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-6.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-6.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-7.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-7.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-7.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-7.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-8.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-8.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-8.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-8.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-9.xml b/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-9.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wf/zh-utf8-9.xml rename to ixml/test/testdata/xml.ascc.net/wf/zh-utf8-9.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-0.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-0.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-0.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-0.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-1.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-1.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-1.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-1.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-10.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-10.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-10.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-10.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-11.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-11.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-11.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-11.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-12.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-12.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-12.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-12.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-2.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-2.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-2.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-2.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-3.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-3.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-3.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-3.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-4.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-4.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-4.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-4.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-5.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-5.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-5.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-5.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-6.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-6.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-6.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-6.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-7.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-7.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-7.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-7.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-8.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-8.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-8.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-8.xml diff --git a/libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-9.xml b/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-9.xml similarity index 100% rename from libupnp/ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-9.xml rename to ixml/test/testdata/xml.ascc.net/wfns/zh-utf8-9.xml diff --git a/libupnp/ixml/test/testdata/xmlconf/014.xml b/ixml/test/testdata/xmlconf/014.xml similarity index 100% rename from libupnp/ixml/test/testdata/xmlconf/014.xml rename to ixml/test/testdata/xmlconf/014.xml diff --git a/libupnp/ixml/test/testdata/xmlconf/040.xml b/ixml/test/testdata/xmlconf/040.xml similarity index 100% rename from libupnp/ixml/test/testdata/xmlconf/040.xml rename to ixml/test/testdata/xmlconf/040.xml diff --git a/libupnp/ixml/test/testdata/xmlconf/059.xml b/ixml/test/testdata/xmlconf/059.xml similarity index 100% rename from libupnp/ixml/test/testdata/xmlconf/059.xml rename to ixml/test/testdata/xmlconf/059.xml diff --git a/libupnp/ixml/test/testdata/xmlconf/111.xml b/ixml/test/testdata/xmlconf/111.xml similarity index 100% rename from libupnp/ixml/test/testdata/xmlconf/111.xml rename to ixml/test/testdata/xmlconf/111.xml diff --git a/libupnp/ixml/test/testdata/xmlconf/element.xml b/ixml/test/testdata/xmlconf/element.xml similarity index 100% rename from libupnp/ixml/test/testdata/xmlconf/element.xml rename to ixml/test/testdata/xmlconf/element.xml diff --git a/libupnp/libupnp.pc.in b/libupnp.pc.in similarity index 100% rename from libupnp/libupnp.pc.in rename to libupnp.pc.in diff --git a/libupnp/build/inc/autoconfig.h b/libupnp/build/inc/autoconfig.h new file mode 100644 index 0000000..f461e4c --- /dev/null +++ b/libupnp/build/inc/autoconfig.h @@ -0,0 +1,162 @@ +/* autoconfig.h. Generated by configure. */ +/* autoconfig.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 to compile debug code */ +/* #undef DEBUG */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +/* #undef HAVE_DOPRNT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MALLOC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define if you have POSIX threads libraries and header files. */ +#define HAVE_PTHREAD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMEB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vprintf' function. */ +#define HAVE_VPRINTF 1 + +/* Define to 1 to prevent compilation of assert() */ +#define NDEBUG 1 + +/* Define to 1 to prevent some debug code */ +#define NO_DEBUG 1 + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Name of package */ +#define PACKAGE "libupnp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "virtual_worlds@gmx.de" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "libupnp" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "libupnp 1.4.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "libupnp" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.4.0" + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* see upnpconfig.h */ +#define UPNP_HAVE_CLIENT 1 + +/* see upnpconfig.h */ +/* #undef UPNP_HAVE_DEBUG */ + +/* see upnpconfig.h */ +#define UPNP_HAVE_DEVICE 1 + +/* see upnpconfig.h */ +#define UPNP_HAVE_TOOLS 1 + +/* see upnpconfig.h */ +#define UPNP_HAVE_WEBSERVER 1 + +/* see upnpconfig.h */ +#define UPNP_VERSION_MAJOR 1 + +/* see upnpconfig.h */ +#define UPNP_VERSION_MINOR 4 + +/* see upnpconfig.h */ +#define UPNP_VERSION_PATCH 0 + +/* see upnpconfig.h */ +#define UPNP_VERSION_STRING "1.4.0" + +/* Version number of package */ +#define VERSION "1.4.0" + +/* Number of bits in a file offset, on hosts where this is settable. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `unsigned' if does not define. */ +/* #undef size_t */ + +/* Substitute for socklen_t */ +/* #undef socklen_t */ diff --git a/libupnp/build/inc/config.h b/libupnp/build/inc/config.h new file mode 100644 index 0000000..e8f0795 --- /dev/null +++ b/libupnp/build/inc/config.h @@ -0,0 +1,362 @@ +/////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2000-2003 Intel Corporation +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither name of Intel Corporation nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////// + +#ifndef INTERNAL_CONFIG_H +#define INTERNAL_CONFIG_H + +#include "autoconfig.h" + + +/** @name Compile time configuration options + * The Linux SDK for UPnP Devices contains some compile-time parameters + * that effect the behavior of the SDK. All configuration options are + * located in {\tt src/inc/config.h}. + */ + +//@{ + +/** @name THREAD_IDLE_TIME + * The {\tt THREAD_IDLE_TIME} constant determines when a thread will be + * removed from the thread pool and returned to the operating system. When + * a thread in the thread pool has been idle for this number of milliseconds + * the thread will be released from the thread pool. The default value is + * 5000 milliseconds (5 seconds). + */ + +//@{ +#define THREAD_IDLE_TIME 5000 +//@} + +/** @name JOBS_PER_THREAD + * The {\tt JOBS_PER_THREAD} constant determines when a new thread will be + * allocated to the thread pool inside the SDK. The thread pool will + * try and maintain this jobs/thread ratio. When the jobs/thread ratio + * becomes greater than this, then a new thread (up to the max) will be + * allocated to the thread pool. The default ratio is 10 jobs/thread. + */ + +//@{ +#define JOBS_PER_THREAD 10 +//@} + +/** @name MIN_THREADS + * The {\tt MIN_THREADS} constant defines the minimum number of threads the + * thread pool inside the SDK will create. The thread pool will + * always have this number of threads. These threads are used + * for both callbacks into applications built on top of the SDK and also + * for making connections to other control points and devices. This number + * includes persistent threads. The default value is two threads. + */ + +//@{ +#define MIN_THREADS 2 +//@} + +/** @name MAX_THREADS + * The {\tt MAX_THREADS} constant defines the maximum number of threads the + * thread pool inside the SDK will create. These threads are used + * for both callbacks into applications built on top of the library and also + * for making connections to other control points and devices. It is not + * recommended that this value be below 10, since the threads are + * necessary for correct operation. This value can be increased for greater + * performance in operation at the expense of greater memory overhead. The + * default value is 12. + */ + +//@{ +#define MAX_THREADS 12 +//@} + +/** @name DEFAULT_SOAP_CONTENT_LENGTH + * SOAP messages will read at most {\tt DEFAULT_SOAP_CONTENT_LENGTH} bytes. + * This prevents devices that have a misbehaving web server to send + * a large amount of data to the control point causing it to crash. + * This can be adjusted dynamically with {\tt UpnpSetMaxContentLength}. + */ +//@{ +#define DEFAULT_SOAP_CONTENT_LENGTH 16000 +//@} + +/** @name NUM_SSDP_COPY + * This configuration parameter determines how many copies of each SSDP + * advertisement and search packets will be sent. By default it will send two + * copies of every packet. + */ +//@{ +#define NUM_SSDP_COPY 2 +//@} + +/** @name SSDP_PAUSE + * This configuration parameter determines the pause between identical SSDP + * advertisement and search packets. The pause is measured in milliseconds + * and defaults to 100. + */ +//@{ +#define SSDP_PAUSE 100 +//@} + +/** @name WEB_SERVER_BUF_SIZE + * This configuration parameter sets the maximum buffer size for the + * webserver. The default value is 1MB. + */ +//@{ +#define WEB_SERVER_BUF_SIZE (1024*1024) +//@} + +/** @name AUTO_RENEW_TIME + * The {\tt AUTO_RENEW_TIME} is the time, in seconds, before a subscription + * expires that the SDK automatically resubscribes. The default + * value is 10 seconds. Setting this value too low can result in the + * subscription renewal not making it to the device in time, causing the + * subscription to timeout. In order to avoid continually resubscribing + * the minimum subscription time is five seconds more than the auto renew + * time. + */ + +//@{ +#define AUTO_RENEW_TIME 10 +//@} + +/** @name CP_MINIMUM_SUBSCRIPTION_TIME + * The {\tt CP_MINIMUM_SUBSCRIPTION_TIME} is the minimum subscription time + * allowed for a control point using the SDK. Subscribing for less than + * this time automatically results in a subscription for this amount. The + * default value is 5 seconds more than the {\tt AUTO_RENEW_TIME}, or 15 + * seconds. + */ + +//@{ +#define CP_MINIMUM_SUBSCRIPTION_TIME (AUTO_RENEW_TIME + 5) +//@} + +/** @name MAX_SEARCH_TIME + * The {\tt MAX_SEARCH_TIME} is the maximum time + * allowed for an SSDP search by a control point. Searching for greater than + * this time automatically results in a search for this amount. The default + * value is 80 seconds. + */ + +//@{ +#define MAX_SEARCH_TIME 80 +//@} + +/** @name MIN_SEARCH_TIME + * The {\tt MIN_SEARCH_TIME} is the minimumm time + * allowed for an SSDP search by a control point. Searching for less than + * this time automatically results in a search for this amount. The default + * value is 2 seconds. + */ + +//@{ +#define MIN_SEARCH_TIME 2 +//@} + + +/** @name AUTO_ADVERTISEMENT_TIME + * The {\tt AUTO_ADVERTISEMENT_TIME} is the time, in seconds, before an + * device advertisements expires before a renewed advertisement is sent. + * The default time is 30 seconds. + */ + +//@{ +#define AUTO_ADVERTISEMENT_TIME 30 +//@} + +/** @name SSDP_PACKET_DISTRIBUTE + * The {\tt SSDP_PACKET_DISTRIBUTE} enables the SSDP packets to be sent + * at an interval equal to half of the expiration time of SSDP packets + * minus the AUTO_ADVERTISEMENT_TIME. This is used to increase + * the probability of SSDP packets reaching to control points. + * It is recommended that this flag be turned on for embedded wireless + * devices. + */ + +//@{ +#define SSDP_PACKET_DISTRIBUTE 1 +//@} + +/** @name Module Exclusion + * Depending on the requirements, the user can selectively discard any of + * the major modules like SOAP, GENA, SSDP or the Internal web server. By + * default everything is included inside the SDK. By setting any of + * the values below to 0, that component will not be included in the final + * SDK. + * \begin{itemize} + * \item {\tt EXCLUDE_SOAP[0,1]} + * \item {\tt EXCLUDE_GENA[0,1]} + * \item {\tt EXCLUDE_SSDP[0,1]} + * \item {\tt EXCLUDE_DOM [0,1]} + * \item {\tt EXCLUDE_MINISERVER[0,1]} + * \item {\tt EXCLUDE_WEB_SERVER[0,1]} + * \item {\tt EXCLUDE_JNI[0,1]} + * \end{itemize} + * + */ + +//@{ +#define EXCLUDE_SSDP 0 +#define EXCLUDE_SOAP 0 +#define EXCLUDE_GENA 0 +#define EXCLUDE_DOM 0 +#define EXCLUDE_MINISERVER 0 +#define EXCLUDE_WEB_SERVER 0 +#ifdef USE_JNI +# define EXCLUDE_JNI 0 +#else +# define EXCLUDE_JNI 1 +#endif +//@} + + +/** @name DEBUG_TARGET + * The user has the option to redirect the library output debug messages + * to either the screen or to a log file. All the output messages with + * debug level 0 will go to {\tt upnp.err} and messages with debug level + * greater than zero will be redirected to {\tt upnp.out}. + */ + +//@{ +#define DEBUG_TARGET 1 +//@} + + +/** @name Other debugging features + The UPnP SDK contains other features to aid in debugging: + see + */ + +#define DEBUG_ALL 1 +#define DEBUG_SSDP 0 +#define DEBUG_SOAP 0 +#define DEBUG_GENA 0 +#define DEBUG_TPOOL 0 +#define DEBUG_MSERV 0 +#define DEBUG_DOM 0 +#define DEBUG_HTTP 0 +#define DEBUG_API 0 + +//@} // Compile time configuration options + + +/*************************************************************************** + * Do not change, Internal purpose only!!! + ***************************************************************************/ + +//@{ + +/* + * Set additional defines based on requested configuration + */ + +// configure --enable-client +#if UPNP_HAVE_CLIENT +# define INCLUDE_CLIENT_APIS 1 +#endif + +// configure --enable-device +#if UPNP_HAVE_DEVICE +# define INCLUDE_DEVICE_APIS 1 +#endif + +// configure --enable-webserver --enable-device +#if UPNP_HAVE_WEBSERVER +# define INTERNAL_WEB_SERVER 1 +#endif + + + +/** @name DBGONLY + The {\bf DBGONLY} macro allows code to be marked so that it + is only included in the DEBUG build and not the release. To + use this macro, put the code inside of the parentheses: + + {\tt DBGONLY(int i;)} + + This will cause a declaration of the integer {\tt i} only + in the debug build. + */ + +//@{ +#ifndef WIN32 + #ifdef DEBUG + # define DBGONLY(x) x + #else + # define DBGONLY(x) + #endif +#endif +//@} + + + +#undef EXCLUDE_WEB_SERVER +#undef EXCLUDE_MINISERVER +#ifdef INTERNAL_WEB_SERVER +# define EXCLUDE_WEB_SERVER 0 +# define EXCLUDE_MINISERVER 0 +#else +# define EXCLUDE_WEB_SERVER 1 +# define EXCLUDE_MINISERVER 1 +#endif + +#if EXCLUDE_GENA == 1 && EXCLUDE_SOAP == 1 && EXCLUDE_WEB_SERVER == 1 +# undef EXCLUDE_MINISERVER +# define EXCLUDE_MINISERVER 1 +# if INTERNAL_WEB_SERVER +# error "conflicting settings: use configure --disable-webserver" +# endif +#endif + +#if EXCLUDE_GENA == 0 || EXCLUDE_SOAP == 0 || EXCLUDE_WEB_SERVER == 0 +# undef EXCLUDE_MINISERVER +# define EXCLUDE_MINISERVER 0 +# if EXCLUDE_WEB_SERVER == 0 && !defined INTERNAL_WEB_SERVER +# error "conflicting settings : use configure --enable-webserver" +# endif +#endif + + + +#ifdef INCLUDE_CLIENT_APIS +# define CLIENTONLY(x) x +#else +# define CLIENTONLY(x) +#endif + +#ifdef INCLUDE_DEVICE_APIS +# define DEVICEONLY(x) x +#else +# define DEVICEONLY(x) +#endif + +//@} +#endif + + diff --git a/libupnp/build/inc/upnpconfig.h b/libupnp/build/inc/upnpconfig.h new file mode 100644 index 0000000..ec5dacf --- /dev/null +++ b/libupnp/build/inc/upnpconfig.h @@ -0,0 +1,97 @@ +/* upnp/inc/upnpconfig.h. Generated by configure. */ +// -*- C -*- +/////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006 Rémi Turboult +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither name of Intel Corporation nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////// + +#ifndef UPNP_CONFIG_H +#define UPNP_CONFIG_H + + +/*************************************************************************** + * Library version + ***************************************************************************/ + +/** The library version (string) e.g. "1.3.0" */ +#define UPNP_VERSION_STRING "1.4.0" + +/** Major version of the library */ +#define UPNP_VERSION_MAJOR 1 + +/** Minor version of the library */ +#define UPNP_VERSION_MINOR 4 + +/** Patch version of the library */ +#define UPNP_VERSION_PATCH 0 + +/** The library version (numeric) e.g. 10300 means version 1.3.0 */ +#define UPNP_VERSION \ + ((UPNP_VERSION_MAJOR*100 + UPNP_VERSION_MINOR)*100 + UPNP_VERSION_PATCH) + + + +/*************************************************************************** + * Library optional features + ***************************************************************************/ + +/* + * The following defines can be tested in order to know which + * optional features have been included in the installed library. + */ + + +/** Defined to 1 if the library has been compiled with DEBUG enabled + * (i.e. configure --enable-debug) : file is available */ +#undef UPNP_HAVE_DEBUG + + +/** Defined to 1 if the library has been compiled with client API enabled + * (i.e. configure --enable-client) */ +#define UPNP_HAVE_CLIENT 1 + + +/** Defined to 1 if the library has been compiled with device API enabled + * (i.e. configure --enable-device) */ +#define UPNP_HAVE_DEVICE 1 + + +/** Defined to 1 if the library has been compiled with integrated web server + * (i.e. configure --enable-webserver --enable-device) */ +#define UPNP_HAVE_WEBSERVER 1 + + +/** Defined to 1 if the library has been compiled with helper API + * (i.e. configure --enable-tools) : file is available */ +#define UPNP_HAVE_TOOLS 1 + + +#endif // UPNP_CONFIG_H + + diff --git a/libupnp/upnp/doc/UPnP_Programming_Guide.pdf b/libupnp/upnp/doc/UPnP_Programming_Guide.pdf deleted file mode 100644 index d81de2a7e2ff4d1447fbc47231cefc129a71c65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107401 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 L%*>KXQl$R}LKB7o diff --git a/libupnp/m4/acx_pthread.m4 b/m4/acx_pthread.m4 similarity index 100% rename from libupnp/m4/acx_pthread.m4 rename to m4/acx_pthread.m4 diff --git a/libupnp/m4/ax_cflags_gcc_option.m4 b/m4/ax_cflags_gcc_option.m4 similarity index 100% rename from libupnp/m4/ax_cflags_gcc_option.m4 rename to m4/ax_cflags_gcc_option.m4 diff --git a/libupnp/m4/ax_cflags_warn_all.m4 b/m4/ax_cflags_warn_all.m4 similarity index 100% rename from libupnp/m4/ax_cflags_warn_all.m4 rename to m4/ax_cflags_warn_all.m4 diff --git a/libupnp/m4/ax_cflags_warn_all_ansi.m4 b/m4/ax_cflags_warn_all_ansi.m4 similarity index 100% rename from libupnp/m4/ax_cflags_warn_all_ansi.m4 rename to m4/ax_cflags_warn_all_ansi.m4 diff --git a/libupnp/m4/rt_bool_arg_enable.m4 b/m4/rt_bool_arg_enable.m4 similarity index 100% rename from libupnp/m4/rt_bool_arg_enable.m4 rename to m4/rt_bool_arg_enable.m4 diff --git a/libupnp/m4/type_socklen_t.m4 b/m4/type_socklen_t.m4 similarity index 100% rename from libupnp/m4/type_socklen_t.m4 rename to m4/type_socklen_t.m4 diff --git a/libupnp/threadutil/Makefile.am b/threadutil/Makefile.am similarity index 100% rename from libupnp/threadutil/Makefile.am rename to threadutil/Makefile.am diff --git a/libupnp/threadutil/inc/FreeList.h b/threadutil/inc/FreeList.h similarity index 100% rename from libupnp/threadutil/inc/FreeList.h rename to threadutil/inc/FreeList.h diff --git a/libupnp/threadutil/inc/LinkedList.h b/threadutil/inc/LinkedList.h similarity index 100% rename from libupnp/threadutil/inc/LinkedList.h rename to threadutil/inc/LinkedList.h diff --git a/libupnp/threadutil/inc/ThreadPool.h b/threadutil/inc/ThreadPool.h similarity index 99% rename from libupnp/threadutil/inc/ThreadPool.h rename to threadutil/inc/ThreadPool.h index cd7f558..3ef79e7 100644 --- a/libupnp/threadutil/inc/ThreadPool.h +++ b/threadutil/inc/ThreadPool.h @@ -78,10 +78,12 @@ typedef enum priority {LOW_PRIORITY, #endif //DEBUGGING -#ifdef DEBUG -#define DBGONLY(x) x -#else -#define DBGONLY(x) +#ifndef WIN32 + #ifdef DEBUG + #define DBGONLY(x) x + #else + #define DBGONLY(x) + #endif #endif #include "LinkedList.h" diff --git a/libupnp/threadutil/inc/TimerThread.h b/threadutil/inc/TimerThread.h similarity index 100% rename from libupnp/threadutil/inc/TimerThread.h rename to threadutil/inc/TimerThread.h diff --git a/libupnp/threadutil/inc/iasnprintf.h b/threadutil/inc/iasnprintf.h similarity index 100% rename from libupnp/threadutil/inc/iasnprintf.h rename to threadutil/inc/iasnprintf.h diff --git a/libupnp/threadutil/inc/ithread.h b/threadutil/inc/ithread.h similarity index 98% rename from libupnp/threadutil/inc/ithread.h rename to threadutil/inc/ithread.h index b785f63..b5ea840 100644 --- a/libupnp/threadutil/inc/ithread.h +++ b/threadutil/inc/ithread.h @@ -43,7 +43,9 @@ extern "C" { #endif #include -#include +#ifndef WIN32 + #include +#endif #define ITHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_FAST_NP #define ITHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE_NP @@ -524,10 +526,20 @@ extern "C" { *****************************************************************************/ #define imillisleep(x) usleep(1000*x) +#ifdef WIN32 + #ifdef LIBUPNP_EXPORTS + // set up declspec for dll export to make functions visible to library users + #define EXPORT_SPEC __declspec(dllexport) + #else + #define EXPORT_SPEC __declspec(dllimport) + #endif +#else + #define EXPORT_SPEC +#endif //NK: Added for satisfying the gcc compiler -int pthread_mutexattr_setkind_np(pthread_mutexattr_t *attr, int kind); +EXPORT_SPEC int pthread_mutexattr_setkind_np(pthread_mutexattr_t *attr, int kind); #ifdef __cplusplus } diff --git a/libupnp/threadutil/src/FreeList.c b/threadutil/src/FreeList.c similarity index 100% rename from libupnp/threadutil/src/FreeList.c rename to threadutil/src/FreeList.c diff --git a/libupnp/threadutil/src/LinkedList.c b/threadutil/src/LinkedList.c similarity index 99% rename from libupnp/threadutil/src/LinkedList.c rename to threadutil/src/LinkedList.c index c1b2950..d1f418e 100644 --- a/libupnp/threadutil/src/LinkedList.c +++ b/threadutil/src/LinkedList.c @@ -30,7 +30,11 @@ /////////////////////////////////////////////////////////////////////////// #include "LinkedList.h" +#ifdef __FreeBSD__ +#include +#else #include +#endif #include static int diff --git a/libupnp/threadutil/src/ThreadPool.c b/threadutil/src/ThreadPool.c similarity index 98% rename from libupnp/threadutil/src/ThreadPool.c rename to threadutil/src/ThreadPool.c index f4d0211..ee30b51 100644 --- a/libupnp/threadutil/src/ThreadPool.c +++ b/threadutil/src/ThreadPool.c @@ -92,11 +92,15 @@ FreeThreadPoolJob( ThreadPool * tp, static int SetPolicyType( PolicyType in ) { - struct sched_param current; + #ifdef WIN32 + return sched_setscheduler( 0, in); + #else + struct sched_param current; - sched_getparam( 0, ¤t ); - current.sched_priority = DEFAULT_SCHED_PARAM; - return sched_setscheduler( 0, in, ¤t ); + sched_getparam( 0, ¤t ); + current.sched_priority = DEFAULT_SCHED_PARAM; + return sched_setscheduler( 0, in, ¤t ); + #endif } /**************************************************************************** @@ -341,7 +345,13 @@ tp->stats.totalJobsLQ++; tp->stats.totalTimeLQ += diff; break; default: struct timeb t; ftime( &t ); +#if defined(WIN32) + srand( ( unsigned int )t.millitm + (unsigned int)ithread_get_current_thread_id( ).p ); +#elif defined(__FreeBSD__) + srand( ( unsigned int )t.millitm + (unsigned int)ithread_get_current_thread_id( ) ); +#else srand( ( unsigned int )t.millitm + ithread_get_current_thread_id( ) ); +#endif } /**************************************************************************** @@ -1455,7 +1465,11 @@ tp->stats.totalJobsLQ++; tp->stats.totalTimeLQ += diff; break; default: assert( stats != NULL ); if( stats == NULL ) { return;} + #ifdef __FreeBSD__ + printf( "ThreadPoolStats at Time: %d\n", time( NULL ) ); + #else printf( "ThreadPoolStats at Time: %ld\n", time( NULL ) ); + #endif printf ( "Average Wait in High Priority Q in milliseconds: %lf\n", stats->avgWaitHQ ); diff --git a/libupnp/threadutil/src/TimerThread.c b/threadutil/src/TimerThread.c similarity index 100% rename from libupnp/threadutil/src/TimerThread.c rename to threadutil/src/TimerThread.c diff --git a/libupnp/threadutil/src/iasnprintf.c b/threadutil/src/iasnprintf.c similarity index 96% rename from libupnp/threadutil/src/iasnprintf.c rename to threadutil/src/iasnprintf.c index dd2bd16..57d9f72 100644 --- a/libupnp/threadutil/src/iasnprintf.c +++ b/threadutil/src/iasnprintf.c @@ -31,7 +31,11 @@ #include #include +#ifdef __FreeBSD__ +#include +#else #include +#endif #include #include "iasnprintf.h" @@ -39,6 +43,10 @@ #define NULL 0 #endif +#ifdef WIN32 + #define vsnprintf _vsnprintf +#endif + /** * Allocates enough memory for the * Formatted string, up to max @@ -64,6 +72,8 @@ iasnprintf( char **ret, assert( fmt ); ( *ret ) = ( char * )malloc( incr ); + if( ( *ret ) == NULL ) return -1; + while( 1 ) { va_start( ap, fmt ); retc = vsnprintf( ( *ret ), size, fmt, ap ); diff --git a/libupnp/upnp/LICENSE b/upnp/LICENSE similarity index 100% rename from libupnp/upnp/LICENSE rename to upnp/LICENSE diff --git a/libupnp/upnp/Makefile.am b/upnp/Makefile.am similarity index 100% rename from libupnp/upnp/Makefile.am rename to upnp/Makefile.am diff --git a/libupnp/upnp/doc/Makefile.am b/upnp/doc/Makefile.am similarity index 100% rename from libupnp/upnp/doc/Makefile.am rename to upnp/doc/Makefile.am diff --git a/upnp/doc/UPnP_Programming_Guide.pdf b/upnp/doc/UPnP_Programming_Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7d4502b58964c49e55cf2bba6dad39fbc6b0cd97 GIT binary patch literal 373412 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%0D&U6))7C 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

Et3bTMT7tA8g#hey8uF))4`PtI2(G5D-4 zKa?b64_j}dW+=>X|5E?YMEfH>GEN0^3+Mi!F-C?UX`r9pKDPNu+hW>tP>hj^6(RB~ zQtsg=HI90Mx+zBYi9}BF2sI~h#L|jATLPO4aa1Cls2)h+=O9!GWNRsR*a<7)cvP}r z70y9uao-AW#Q<^{KX08-%5VRwVr0hyLWq}1|{S)jB$aYolpY4Zcjr_m&3LDo$ zQ(Xz|klJqD_ug!~vZ2xb1hFR@?T7KUSFbrfdnFio(2^Horjofg0}F)(Z;>UqH1)dIxH&9^opXF0L!txiqaLZzvpMK*cii@qJ*Y z3~e+;^W#rktCIh2`2;i^{Y6+eU@%(h`g^xGuC`=4sz* zuv6do#~kArdPtUlZQAl!0RUqipEjm+HR{p)+#;>450%Re$F0TP=kVxPezvNyZH-YI zY|s#Owd(Tolv_=@vflHjEvWWkW~XVgUA3(kqwa=VQ`rIO*^b{a6L?grJz=E!N=}+p zKJl9;?`IRPdY21T1q6%-CZ=0wQx6#D>ETWoCTAEKcQ!UCD$=kD1TsT}unz^#5mtZ} zG?#?UkzW^rqYUcRt_D0{H)?u%cwPmRg>^b6?pejl|DnHKeEO;*vs;~=h^xC}s>ycD z$QT|K-gf&4*Nofg0%ArZtGLcu{&aA-@0F}>5O?pv;Mx-^f&$(V`zOMk45m8q6>Iy= z7nEhO6vi@tCP2Xja?V&NbUpcyh~(BB)!BxVU5mAO!cMm6~P`s(J& zGI?1GwLtwl6R!X0Fz*upmMaV)92iNSB!^sa4ZNi4n7j20c^=#Oqa8!Dv$4k@R;uRf<;IyR2d$&s&shBWNmk3K;ZCbcHh@%B=Mk#vO0e__Rqi2bYf79`@>Tj7^%)kC%+RK>4PzCU zz*AG%iq=#7rxCzhzS1uppK>Pn^cgdTtZ6Sk3m70_1pL-C&sg{9z*_EZH`BT$7$yj{ zBz4DH5PATdZe#)jaYRA{{WCfWQ@L0%piEIS;(CClEcPr*LxAa1G7V*XSdw8Z8<6f-IpZE9>Y0<`1NleJ0cB-J z2xx0{c(W7TLDs@S;WLT|7FF)<@AvN$XyR0u+lL4Uwk!{zU?J9>Gp%M{e3Vf#vh>7e zwdhj_Q+a_SYc|}fqs@zTME11Uz|bHt0?9?AMSX2h;DkHPv9$rBfoTM#rNRSkYvFYB zX5P351ny!t4K&&+_Nuw{aOQWH=Wesjq=RnMC$BX0?9@^8XY~-qM{@7V^Cn?e+$TN|=;se0 zo~KR15x@&dzzfRFtgOpk@7%ooP6dO}Tf<5E(nfv;)|H;dW*(%lw>R&wLvB*7!ZNum zagtS6f*_}>HV!~H=_+s%Z#1y;bsGmDlwwr@@Irw=J0m+AFY@uJfc)>l6jJs%h4Cj5 z)ao+T{rAHb%^9-nD#ECq3G~ZZ1K6@pQjdNC$yMcY8riEe>PEQRy;TT3j}TQP9z0!f zS4>?Gx#=H*N#Y#%M7`6p@J7ao=i(gPy}jO~ywz$KQL@JN?yNWK>*f;8i*&{9d?3QV z2UDYXEHpeGJG`okzL{z9N%ZP8=)m_eFV)Ml(j&;_uXrowT~ZtoYWKoWDhX zVr|`fsNEI{;$5o|*jU@iK8?Mss!>|5idH}zJIPGPyKTj!r4?;q!;03`Ka*81P6wHI zUu05ky!vt?kEAPINP_d?dy^OYLKzVq?F^VHu5j4AZ%F}CI8AM7!ysW{3lNw zBcBsEnka3By+VER%wmsTzDB7Elm1P0YYSL^MR*zgVQb_XknS*QzAMCifl9wUoxP#S zb;HzL?x7$jhyjPNO%uhqH02NF`a4S48D+5q6a|Yih@-}oDkcBtRTM@YROH{Q#$ZXp$-)Tf5?d8S>CmF2bK{$!Q#9!2X)@2Z>KhB zs%7}^H`1K#57l_v>%Vfwd(#&yuV<zQfO%Wcx50$m+Af&u>a?k_WuLy{{g)J8|?p2oAFxBVuSb`ac9ew7g>pN&>ulDTF235-v?qcWc< z3z=hzJ!DnFl)l_NgEmI$t4HVdQtmxdYS<~{w4dd?lHGWyqlsu)hxcAo+8eW3&{o~> zwGa7)FDxa{&$S zfeFS761ij{fv=$g0 z-PyKm^U|`cRB3bME@XnX!l515Zr@^nKNRGxve?h`vbJDGSIVUlw>PpBTMUxeVeXyH z!AO(Bx|tg)S?qD4Qb$hFO+FUES1i6fJNo`&pegDS@e!JF6>$#*W$$m&d?1%yK(5k%U=2(9_IF>-QzXCdyA?u~wD7pKC1Fi{_+y zG}xj?Yx)#s(77t}6Fy_TvQVWTMnv&|Nn zX*8zt`DnAkDaa)kprK%w+Fc`DF>t&QK*GT`v&Bk9Slvy#+yv4ex#EYL7xA-or~w7= z@w1bg?cQ7>_?-2s6safD5>gqt%D}kLVkxfy9z+of_@2;>-Lm}sXP7fV1(}9anasWy z43nD~<27K6n1NW;0X`M(Bhr4N@(yx87q$Ep8L5JePUTLhn^~F{r&Zj#I80uVkDP&8 zexglf=NgRI<2acT!E4qNfSh5HuY4hIqwAm{a7?|b+9rmIxcKm{<*EnXLM0HQBB~fg zA>QI0&;b|BTf&{PMOA{uqd(o_p8W`wTuWvnZE!w4J$3uEgV6lOSo-dQoc@I&47m?2 ze&{KbfsO#Y+NGQA498J_Z;(GA#Hnc{SjY8>*+~k06U~)I0<=l#w)!P}IU7V#C8h>YmbM8LP3$Z`9~Cr3sEi{-{q9tpiezjFOyYZkW-@yH#mR@o#DR(NhlfKv zoV5fZR(5Eh3_|SHXMzR{pB^>}qfhi~p?U-IXd~2q0X-r7K~Cv;(gr=1C{}TKYoVq7 zJ5>=OHNV7X^V6G5RFsZ<5_En)@3-AsD*9AgrnU^>tIXR<;Bq>*Nhala;F5JbYt}ZT z{5R0H!T_LbcNQf*B@mKt+hgXwvhEZHzVN)ihMZw(0r7!_zNsXuDc>n;pwqcxAlbnM z3VcttCH#nspi0fe%b-b9AqTHS;iz|0uSYg|^^qkj5= z77+#1$z>&I8W}Jb<~epqOqQ^qV7T+Rk+vaFK5x|fUv1cKyM70IR2~V`XnyDr;SwV( zrcKW#`BqJ0d;!_?NW$Qfxq@IMbnyF}%KZa74D%Fu;-cFl?C4F^G=?iks-glBxxa40 zBXe-poQvGyK)^(|fAg>+D`PmfAbGAJi7FV<&{=vBz`#+iA#wj^oQ-2+63HLl9x#~y zqKeXMR9gs4?U0}Xd%20ka7-O7^~|agB*B`*3Zbr3%j$b(k@tQ9j2#4NBOHB1u%_U23QNf+y1x2`W9TIwkluII5a)*I+Yo^S1`J*MNRJDfHp24;-83UzZUJ*)wDJ zE#dN7vp{2*F-vpEes_H-z;=s`-C;-OSoWNi&2pS}dHw~_PzYfa@oR;K9ODRTTltHt zMse3xOL!X7%i*2X@n~>0deAuCW8l5Fi|-TIq2*$8lntqHaC6(y@X4tRM2Nn9fNH2d z&${`&Ad#nO+kHaNrec>yg+68>KN zMQ~0p%3+8*g)uGRihGL|L}UocYnZF;8UF)AqSIsh{vDHSgYuuFTUnU?YiGsZ$mf5f zzJJ$Q@vo@wk2C&L>iZAQia*;U{_KhV3o)+$rkjHKU%4rm0IP6+ajbj(ebjz+0A>A_ zrU@+0mRD{p!X>OM?@Y?kiEdbfQ%8`9tXc*c4oG9avvd6x2pF1dKZGN_N$U&9?Ge|k zLqRLzaW(^ar5BTuwB&nR9PJ@i8aLC@#nbphj z&idY-K~DkNM|E+&QaNk2u*vL>_08hmE(Ld{+|k{70E&KO8h;n;m$C2s?dcNqJEQjY z{LeO~rVv3Up3(xOVp#3Kq0)9jW(5Jg05e5(UVEidQW;QA>~Qd$iDXCLgS(j%s1B(S zWB%(adIpviEp22HKfUTXg+SRQI$&(3f#+Cv^G&@>(K>!%xr6G*rh4*ei=`H>V|t!8 zQ4#K@MtR1kk)rl%5C*r6$SNDJ+Ng10EdfSpI#BX3zm`~;;ucv!NMZsHueV}>c*8-K zW0%KIXXlrvKCr~E)D;D37CoFPo&(L$JptRAQ5ChEr|EZ)OTpwhY8n>oG^7LZ6hNs& zia4HvKGQq=KD4AGU7?6TS-J#-*%{fkIAAYwkM~K1NDbQimW!6 z^CQtzB|MheBBwL)oN-Q3r9?74Ct;ea(neLGd)3(~eu6TVWrO5k{uQbWAZU*(kE#dqJj~0@l1ax~T3F?q;b{ z;G*pYma@KpffSq{=uDf7D=)EvQT|eASNSe7XM+EeEx?H|>0GZZ2u6CK)wWrud~);w zw5ki8rNi}St?l8@2yX|t+o!6wk#OazJqOe!?touRGLFuld0`+*TQ_a}&4nM$=BKZ} z?X0$nRuCg42*s&i$o9H%I}I}&lq$7rP!MO<=#%%JKbGfEg$eg zx|>dltL%i5l2Zglv5-LLrj&|AxAjXRu`w?OgtpoKvfp&`6vjto8%WQi@1#d|Fla=e z7cL9z$0HI;0%EQdqS(ImubxONkdQTR54-JQD}?2)GLlq3T2`oetll;55%6lP)Q+ei zV+mv15O#kGPUFmD%qNE&eIv0tu-56!3*m0-CRXkK$jPW4vl%5UT&F`BwOoBrYfyno z1N2~}?!a4pmkX(y9=e5qe)~=EieBS&{wvR@VC7_M5J2#SyhXsI_SPhn_m)PbU4>y# z5y#7~8_8eULmS@h-C4Fhh12EHj?w?2-|sxQ8E+H#1KL>5D*?4`ySmP zew0{c+G@b&1aVqxfqIsL=aez>>2Z&Hk)_ z-^k;_>xyD^2NIis1G<1i{Wf;( z-z?lN?fqC`eT6T&-XR3N1f{{F|x2|FSpBVY@%}%t0d5nsI@IK5Y83VE1MqY>$DSe604yzvIeu~I1 zqLfIoPFL@rH)xz+VavfceLcX|#wdt zurg4(p~@c>>>3?vsS#x?4y{&+8q5=)>t^JpuE~o|;s^DX4|3}AWe)aJT#AwXRO1#* zQOUMazo#E6#2LlD>gzC)7g=+cn*s7|W85%zrycP~CtqF@5(^MW@%+b z3+Q$dW@<;P3vUY~ai(GYkt9G7|9liZT{y{_8fA9l^%amL@CDIU1ll2r;uf$gw=pKB zmiyV@Y!(L%ND^?~1SAQtnKXgL+#>fRejkAJRKnI9fm8cRd0zhRGipp;U8R$c(NsPZU8tDvjrrdl8&T^6V75`p*bDCh^|IZhhn>eI+J*o z*~rm+epURcz@Z^(-ssA(sJ0$RpK#q0!m>!;UL>@hfQT@7(?o|%)YbQ<2?6PxPLw5V zqnPf$N_D?u!HCU&Ji<|2n8f-{?RjNzE>b)BT4Ss0N?=;#odrkGO<+E9h{i;xuO^Xb-<@oTz$>=pF zPeOW9#<1$cP@hXH>}F{%Y-{W?CN;P_iF@l!GfH(tSs!8XP~z^SL|Mo~s`Rod)=#&#Iv4>p)=WO^Vj!YDzSjp(^;rXGcJ|Jn!3Da!S2Fd|S3b2iy(lCr5Gee4~8v;j;y}xm^{# zEoiHMad(LaSn)bA^%u@k@D@7ppAsm1WwwM>7^sBy(jJd=5#mL*YCDghdV9Fw7|QfP zk#LCTUBhs)=204>u5gZz1{ee=DrFiG%^>RN-re2JZ#_6T zf8pqB z&y$gNmk9*Pi5}H&!vKk6gFwviGx)q4psr31Zf?#_Y)FJ@W>XZJ$6tt*T#vu#r!%PS z!p*9$>HO3dHn}n+ALZiLuICeNU-#nY!zohymYRa#*SnY=I>|tMS>9<7Fln+mfb{4u zTpJqDiNuPT9PA&&wG;#s{Ja&qaYPhK*PJ+oUgkxP*yJYfNC=W z@B}THp1LVR7iRTm6CsVv?ibagZoe)(7zbS>vNS~SZImA}I=~TD3Yr4M?}UByLgMDL z&XG*UuM=h+>9f0`=f7Q{Y=Z7Zk-n<4`V+xKpBSfP?B-2zT-0gdA*QbV$eedB$G2=* z5z4HPCOm7&0=*(MZ`FH58b3D#w9*HO4!&QPRh)`!&%U5UoArh!V~S!y@Z+_Mt>`_@ zN#r5riSVT=2S|2*USySt40qOi5%Gv<6*29=un+%L1(%z%UEMB5f#*M-d=$JD5f$}t z*XV_9F{cM9Kb!SC2*WZ;@w@}ea{2e3hy5W&(D%dJ@ zSq!Uy|H0fl2G`baTfec572CFLJ6W+-Y}>ZIV%xT{VyxJd7pF7-tW1$ z?#-u+S*cNTj;hRm>#hHK>kkjt%%Kzw9=^(x0vil7m-m3>mW4BLuwf=UGf2x?j z3~T!TL1UHi&kp22q!t6?*Z#_X(Qd0$Rae>-MezP3ED{UW0k6Z&uOJ6Wu;;4pW~&bN zdy*ALonC}b_60^1wSk>sZb@H0hkMt>$4lyEesAw3tKEQERlywcJw@prQTz~Au@(CYI}i_EvSL3<`=B~P}vN!(k_RPLZ7#rvqg=RuVB2GT^aLE zRnf2eSy{e3G}T)ta|$HD^Ht#QpOekq@Jj!#VYfNB(AT2`yunbdoOcueC_juAbmq|3K8>`Iu)S$A%U{)M;7ZdkI-wy)yUL zK;Q^PhMg3u`m!Wi2bNjJX@SCs)QerA`-s;lda$_hu)Ewcq;01x13uXvN3I5UIDj`2 zaA)^mk-hzx57DaQMX|)#T@Iin=1`x(%vP*y5)MuQnhM;&^@u0ndggA^x3i0fJ-&Fg zWEZwCUM=wnSGrIiCUL`$qvLJ&r8?nuhPU;Puk3iPSkW_L1wk3Z&xVr8;j!f|Y~RC@ z=ru}KzpZgWATS;mh%U<0SiEe;AhV8Cpni#|2@VJB0;tSAt-L4s8d}EQIXh7L6V?+} zJn_%!A1TS?R*v;F!mKE%sMZfe(nn94Q$hf{Po*X1Ff!CaPf?O6^W!1b+Jr@iH8t4P z48SOAqy6g;4-O+q-G~@%CcS&=T}2g)Hwke83b1c9Z7#vnV$?`|J@6$M4K&95A?dtS0_g$U z!FJ&~6*|pq!c(E9TiAJN%S@LtNu{9jTDPLK%cXPW&nB~KcA$*B#HlVBbH`by-;MO) z6eWtL+iR?VWn_yy@R_8r%Q&vK-pwBUu`)Nj+t_!-8ike) zu<9aTE^#zw`$NN8vuOy|^j$5v3?s*~DcXfnCBmMMuYWxQ$cDg!JeT)b)I4w>$Bf{+ zGLRDj&;Xmmbh2P5F;YFn8JuMPWuA^?(dl(SvGUVP8YHIc8Z{rY9LADDl&)jRl6{X7 z$>d~zm>N)!;xV_iPDOv7&r{Fk^`_Wn*C6F0b0&mMwExNdb}wKXK#jDg8FAMf%}kq$ zsn@#&$o&58Di>rH=XjzZ3{N+eDv%C<{Bd?E9g zzc_gQ++q1^qUVn<-~UwO|05;me?s&y{yBi}FAtvo(A)X{rp9Obvjy_cgNK#%UnY9i z)1+)xMG<^2Ur@Q@C0dpr^V!koI#vyO`>=G!jdeLeFz3 zfCBgIjhzo`@l5u2x3~7Id7-J*%<8vANDEBD!Q=iuGW#5xo`*8K6q`*A9k)0)h)tWX zu0UCMqra`vMJ{=KE5hV>_j>AdZTDn+HD-&?2=^)c&GjJCK)@_Lsv0~S9FOH<8SXp?h&&k zes_GYR}4mfrv8A@CbDjaMh#XCBccUzGf4HFK0Mio`(%klcZiL(WP*<7@AMYE^e+$A zj@mQ+?ekFI@sR{hQ&~uJU;^%+9d-CQ78G&~)NK1R07aD9HGdG$$uY3byEC*?;498A zAFsZr`Tv-No+1C3fQ>2qc)`(e;?)^nbi&3&o84EBlHb>GiCwxS*d9>6CrbEpv4l{ z{Z_&OnU0ECenRyAt|**nMyMri(gMm{%zM3R&mPPrYVxS#EQ0*0P2esracWBb{ElX| z8X35GrI=G6-()|=BW~@8yCoI*7-a59lLC8gM%*^Zsj#hqWMgA`FHnH@@)3 zI{14$=%p9m`xXAoi46{fdIZwx`7G5Q- zE=mjA^EqWa7iRIp5!{4@1JVWhWmPuAH&FO1GWufaF+8ViZpSC!u<5?j!0gbFKJm5B zmIMOxQNfG@*Pt2GkfA(F5P`Ha$Bd_r()d*=pv5PpdG2QXfH7jYIPEVA(#auVx}Laf zE5{6`(ll&QMZ0prYr8*OV=>>oKAOBO_a!ZQ(gZgBAScp=mJ^dA%wD`zh6v^GXC7s6 zH@G1XCYC{Nqp1XGA&lD<10|F@NOZM}UQX9Bv~*a8bdGNAGY~5v@53eSR0l^#t89oUcsteBbCzCArdB;z-9+!|IBzf79atas=g@`@D za0{Xjn)d+iU^75wmsmvDUkf9p1roV1LG}O+ms%sfAJHr%G*}_krHa!4PBR8aiJxOC zo_aJ`+0Gg*fZn=Vtu_tzTWM0=3tMSA_=b7*&0TZjayuvI1MMDAaB^JVg(kVU*vAY_ zSu2&~f{5U@bGbkiKShL!Beu48b7j=f>L!J3>_ivESnOFCn#W&)5H$LWo@9`#Rffqx z3odgS1L|5ke9LxWwor$T@3oJky*>yTEOX<`KR>he9*xg~yB; zsgB##S{+o)ddr%i0bG;eO<#rOvES6oqtRa)>ITcIQ7YthzP-WnU>y# z4#(@lCFIJde(L;9yn2fY)(Jv$1KkMsPRJ`QGD&k`hpy8WDBwispg#<*>ke~L7&8z^ zJl{n~>y^3h8$M_bjug=b<2zsHOpQW~fPFVzyk7J0{h!OsKQGw*ubAC`lh|PTbA|m+x1OE- zUoIi%HNNsM*pa$kRgc7t2m@UMS~+S>#+YQ!8Y_QW8y)h0h1+RJ{Ekm#TGs7ehxH|- zd0{|aRJMA?M*zWG?^)D!3HY#ey1Fo78&xw7#L!-kY_XLt!oX8cXFSZY`CysZg+yC1 z{IzU6o?xs{wN0iQO{O@yXMSd=7){nkVsymG%~v|yt^ICq>*>@ZM)7v7kQ`mnM4d1i zY5X;Phwb@JgEIj?J3|Lfk&rf*Z*vvPm}T^%fm2>^C}h8PzjsrU0~vw&Sn|b}wC5-j zmT_M?rXrS_MI#<`4z{d=14JnP`OQ2dt$;g&Ag z-r1(e?rT*kylBtVnoE+vR$i&la8p_=n30u^^K-3*4_cF<{uT@D*@J-$KSIIt~9ABmljEqxf)*>T+rLx$L z(_LxyG9IoGRjo>9IEr|?jtDT0={+hoYNErk-(WMXRzY=p*lavaG{sXaz4K!Bvue8w z`v-KL8!WsQZbGGv+d|Z8$OITv*Zjg!)V?={pdirTN4SVI-k)M4{$_H`M> zdTabesq6E|Gh*1Xy*Ne~DL`X-_A`+ZY$VKLQ268y&wvd2Y{}l2dFvPX4j}ka51

YEy>n^J}<4HAQ! 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 z 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 literal 0 HcmV?d00001 diff --git a/libupnp/upnp/doc/callback.dxx b/upnp/doc/callback.dxx similarity index 100% rename from libupnp/upnp/doc/callback.dxx rename to upnp/doc/callback.dxx diff --git a/libupnp/upnp/doc/docxx.sty b/upnp/doc/docxx.sty similarity index 100% rename from libupnp/upnp/doc/docxx.sty rename to upnp/doc/docxx.sty diff --git a/libupnp/upnp/doc/intro.dxx b/upnp/doc/intro.dxx similarity index 100% rename from libupnp/upnp/doc/intro.dxx rename to upnp/doc/intro.dxx diff --git a/libupnp/upnp/doc/license.dxx b/upnp/doc/license.dxx similarity index 100% rename from libupnp/upnp/doc/license.dxx rename to upnp/doc/license.dxx diff --git a/libupnp/upnp/doc/upnpsdk.dxx b/upnp/doc/upnpsdk.dxx similarity index 100% rename from libupnp/upnp/doc/upnpsdk.dxx rename to upnp/doc/upnpsdk.dxx diff --git a/libupnp/upnp/inc/upnp.h b/upnp/inc/upnp.h similarity index 95% rename from libupnp/upnp/inc/upnp.h rename to upnp/inc/upnp.h index 0b71940..9e68bb2 100644 --- a/libupnp/upnp/inc/upnp.h +++ b/upnp/inc/upnp.h @@ -37,19 +37,45 @@ //@{ #include +#ifdef __FreeBSD__ +#include +#endif #include "ixml.h" #include "upnpconfig.h" #if UPNP_HAVE_DEBUG # include "upnpdebug.h" #endif -#define UpnpCloseSocket close +#ifdef WIN32 + #ifdef LIBUPNP_EXPORTS + // set up declspec for dll export to make functions visible to library users + #define EXPORT_SPEC __declspec(dllexport) + #else + #define EXPORT_SPEC __declspec(dllimport) + #endif +#else + #define EXPORT_SPEC +#endif + +#ifndef WIN32 + #define UpnpCloseSocket close +#else + #define UpnpCloseSocket closesocket +#endif #define UPNP_SOCKETERROR -1 #define UPNP_INVALID_SOCKET -1 -#define SOCKET int +#ifndef WIN32 + #define SOCKET int +#endif -#include +#ifndef WIN32 + #include +#else + #include + #include +#endif +#define NUM_HANDLE 200 #define LINE_SIZE 180 #define NAME_SIZE 256 #define MNFT_NAME_SIZE 64 @@ -1038,7 +1064,7 @@ extern "C" { * \item {\tt UPNP_E_INTERNAL_ERROR}: An internal error ocurred. * \end{itemize} */ -int UpnpInit( +EXPORT_SPEC int UpnpInit( IN const char *HostIP, /** The host IP address to use, in string format, for example "192.168.0.1", or {\tt NULL} to use the first adapter's @@ -1058,7 +1084,7 @@ int UpnpInit( * it is not initialized. * \end{itemize} */ -int UpnpFinish(); +EXPORT_SPEC int UpnpFinish(); /** If '0' is used as the port number in {\bf UpnpInit}, then this * function can be used to retrieve the actual port allocated to @@ -1068,7 +1094,7 @@ int UpnpFinish(); * @return [unsigned short] The port on which an internal server is * listening for UPnP related requests. */ -unsigned short UpnpGetServerPort(void); +EXPORT_SPEC unsigned short UpnpGetServerPort(void); /** If {\tt NULL} is used as the IP address in {\bf UpnpInit}, then this * function can be used to retrieve the actual interface address @@ -1078,7 +1104,7 @@ unsigned short UpnpGetServerPort(void); * @return [char*] The IP address on which an internal server is listening * for UPnP related requests. */ -char * UpnpGetServerIpAddress(void); +EXPORT_SPEC char * UpnpGetServerIpAddress(void); /** {\bf UpnpRegisterClient} registers a control point application with the * SDK. A control point application cannot make any other API calls @@ -1099,7 +1125,7 @@ char * UpnpGetServerIpAddress(void); * \end{itemize} */ -int UpnpRegisterClient( +EXPORT_SPEC int UpnpRegisterClient( IN Upnp_FunPtr Callback, /** Pointer to a function for receiving asynchronous events. */ IN const void *Cookie, /** Pointer to user data returned with the @@ -1143,7 +1169,7 @@ int UpnpRegisterClient( * register this root device. * \end{itemize} */ -int UpnpRegisterRootDevice( +EXPORT_SPEC int UpnpRegisterRootDevice( IN const char *DescUrl, /** Pointer to a string containing the description URL for this root device instance. */ @@ -1222,7 +1248,7 @@ int UpnpRegisterRootDevice( * description document. * \end{itemize} */ -int UpnpRegisterRootDevice2( +EXPORT_SPEC int UpnpRegisterRootDevice2( IN Upnp_DescType descriptionType,/** The type of the description document. */ IN const char* description, /** Treated as a URL, file name or @@ -1261,7 +1287,7 @@ int UpnpRegisterRootDevice2( * point handle. * \end{itemize} */ -int UpnpUnRegisterClient( +EXPORT_SPEC int UpnpUnRegisterClient( IN UpnpClient_Handle Hnd /** The handle of the control point instance to unregister. */ ); @@ -1284,7 +1310,7 @@ int UpnpUnRegisterClient( * \end{itemize} */ -int UpnpUnRegisterRootDevice( +EXPORT_SPEC int UpnpUnRegisterRootDevice( IN UpnpDevice_Handle /** The handle of the root device instance to unregister. */ ); @@ -1295,7 +1321,7 @@ int UpnpUnRegisterRootDevice( * of this function is global to the SDK (= same as * {\bf UpnpSetMaxContentLength} ). */ -int UpnpSetContentLength( +EXPORT_SPEC int UpnpSetContentLength( IN UpnpClient_Handle Hnd, IN int contentLength ); @@ -1313,7 +1339,7 @@ int UpnpSetContentLength( * \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. * \end{itemize} */ -int UpnpSetMaxContentLength( +EXPORT_SPEC int UpnpSetMaxContentLength( IN size_t contentLength /** The maximum permissible content length for incoming SOAP actions, in bytes. */ ); @@ -1351,7 +1377,7 @@ int UpnpSetMaxContentLength( * \item {\tt UPNP_E_INVALID_PARAM}: {\bf Target} is {\tt NULL}. * \end{itemize} */ -int UpnpSearchAsync( +EXPORT_SPEC int UpnpSearchAsync( IN UpnpClient_Handle Hnd, /** The handle of the client performing the search. */ IN int Mx, /** The time, in seconds, to wait for @@ -1381,7 +1407,7 @@ int UpnpSearchAsync( * send future advertisements. * \end{itemize} */ -int UpnpSendAdvertisement( +EXPORT_SPEC int UpnpSendAdvertisement( IN UpnpDevice_Handle Hnd, /** The device handle for which to send out the announcements. */ IN int Exp /** The expiration age, in seconds, of @@ -1424,7 +1450,7 @@ int UpnpSendAdvertisement( * \end{itemize} */ -int UpnpGetServiceVarStatus( +EXPORT_SPEC int UpnpGetServiceVarStatus( IN UpnpClient_Handle Hnd, /** The handle of the control point. */ IN const char *ActionURL, /** The URL of the service. */ IN const char *VarName, /** The name of the variable to query. */ @@ -1452,7 +1478,7 @@ int UpnpGetServiceVarStatus( * \end{itemize} */ -int UpnpGetServiceVarStatusAsync( +EXPORT_SPEC int UpnpGetServiceVarStatusAsync( IN UpnpClient_Handle Hnd, /** The handle of the control point. */ IN const char *ActionURL, /** The URL of the service. */ IN const char *VarName, /** The name of the variable to query. */ @@ -1487,7 +1513,7 @@ int UpnpGetServiceVarStatusAsync( * \end{itemize} */ -int UpnpSendAction( +EXPORT_SPEC int UpnpSendAction( IN UpnpClient_Handle Hnd, /** The handle of the control point sending the action. */ IN const char *ActionURL, /** The action URL of the service. */ @@ -1526,7 +1552,7 @@ int UpnpSendAction( * \end{itemize} */ -int UpnpSendActionEx( +EXPORT_SPEC int UpnpSendActionEx( IN UpnpClient_Handle Hnd, /** The handle of the control point sending the action. */ IN const char *ActionURL, /** The action URL of the service. */ @@ -1565,7 +1591,7 @@ int UpnpSendActionEx( * \end{itemize} */ -int UpnpSendActionAsync( +EXPORT_SPEC int UpnpSendActionAsync( IN UpnpClient_Handle Hnd, /** The handle of the control point sending the action. */ IN const char *ActionURL, /** The action URL of the service. */ @@ -1603,7 +1629,7 @@ int UpnpSendActionAsync( * \end{itemize} */ -int UpnpSendActionExAsync( +EXPORT_SPEC int UpnpSendActionExAsync( IN UpnpClient_Handle Hnd, /** The handle of the control point sending the action. */ IN const char *ActionURL, /** The action URL of the service. */ @@ -1661,7 +1687,7 @@ int UpnpSendActionExAsync( * \end{itemize} */ -int UpnpAcceptSubscription( +EXPORT_SPEC int UpnpAcceptSubscription( IN UpnpDevice_Handle Hnd, /** The handle of the device. */ IN const char *DevID, /** The device ID of the subdevice of the service generating the event. */ @@ -1701,7 +1727,7 @@ int UpnpAcceptSubscription( * \end{itemize} */ -int UpnpAcceptSubscriptionExt( +EXPORT_SPEC int UpnpAcceptSubscriptionExt( IN UpnpDevice_Handle Hnd, /** The handle of the device. */ IN const char *DevID, /** The device ID of the subdevice of the service generating the event. */ @@ -1738,7 +1764,7 @@ int UpnpAcceptSubscriptionExt( * \end{itemize} */ -int UpnpNotify( +EXPORT_SPEC int UpnpNotify( IN UpnpDevice_Handle, /** The handle to the device sending the event. */ IN const char *DevID, /** The device ID of the subdevice of the service generating the event. */ @@ -1774,7 +1800,7 @@ int UpnpNotify( * \end{itemize} */ -int UpnpNotifyExt( +EXPORT_SPEC int UpnpNotifyExt( IN UpnpDevice_Handle, /** The handle to the device sending the event. */ IN const char *DevID, /** The device ID of the subdevice of the @@ -1817,7 +1843,7 @@ int UpnpNotifyExt( * \end{itemize} */ -int UpnpRenewSubscription( +EXPORT_SPEC int UpnpRenewSubscription( IN UpnpClient_Handle Hnd, /** The handle of the control point that is renewing the subscription. */ INOUT int *TimeOut, /** Pointer to a variable containing the @@ -1875,7 +1901,7 @@ int UpnpRenewSubscription( * \end{itemize} */ -int UpnpRenewSubscriptionAsync( +EXPORT_SPEC int UpnpRenewSubscriptionAsync( IN UpnpClient_Handle Hnd, /** The handle of the control point that is renewing the subscription. */ IN int TimeOut, /** The requested subscription time. The @@ -1903,7 +1929,7 @@ int UpnpRenewSubscriptionAsync( * \end{itemize} */ -int UpnpSetMaxSubscriptions( +EXPORT_SPEC int UpnpSetMaxSubscriptions( IN UpnpDevice_Handle Hnd, /** The handle of the device for which the maximum number of subscriptions is being set. */ @@ -1926,7 +1952,7 @@ int UpnpSetMaxSubscriptions( * \end{itemize} */ -int UpnpSetMaxSubscriptionTimeOut( +EXPORT_SPEC int UpnpSetMaxSubscriptionTimeOut( IN UpnpDevice_Handle Hnd, /** The handle of the device for which the maximum subscription time-out is being set. */ @@ -1963,7 +1989,7 @@ int UpnpSetMaxSubscriptionTimeOut( * \end{itemize} */ -int UpnpSubscribe( +EXPORT_SPEC int UpnpSubscribe( IN UpnpClient_Handle Hnd, /** The handle of the control point. */ IN const char *PublisherUrl, /** The URL of the service to subscribe to. */ INOUT int *TimeOut, /** Pointer to a variable containing @@ -2025,7 +2051,7 @@ int UpnpSubscribe( * \end{itemize} */ -int UpnpSubscribeAsync( +EXPORT_SPEC int UpnpSubscribeAsync( IN UpnpClient_Handle Hnd, /** The handle of the control point that is subscribing. */ IN const char *PublisherUrl, /** The URL of the service to subscribe @@ -2070,7 +2096,7 @@ int UpnpSubscribeAsync( * \end{itemize} */ -int UpnpUnSubscribe( +EXPORT_SPEC int UpnpUnSubscribe( IN UpnpClient_Handle Hnd, /** The handle of the subscribed control point. */ IN Upnp_SID SubsId /** The ID returned when the control point @@ -2125,7 +2151,7 @@ int UpnpUnSubscribe( * Upnp_Event_Subscribe.ErrCode} field as part of the callback). * \end{itemize} */ -int UpnpUnSubscribeAsync( +EXPORT_SPEC int UpnpUnSubscribeAsync( IN UpnpClient_Handle Hnd, /** The handle of the subscribed control point. */ IN Upnp_SID SubsId, /** The ID returned when the @@ -2178,7 +2204,7 @@ int UpnpUnSubscribeAsync( * \end{itemize} */ -int UpnpDownloadUrlItem( +EXPORT_SPEC int UpnpDownloadUrlItem( IN const char *url, /** URL of an item to download. */ OUT char **outBuf, /** Buffer to store the downloaded item. */ OUT char *contentType /** HTTP header value content type if @@ -2215,7 +2241,7 @@ int UpnpDownloadUrlItem( * \end{itemize} */ -int UpnpOpenHttpGet( +EXPORT_SPEC int UpnpOpenHttpGet( IN const char *url, /** The URL of an item to get. */ IN OUT void **handle, /** A pointer to store the handle for this connection. */ @@ -2262,55 +2288,7 @@ int UpnpOpenHttpGet( * \end{itemize} */ -int UpnpOpenHttpGetProxy( - IN const char *url, /** The URL of an item to get. */ - IN const char *proxy_str, /** The URL of the proxy. */ - IN OUT void **handle, /** A pointer to store the handle for - this connection. */ - IN OUT char **contentType, /** A buffer to store the media type of - the item. */ - IN OUT int *contentLength, /** A pointer to store the length of the - item. */ - IN OUT int *httpStatus, /** The status returned on receiving a - response message. */ - IN int timeout /** The time out value sent with the - request during which a response is - expected from the server, failing - which, an error is reported back to - the user. */ - ); - -/** {\bf UpnpOpenHttpGetProxy} gets a file specified in a URL through the - * specified proxy. - * The SDK allocates the memory for {\bf handle} and - * {\bf contentType}, the application is responsible for freeing this memory. - * - * @return [int] An integer representing one of the following: - * \begin{itemize} - * \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. - * \item {\tt UPNP_E_INVALID_PARAM}: Either {\bf url}, {\bf handle}, - * {\bf contentType}, {\bf contentLength} or {\bf httpStatus} - * is not a valid pointer. - * \item {\tt UPNP_E_INVALID_URL}: The {\bf url} is not a valid - * URL. - * \item {\tt UPNP_E_OUTOF_MEMORY}: Insufficient resources exist to - * download this file. - * \item {\tt UPNP_E_NETWORK_ERROR}: A network error occurred. - * \item {\tt UPNP_E_SOCKET_WRITE}: An error or timeout occurred writing - * to a socket. - * \item {\tt UPNP_E_SOCKET_READ}: An error or timeout occurred reading - * from a socket. - * \item {\tt UPNP_E_SOCKET_BIND}: An error occurred binding a socket. - * \item {\tt UPNP_E_SOCKET_CONNECT}: An error occurred connecting a - * socket. - * \item {\tt UPNP_E_OUTOF_SOCKET}: Too many sockets are currently - * allocated. - * \item {\tt UPNP_E_BAD_RESPONSE}: A bad response was received from the - * remote server. - * \end{itemize} - */ - -int UpnpOpenHttpGetProxy( +EXPORT_SPEC int UpnpOpenHttpGetProxy( IN const char *url, /** The URL of an item to get. */ IN const char *proxy_str, /** The URL of the proxy. */ IN OUT void **handle, /** A pointer to store the handle for @@ -2359,7 +2337,7 @@ int UpnpOpenHttpGetProxy( * \end{itemize} */ -int UpnpOpenHttpGetEx( +EXPORT_SPEC int UpnpOpenHttpGetEx( IN const char *url, /** The URL of the item to get. */ IN OUT void **handle, /** A pointer to store the handle for this connection. */ @@ -2400,7 +2378,7 @@ int UpnpOpenHttpGetEx( * value. */ -int UpnpReadHttpGet( +EXPORT_SPEC int UpnpReadHttpGet( IN void *handle, /** The token created by the call to {\bf UpnpOpenHttpGet}. */ IN OUT char *buf, /** The buffer to store the read item. */ @@ -2423,7 +2401,7 @@ int UpnpReadHttpGet( * \end{itemize} * */ -int UpnpHttpGetProgress( +EXPORT_SPEC int UpnpHttpGetProgress( IN void *handle, /** The token created by the call to {\bf UpnpOpenHttpGet}. */ OUT unsigned int *length, /** The number of bytes received. */ @@ -2441,40 +2419,7 @@ int UpnpHttpGetProgress( * \end{itemize} */ -int UpnpCancelHttpGet(IN void *handle); - - -/** {\bf UpnpHttpGetProgress} rettrieve progress information of a http-get - * transfer. - * - * @return [int] An integer representing one of the following: - * \begin{itemize} - * \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. - * \item {\tt UPNP_E_INVALID_PARAM}: Either {\bf handle}, {\bf length} - * or {\bf total} is not a valid pointer. - * \end{itemize} - * - */ -int UpnpHttpGetProgress( - IN void *handle, /** The token created by the call to - {\bf UpnpOpenHttpGet}. */ - OUT unsigned int *length, /** The number of bytes received. */ - OUT unsigned int *total /** The content length. */ - ); - - -/** {\bf UpnpCancelHttpGet} set the cancel flag of the {\bf handle} - * parameter. - * - * @return [int] An integer representing one of the following: - * \begin{itemize} - * \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. - * \item {\tt UPNP_E_INVALID_PARAM}: {\bf handle} is not a valid pointer. - * \end{itemize} - */ - -int UpnpCancelHttpGet(IN void *handle); - +EXPORT_SPEC int UpnpCancelHttpGet(IN void *handle); /** {\bf UpnpCloseHttpGet} closes the connection and frees memory that was * allocated for the {\bf handle} parameter. @@ -2486,7 +2431,7 @@ int UpnpCancelHttpGet(IN void *handle); * \end{itemize} */ -int UpnpCloseHttpGet(IN void *handle); +EXPORT_SPEC int UpnpCloseHttpGet(IN void *handle); /** {\bf UpnpOpenHttpPost} makes an HTTP POST request message, opens a @@ -2515,7 +2460,7 @@ int UpnpCloseHttpGet(IN void *handle); * \end{itemize} */ -int UpnpOpenHttpPost( +EXPORT_SPEC int UpnpOpenHttpPost( IN const char *url, /** The URL in which to send the POST request. */ IN OUT void **handle, /** A pointer in which to store the @@ -2548,7 +2493,7 @@ int UpnpOpenHttpPost( * \end{itemize} */ -int UpnpWriteHttpPost( +EXPORT_SPEC int UpnpWriteHttpPost( IN void *handle, /** The handle of the connection created by the call to {\bf UpnpOpenHttpPost}. */ IN char *buf, /** The buffer to be posted. */ @@ -2575,7 +2520,7 @@ int UpnpWriteHttpPost( * \end{itemize} */ -int UpnpCloseHttpPost( +EXPORT_SPEC int UpnpCloseHttpPost( IN void *handle, /** The handle of the connection to close, created by the call to {\bf UpnpOpenHttpPost}. */ @@ -2616,7 +2561,7 @@ int UpnpCloseHttpPost( * \end{itemize} */ -int UpnpDownloadXmlDoc( +EXPORT_SPEC int UpnpDownloadXmlDoc( IN const char *url, /** URL of the XML document. */ OUT IXML_Document **xmlDoc /** A pointer in which to store the XML document. */ @@ -2654,7 +2599,7 @@ int UpnpDownloadXmlDoc( * \end{itemize} */ -int UpnpSetWebServerRootDir( +EXPORT_SPEC int UpnpSetWebServerRootDir( IN const char* rootDir /** Path of the root directory of the web server. */ ); @@ -2671,7 +2616,7 @@ int UpnpSetWebServerRootDir( * \end{itemize} */ -int UpnpSetVirtualDirCallbacks( +EXPORT_SPEC int UpnpSetVirtualDirCallbacks( IN struct UpnpVirtualDirCallbacks *callbacks /** Pointer to a structure containing points to the virtual interface @@ -2688,7 +2633,7 @@ int UpnpSetVirtualDirCallbacks( * \end{itemize} */ -int UpnpEnableWebserver( +EXPORT_SPEC int UpnpEnableWebserver( IN int enable /** {\tt TRUE} to enable, {\tt FALSE} to disable. */ ); @@ -2702,7 +2647,7 @@ int UpnpEnableWebserver( * \end{itemize} */ -int UpnpIsWebserverEnabled(); +EXPORT_SPEC int UpnpIsWebserverEnabled(); /** {\bf UpnpAddVirtualDir} adds a virtual directory mapping. * @@ -2717,7 +2662,7 @@ int UpnpIsWebserverEnabled(); * \end{itemize} */ -int UpnpAddVirtualDir( +EXPORT_SPEC int UpnpAddVirtualDir( IN const char *dirName /** The name of the new directory mapping to add. */ ); @@ -2732,7 +2677,7 @@ int UpnpAddVirtualDir( * \end{itemize} */ -int UpnpRemoveVirtualDir( +EXPORT_SPEC int UpnpRemoveVirtualDir( IN const char *dirName /** The name of the virtual directory mapping to remove. */ ); @@ -2743,9 +2688,9 @@ int UpnpRemoveVirtualDir( * */ -void UpnpRemoveAllVirtualDirs( ); +EXPORT_SPEC void UpnpRemoveAllVirtualDirs( ); -void UpnpFree( +EXPORT_SPEC void UpnpFree( IN void *item /* The item to free. */ ); diff --git a/libupnp/upnp/inc/upnpconfig.h.in b/upnp/inc/upnpconfig.h.in similarity index 100% rename from libupnp/upnp/inc/upnpconfig.h.in rename to upnp/inc/upnpconfig.h.in diff --git a/libupnp/upnp/inc/upnpdebug.h b/upnp/inc/upnpdebug.h similarity index 100% rename from libupnp/upnp/inc/upnpdebug.h rename to upnp/inc/upnpdebug.h diff --git a/libupnp/upnp/inc/upnptools.h b/upnp/inc/upnptools.h similarity index 96% rename from libupnp/upnp/inc/upnptools.h rename to upnp/inc/upnptools.h index cdf49c8..2d785d7 100644 --- a/libupnp/upnp/inc/upnptools.h +++ b/upnp/inc/upnptools.h @@ -66,7 +66,7 @@ extern "C" { * \end{itemize} */ -int UpnpResolveURL( +EXPORT_SPEC int UpnpResolveURL( IN const char * BaseURL, /** The base URL to combine. */ IN const char * RelURL, /** The relative URL to {\bf BaseURL}. */ OUT char * AbsURL /** A pointer to a buffer to store the @@ -82,7 +82,7 @@ int UpnpResolveURL( * {\tt NULL} if the operation failed. */ -IXML_Document* UpnpMakeAction( +EXPORT_SPEC IXML_Document* UpnpMakeAction( IN const char * ActionName, /** The action name. */ IN const char * ServType, /** The service type. */ IN int NumArg, /** Number of argument pairs to be passed. */ @@ -107,7 +107,7 @@ IXML_Document* UpnpMakeAction( * \end{itemize} */ -int UpnpAddToAction( +EXPORT_SPEC int UpnpAddToAction( IN OUT IXML_Document ** ActionDoc, /** A pointer to store the action document node. */ @@ -126,7 +126,7 @@ int UpnpAddToAction( * {\tt NULL} if the operation failed. */ -IXML_Document* UpnpMakeActionResponse( +EXPORT_SPEC IXML_Document* UpnpMakeActionResponse( IN const char * ActionName, /** The action name. */ IN const char * ServType, /** The service type. */ IN int NumArg, /** The number of argument pairs passed. */ @@ -152,7 +152,7 @@ IXML_Document* UpnpMakeActionResponse( * \end{itemize} */ -int UpnpAddToActionResponse( +EXPORT_SPEC int UpnpAddToActionResponse( IN OUT IXML_Document ** ActionResponse, /** Pointer to a document to store the action document @@ -181,7 +181,7 @@ int UpnpAddToActionResponse( * */ -int UpnpAddToPropertySet( +EXPORT_SPEC int UpnpAddToPropertySet( IN OUT IXML_Document **PropSet, /** A pointer to the document containing the property set document node. */ @@ -199,7 +199,7 @@ int UpnpAddToPropertySet( * */ -IXML_Document* UpnpCreatePropertySet( +EXPORT_SPEC IXML_Document* UpnpCreatePropertySet( IN int NumArg, /** The number of argument pairs passed. */ IN const char* Arg, /** The status variable name and value pair. */ IN ... @@ -213,7 +213,7 @@ IXML_Document* UpnpCreatePropertySet( * associated with the error code. */ -const char * UpnpGetErrorMessage( +EXPORT_SPEC const char * UpnpGetErrorMessage( int errorcode /** The SDK error code to convert. */ ); diff --git a/libupnp/upnp/sample/common/sample_util.c b/upnp/sample/common/sample_util.c similarity index 100% rename from libupnp/upnp/sample/common/sample_util.c rename to upnp/sample/common/sample_util.c diff --git a/libupnp/upnp/sample/common/sample_util.h b/upnp/sample/common/sample_util.h similarity index 100% rename from libupnp/upnp/sample/common/sample_util.h rename to upnp/sample/common/sample_util.h diff --git a/libupnp/upnp/sample/tvctrlpt/linux/upnp_tv_ctrlpt_main.c b/upnp/sample/tvctrlpt/linux/upnp_tv_ctrlpt_main.c similarity index 100% rename from libupnp/upnp/sample/tvctrlpt/linux/upnp_tv_ctrlpt_main.c rename to upnp/sample/tvctrlpt/linux/upnp_tv_ctrlpt_main.c diff --git a/libupnp/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.c b/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.c similarity index 100% rename from libupnp/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.c rename to upnp/sample/tvctrlpt/upnp_tv_ctrlpt.c diff --git a/libupnp/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.h b/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.h similarity index 100% rename from libupnp/upnp/sample/tvctrlpt/upnp_tv_ctrlpt.h rename to upnp/sample/tvctrlpt/upnp_tv_ctrlpt.h diff --git a/libupnp/upnp/sample/tvdevice/linux/upnp_tv_device_main.c b/upnp/sample/tvdevice/linux/upnp_tv_device_main.c similarity index 100% rename from libupnp/upnp/sample/tvdevice/linux/upnp_tv_device_main.c rename to upnp/sample/tvdevice/linux/upnp_tv_device_main.c diff --git a/libupnp/upnp/sample/tvdevice/upnp_tv_device.c b/upnp/sample/tvdevice/upnp_tv_device.c similarity index 100% rename from libupnp/upnp/sample/tvdevice/upnp_tv_device.c rename to upnp/sample/tvdevice/upnp_tv_device.c diff --git a/libupnp/upnp/sample/tvdevice/upnp_tv_device.h b/upnp/sample/tvdevice/upnp_tv_device.h similarity index 100% rename from libupnp/upnp/sample/tvdevice/upnp_tv_device.h rename to upnp/sample/tvdevice/upnp_tv_device.h diff --git a/libupnp/upnp/sample/tvdevice/web/tvcontrolSCPD.xml b/upnp/sample/tvdevice/web/tvcontrolSCPD.xml similarity index 100% rename from libupnp/upnp/sample/tvdevice/web/tvcontrolSCPD.xml rename to upnp/sample/tvdevice/web/tvcontrolSCPD.xml diff --git a/libupnp/upnp/sample/tvdevice/web/tvdevicedesc.xml b/upnp/sample/tvdevice/web/tvdevicedesc.xml similarity index 100% rename from libupnp/upnp/sample/tvdevice/web/tvdevicedesc.xml rename to upnp/sample/tvdevice/web/tvdevicedesc.xml diff --git a/libupnp/upnp/sample/tvdevice/web/tvdevicepres.html b/upnp/sample/tvdevice/web/tvdevicepres.html similarity index 100% rename from libupnp/upnp/sample/tvdevice/web/tvdevicepres.html rename to upnp/sample/tvdevice/web/tvdevicepres.html diff --git a/libupnp/upnp/sample/tvdevice/web/tvpictureSCPD.xml b/upnp/sample/tvdevice/web/tvpictureSCPD.xml similarity index 100% rename from libupnp/upnp/sample/tvdevice/web/tvpictureSCPD.xml rename to upnp/sample/tvdevice/web/tvpictureSCPD.xml diff --git a/libupnp/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c similarity index 98% rename from libupnp/upnp/src/api/upnpapi.c rename to upnp/src/api/upnpapi.c index 40764e6..89c7dff 100644 --- a/libupnp/upnp/src/api/upnpapi.c +++ b/upnp/src/api/upnpapi.c @@ -36,16 +36,23 @@ #include #include #include -#include -#include -#include -#ifndef SPARC_SOLARIS +#ifndef WIN32 + #include + #include + #include + + #ifndef SPARC_SOLARIS // #include - #include -#else - #include - #include - #include + #include + #else + #include + #include + #include + #endif + + #include + #include + #include #endif #include "upnpapi.h" #include "httpreadwrite.h" @@ -53,9 +60,6 @@ #include "soaplib.h" #include "ThreadPool.h" #include "membuffer.h" -#include -#include -#include #include "httpreadwrite.h" @@ -154,12 +158,44 @@ int UpnpInit( IN const char *HostIP, { int retVal = 0; ThreadPoolAttr attr; +#ifdef WIN32 + WORD wVersionRequested; + WSADATA wsaData; + int err; +#endif if( UpnpSdkInit == 1 ) { // already initialized return UPNP_E_INIT; } +#ifdef WIN32 + wVersionRequested = MAKEWORD( 2, 2 ); + + err = WSAStartup( wVersionRequested, &wsaData ); + if ( err != 0 ) { + /* Tell the user that we could not find a usable */ + /* WinSock DLL. */ + return UPNP_E_INIT_FAILED; + } + + /* Confirm that the WinSock DLL supports 2.2.*/ + /* Note that if the DLL supports versions greater */ + /* than 2.2 in addition to 2.2, it will still return */ + /* 2.2 in wVersion since that is the version we */ + /* requested. */ + + if ( LOBYTE( wsaData.wVersion ) != 2 || + HIBYTE( wsaData.wVersion ) != 2 ) { + /* Tell the user that we could not find a usable */ + /* WinSock DLL. */ + WSACleanup( ); + return UPNP_E_INIT_FAILED; + } + + /* The WinSock DLL is acceptable. Proceed. */ +#endif + membuffer_init( &gDocumentRootDir ); srand( time( NULL ) ); // needed by SSDP or other parts @@ -327,6 +363,10 @@ UpnpFinish( ) DBGONLY( ThreadPoolStats stats; ) +#ifdef WIN32 +// WSACleanup( ); +#endif + if( UpnpSdkInit != 1 ) return UPNP_E_FINISH; @@ -2501,6 +2541,9 @@ UpnpSendAction( IN UpnpClient_Handle Hnd, DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, "Inside UpnpSendAction \n" ); ) + if(DevUDN_const !=NULL) + DBGONLY(UpnpPrintf(UPNP_ALL,API,__FILE__,__LINE__,"non NULL DevUDN is ignored\n");); + DevUDN_const = NULL; HandleLock( ); if( GetHandleInfo( Hnd, &SInfo ) != HND_CLIENT ) { @@ -2512,8 +2555,10 @@ UpnpSendAction( IN UpnpClient_Handle Hnd, if( ActionURL == NULL ) { return UPNP_E_INVALID_PARAM; } + if( ServiceType == NULL || Action == NULL || RespNodePtr == NULL || DevUDN_const != NULL ) { + return UPNP_E_INVALID_PARAM; } @@ -3287,6 +3332,11 @@ UpnpDownloadXmlDoc( const char *url, return ret_code; } + /* TODO: MoNKi: Do not check this?? Some routers (Linksys WRT54GS) sends + "CONTENT-TYPE: application/octet-stream". If the data sended is not + an xml file, ixmlParseBufferEx will fail and the function will return + UPNP_E_INVALID_DESC too.*/ + if( strncasecmp( content_type, "text/xml", strlen( "text/xml" ) ) ) { free( xml_buf ); DBGONLY( UpnpPrintf( UPNP_CRITICAL, API, __FILE__, __LINE__, @@ -3294,6 +3344,7 @@ UpnpDownloadXmlDoc( const char *url, ) return UPNP_E_INVALID_DESC; } + // end of TODO Do not check this ret_code = ixmlParseBufferEx( xml_buf, xmlDoc ); free( xml_buf ); @@ -3747,6 +3798,19 @@ DBGONLY( ***************************************************************************/ int getlocalhostname( OUT char *out ) { +#ifdef WIN32 + struct hostent *h=NULL; + struct sockaddr_in LocalAddr; + + gethostname(out,LINE_SIZE); + h=gethostbyname(out); + if (h!=NULL){ + memcpy(&LocalAddr.sin_addr,h->h_addr_list[0],4); + strcpy( out, inet_ntoa(LocalAddr.sin_addr)); + } + return UPNP_E_SUCCESS; +#else + char szBuffer[MAX_INTERFACES * sizeof( struct ifreq )]; struct ifconf ifConf; struct ifreq ifReq; @@ -3823,6 +3887,7 @@ DBGONLY( out ); ) return UPNP_E_SUCCESS; +#endif } #ifdef INCLUDE_DEVICE_APIS @@ -4209,9 +4274,39 @@ UpnpSetContentLength( IN UpnpClient_Handle Hnd, /** Permissible content length */ ) { - return UpnpSetMaxContentLength (contentLength); + int errCode = UPNP_E_SUCCESS; + struct Handle_Info *HInfo = NULL; + + do { + if( UpnpSdkInit != 1 ) { + errCode = UPNP_E_FINISH; + break; + } + + HandleLock( ); + + errCode = GetHandleInfo( Hnd, &HInfo ); + + if( errCode != HND_DEVICE ) { + errCode = UPNP_E_INVALID_HANDLE; + break; + } + + if( contentLength > MAX_SOAP_CONTENT_LENGTH ) { + errCode = UPNP_E_OUTOF_BOUNDS; + break; + } + + g_maxContentLength = contentLength; + + } while( 0 ); + + HandleUnlock( ); + return errCode; + } - + + /************************************************************************** * Function: UpnpSetMaxContentLength * diff --git a/libupnp/upnp/src/api/upnpdebug.c b/upnp/src/api/upnpdebug.c similarity index 100% rename from libupnp/upnp/src/api/upnpdebug.c rename to upnp/src/api/upnpdebug.c diff --git a/libupnp/upnp/src/api/upnptools.c b/upnp/src/api/upnptools.c similarity index 99% rename from libupnp/upnp/src/api/upnptools.c rename to upnp/src/api/upnptools.c index d4ba365..87ce5c3 100644 --- a/libupnp/upnp/src/api/upnptools.c +++ b/upnp/src/api/upnptools.c @@ -345,7 +345,7 @@ UpnpMakeAction( const char *ActionName, const char *Arg, ... ) { - va_list ArgList=NULL; + va_list ArgList; IXML_Document *out = NULL; if( NumArg > 0 ) { @@ -387,7 +387,7 @@ UpnpMakeActionResponse( const char *ActionName, const char *Arg, ... ) { - va_list ArgList=NULL; + va_list ArgList; IXML_Document *out = NULL; if( NumArg > 0 ) { diff --git a/libupnp/upnp/src/gena/gena_callback2.c b/upnp/src/gena/gena_callback2.c similarity index 100% rename from libupnp/upnp/src/gena/gena_callback2.c rename to upnp/src/gena/gena_callback2.c diff --git a/libupnp/upnp/src/gena/gena_ctrlpt.c b/upnp/src/gena/gena_ctrlpt.c similarity index 99% rename from libupnp/upnp/src/gena/gena_ctrlpt.c rename to upnp/src/gena/gena_ctrlpt.c index 0a2bbf8..81ed739 100644 --- a/libupnp/upnp/src/gena/gena_ctrlpt.c +++ b/upnp/src/gena/gena_ctrlpt.c @@ -283,9 +283,11 @@ gena_subscribe( IN char *url, *sid = NULL; // init // request timeout to string - if( ( timeout == NULL ) || - ( ( *timeout > 0 ) - && ( *timeout < CP_MINIMUM_SUBSCRIPTION_TIME ) ) ) { + if ( timeout == NULL ) { + timeout = (int *)malloc(sizeof(int)); + if(timeout == 0) return UPNP_E_OUTOF_MEMORY; + sprintf( timeout_str, "%d", CP_MINIMUM_SUBSCRIPTION_TIME ); + } else if( ( *timeout > 0 )&& ( *timeout < CP_MINIMUM_SUBSCRIPTION_TIME ) ) { sprintf( timeout_str, "%d", CP_MINIMUM_SUBSCRIPTION_TIME ); } else if( *timeout >= 0 ) { sprintf( timeout_str, "%d", *timeout ); diff --git a/libupnp/upnp/src/gena/gena_device.c b/upnp/src/gena/gena_device.c similarity index 100% rename from libupnp/upnp/src/gena/gena_device.c rename to upnp/src/gena/gena_device.c diff --git a/libupnp/upnp/src/genlib/client_table/client_table.c b/upnp/src/genlib/client_table/client_table.c similarity index 97% rename from libupnp/upnp/src/genlib/client_table/client_table.c rename to upnp/src/genlib/client_table/client_table.c index 81741cf..1b6dd45 100644 --- a/libupnp/upnp/src/genlib/client_table/client_table.c +++ b/upnp/src/genlib/client_table/client_table.c @@ -61,9 +61,13 @@ CLIENTONLY( int copy_client_subscription( client_subscription * in, memcpy( out->sid, in->sid, SID_SIZE ); out->sid[SID_SIZE] = 0; out->ActualSID = ( char * )malloc( len ); + if( out->ActualSID == NULL ) + return UPNP_E_OUTOF_MEMORY; out->EventURL = ( char * )malloc( len1 ); - if( ( out->EventURL == NULL ) || ( out->ActualSID == NULL ) ) - return UPNP_E_OUTOF_MEMORY; + if( out->EventURL == NULL ) { + free(out->ActualSID); + return UPNP_E_OUTOF_MEMORY; + } memcpy( out->ActualSID, in->ActualSID, len ); memcpy( out->EventURL, in->EventURL, len1 ); //copies do not get RenewEvent Ids or next diff --git a/libupnp/upnp/src/genlib/miniserver/miniserver.c b/upnp/src/genlib/miniserver/miniserver.c similarity index 99% rename from libupnp/upnp/src/genlib/miniserver/miniserver.c rename to upnp/src/genlib/miniserver/miniserver.c index 150b0be..b6368da 100644 --- a/libupnp/upnp/src/genlib/miniserver/miniserver.c +++ b/upnp/src/genlib/miniserver/miniserver.c @@ -35,18 +35,19 @@ ************************************************************************/ #include "config.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include + #include + #include + #include +#else + #include + + #define socklen_t int + #define EAFNOSUPPORT 97 +#endif #include "unixutil.h" #include "ithread.h" @@ -783,11 +784,13 @@ StartMiniServer( unsigned short listen_port ) if( ( success = get_ssdp_sockets( miniSocket ) ) != UPNP_E_SUCCESS ) { - free( miniSocket ); shutdown( miniSocket->miniServerSock, SD_BOTH ); UpnpCloseSocket( miniSocket->miniServerSock ); shutdown( miniSocket->miniServerStopSock, SD_BOTH ); UpnpCloseSocket( miniSocket->miniServerStopSock ); + + free( miniSocket ); + return success; } diff --git a/libupnp/upnp/src/genlib/net/http/httpparser.c b/upnp/src/genlib/net/http/httpparser.c similarity index 99% rename from libupnp/upnp/src/genlib/net/http/httpparser.c rename to upnp/src/genlib/net/http/httpparser.c index a2131e2..cfb7210 100644 --- a/libupnp/upnp/src/genlib/net/http/httpparser.c +++ b/upnp/src/genlib/net/http/httpparser.c @@ -1684,6 +1684,7 @@ parser_parse_headers( INOUT http_parser_t * parser ) || membuffer_assign( &header->value, hdr_value.buf, hdr_value.length ) != 0 ) { // not enuf mem + free (header); parser->http_error_code = HTTP_INTERNAL_SERVER_ERROR; return PARSE_FAILURE; } @@ -1695,10 +1696,12 @@ parser_parse_headers( INOUT http_parser_t * parser ) ListAddTail( &parser->msg.headers, header ); //NNS: ret = dlist_append( &parser->msg.headers, header ); +/** TODO: remove that? */ if( ret == UPNP_E_OUTOF_MEMORY ) { parser->http_error_code = HTTP_INTERNAL_SERVER_ERROR; return PARSE_FAILURE; } +/** end of remove that? */ } else if( hdr_value.length > 0 ) { // // append value to existing header diff --git a/libupnp/upnp/src/genlib/net/http/httpreadwrite.c b/upnp/src/genlib/net/http/httpreadwrite.c similarity index 98% rename from libupnp/upnp/src/genlib/net/http/httpreadwrite.c rename to upnp/src/genlib/net/http/httpreadwrite.c index 74bb476..5635b96 100644 --- a/libupnp/upnp/src/genlib/net/http/httpreadwrite.c +++ b/upnp/src/genlib/net/http/httpreadwrite.c @@ -40,15 +40,20 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include + #include + #include + #include + #include + #include + #include +#else + #include + #include +#endif #include "unixutil.h" #include "upnp.h" #include "upnpapi.h" @@ -157,6 +162,12 @@ http_Connect( IN uri_type * destination_url, if( connect( connfd, ( struct sockaddr * )&url->hostport.IPv4address, sizeof( struct sockaddr_in ) ) == -1 ) { +#ifdef WIN32 + DBGONLY( + UpnpPrintf(UPNP_CRITICAL, HTTP, __FILE__, __LINE__, + "connect error: %d\n", WSAGetLastError()); + ) +#endif shutdown( connfd, SD_BOTH ); UpnpCloseSocket( connfd ); return UPNP_E_SOCKET_CONNECT; @@ -854,7 +865,7 @@ http_WriteHttpPost( IN void *Handle, if( ( !handle ) || ( !size ) || ( ( ( *size ) > 0 ) && !buf ) || ( ( *size ) < 0 ) ) { - ( *size ) = 0; + if(size) ( *size ) = 0; return UPNP_E_INVALID_PARAM; } if( handle->contentLength == UPNP_USING_CHUNKED ) { @@ -864,6 +875,9 @@ http_WriteHttpPost( IN void *Handle, tempbuf = ( char * )malloc( ( *size ) + CHUNK_HEADER_SIZE + CHUNK_TAIL_SIZE ); + + if ( tempbuf == NULL) return UPNP_E_OUTOF_MEMORY; + sprintf( tempbuf, "%x\r\n", ( *size ) ); //begin chunk tempSize = strlen( tempbuf ); memcpy( tempbuf + tempSize, buf, ( *size ) ); @@ -1300,7 +1314,7 @@ http_ReadHttpGet( IN void *Handle, if( ( !handle ) || ( !size ) || ( ( ( *size ) > 0 ) && !buf ) || ( ( *size ) < 0 ) ) { - ( *size ) = 0; + if(size) ( *size ) = 0; return UPNP_E_INVALID_PARAM; } //first parse what has already been gotten @@ -1934,7 +1948,7 @@ http_MakeMessage( INOUT membuffer * buf, } /* --- PATCH START - Sergey 'Jin' Bostandzhyan */ - if( c == 'X' ) // C string + else if( c == 'X' ) // C string { s = ( char * )va_arg( argp, char * ); @@ -2380,6 +2394,15 @@ http_OpenHttpGetEx( IN const char *url_str, void get_sdk_info( OUT char *info ) { +#ifdef WIN32 + OSVERSIONINFO versioninfo; + versioninfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); + if (GetVersionEx(&versioninfo)!=0) + sprintf( info, "%d.%d.%d %d/%s, UPnP/1.0, Portable SDK for UPnP devices/"PACKAGE_VERSION"\r\n", + versioninfo.dwMajorVersion, versioninfo.dwMinorVersion, versioninfo.dwBuildNumber, versioninfo.dwPlatformId, versioninfo.szCSDVersion ); + else + *info = '\0'; +#else int ret_code; struct utsname sys_info; @@ -2388,7 +2411,8 @@ get_sdk_info( OUT char *info ) *info = '\0'; } - sprintf( info, "%s/%s, UPnP/1.0, Intel SDK for UPnP devices/" + sprintf( info, "%s/%s, UPnP/1.0, Portable SDK for UPnP devices/" PACKAGE_VERSION "\r\n", sys_info.sysname, sys_info.release ); +#endif } diff --git a/libupnp/upnp/src/genlib/net/http/parsetools.c b/upnp/src/genlib/net/http/parsetools.c similarity index 100% rename from libupnp/upnp/src/genlib/net/http/parsetools.c rename to upnp/src/genlib/net/http/parsetools.c diff --git a/libupnp/upnp/src/genlib/net/http/statcodes.c b/upnp/src/genlib/net/http/statcodes.c similarity index 99% rename from libupnp/upnp/src/genlib/net/http/statcodes.c rename to upnp/src/genlib/net/http/statcodes.c index d5da8cb..950c379 100644 --- a/libupnp/upnp/src/genlib/net/http/statcodes.c +++ b/upnp/src/genlib/net/http/statcodes.c @@ -40,6 +40,10 @@ #include "util.h" #include "statcodes.h" +#ifdef WIN32 + #include "unixutil.h" +#endif + #define NUM_1XX_CODES 2 static const char *Http1xxCodes[NUM_1XX_CODES]; static const char *Http1xxStr = "Continue\0" "Switching Protocols\0"; diff --git a/libupnp/upnp/src/genlib/net/http/webserver.c b/upnp/src/genlib/net/http/webserver.c similarity index 99% rename from libupnp/upnp/src/genlib/net/http/webserver.c rename to upnp/src/genlib/net/http/webserver.c index b3a22fe..6c0a1af 100644 --- a/libupnp/upnp/src/genlib/net/http/webserver.c +++ b/upnp/src/genlib/net/http/webserver.c @@ -48,7 +48,9 @@ #include "upnpapi.h" #include "ssdplib.h" -#include +#ifndef WIN32 + #include +#endif #include #include "ithread.h" #include "unixutil.h" @@ -1550,6 +1552,7 @@ http_RecvPostMessage( http_parser_t * parser, && ( status != PARSE_CONTINUE_1 ) && ( status != PARSE_INCOMPLETE ) ) { //error + fclose( Fp ); return HTTP_BAD_REQUEST; } //read more if necessary entity diff --git a/libupnp/upnp/src/genlib/net/sock.c b/upnp/src/genlib/net/sock.c similarity index 97% rename from libupnp/upnp/src/genlib/net/sock.c rename to upnp/src/genlib/net/sock.c index cddfa57..9644587 100644 --- a/libupnp/upnp/src/genlib/net/sock.c +++ b/upnp/src/genlib/net/sock.c @@ -41,12 +41,16 @@ #include "sock.h" #include "upnp.h" -#include -#include -#include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include + #include + #include + #include +#else + #include +#endif #include "unixutil.h" /************************************************************************ diff --git a/libupnp/upnp/src/genlib/net/uri/uri.c b/upnp/src/genlib/net/uri/uri.c similarity index 98% rename from libupnp/upnp/src/genlib/net/uri/uri.c rename to upnp/src/genlib/net/uri/uri.c index dfd3d09..588ef4b 100644 --- a/libupnp/upnp/src/genlib/net/uri/uri.c +++ b/upnp/src/genlib/net/uri/uri.c @@ -33,9 +33,17 @@ * Purpose: This file contains functions for uri, url parsing utility. ************************************************************************/ +#ifdef __FreeBSD__ +#include +#endif #include "config.h" #include "uri.h" +#ifdef WIN32 + #include "inet_pton.h" +#endif + + /************************************************************************ * Function : is_reserved * @@ -535,8 +543,10 @@ parse_hostport( char *in, int begin_port; int hostport_size = 0; int host_size = 0; - struct hostent h_buf; +#ifndef WIN32 char temp_hostbyname_buff[BUFFER_SIZE]; + struct hostent h_buf; +#endif struct hostent *h = NULL; int errcode = 0; char *temp_host_name = NULL; @@ -601,17 +611,27 @@ parse_hostport( char *in, int errCode = 0; //call gethostbyname_r (reentrant form of gethostbyname) - #ifndef SPARC_SOLARIS - errCode = gethostbyname_r( temp_host_name, - &h_buf, - temp_hostbyname_buff, - BUFFER_SIZE, &h, &errcode ); - #else +#if defined(WIN32) + h=gethostbyname(temp_host_name); +#elif defined(SPARC_SOLARIS) errCode = gethostbyname_r( temp_host_name, &h, temp_hostbyname_buff, BUFFER_SIZE, &errcode ); - #endif +#elif defined(__FreeBSD__) + h = lwres_gethostbyname_r( temp_host_name, + &h_buf, + temp_hostbyname_buff, + BUFFER_SIZE, &errcode ); + if ( h == NULL ) { + errCode = 1; + } +#else + errCode = gethostbyname_r( temp_host_name, + &h_buf, + temp_hostbyname_buff, + BUFFER_SIZE, &h, &errcode ); +#endif if( errCode == 0 ) { if( h ) { diff --git a/libupnp/upnp/src/genlib/service_table/service_table.c b/upnp/src/genlib/service_table/service_table.c similarity index 100% rename from libupnp/upnp/src/genlib/service_table/service_table.c rename to upnp/src/genlib/service_table/service_table.c diff --git a/libupnp/upnp/src/genlib/util/membuffer.c b/upnp/src/genlib/util/membuffer.c similarity index 99% rename from libupnp/upnp/src/genlib/util/membuffer.c rename to upnp/src/genlib/util/membuffer.c index 399e1f0..388cfe1 100644 --- a/libupnp/upnp/src/genlib/util/membuffer.c +++ b/upnp/src/genlib/util/membuffer.c @@ -40,6 +40,7 @@ #include #include #include "upnp.h" +#include "unixutil.h" /************************************************************************ * string * diff --git a/libupnp/upnp/src/genlib/util/strintmap.c b/upnp/src/genlib/util/strintmap.c similarity index 100% rename from libupnp/upnp/src/genlib/util/strintmap.c rename to upnp/src/genlib/util/strintmap.c diff --git a/libupnp/upnp/src/genlib/util/upnp_timeout.c b/upnp/src/genlib/util/upnp_timeout.c similarity index 100% rename from libupnp/upnp/src/genlib/util/upnp_timeout.c rename to upnp/src/genlib/util/upnp_timeout.c diff --git a/libupnp/upnp/src/genlib/util/util.c b/upnp/src/genlib/util/util.c similarity index 100% rename from libupnp/upnp/src/genlib/util/util.c rename to upnp/src/genlib/util/util.c diff --git a/libupnp/upnp/src/inc/client_table.h b/upnp/src/inc/client_table.h similarity index 100% rename from libupnp/upnp/src/inc/client_table.h rename to upnp/src/inc/client_table.h diff --git a/libupnp/upnp/src/inc/config.h b/upnp/src/inc/config.h similarity index 100% rename from libupnp/upnp/src/inc/config.h rename to upnp/src/inc/config.h diff --git a/libupnp/upnp/src/inc/gena.h b/upnp/src/inc/gena.h similarity index 99% rename from libupnp/upnp/src/inc/gena.h rename to upnp/src/inc/gena.h index e947db0..d41cd87 100644 --- a/libupnp/upnp/src/inc/gena.h +++ b/upnp/src/inc/gena.h @@ -47,7 +47,9 @@ #ifdef __cplusplus #define EXTERN_C extern "C" #else -#define EXTERN_C +#ifndef EXTERN_C + #define EXTERN_C +#endif #endif #define XML_VERSION "\n" diff --git a/libupnp/upnp/src/inc/gena_ctrlpt.h b/upnp/src/inc/gena_ctrlpt.h similarity index 100% rename from libupnp/upnp/src/inc/gena_ctrlpt.h rename to upnp/src/inc/gena_ctrlpt.h diff --git a/libupnp/upnp/src/inc/gena_device.h b/upnp/src/inc/gena_device.h similarity index 100% rename from libupnp/upnp/src/inc/gena_device.h rename to upnp/src/inc/gena_device.h diff --git a/libupnp/upnp/src/inc/global.h b/upnp/src/inc/global.h similarity index 100% rename from libupnp/upnp/src/inc/global.h rename to upnp/src/inc/global.h diff --git a/libupnp/upnp/src/inc/gmtdate.h b/upnp/src/inc/gmtdate.h similarity index 100% rename from libupnp/upnp/src/inc/gmtdate.h rename to upnp/src/inc/gmtdate.h diff --git a/libupnp/upnp/src/inc/http_client.h b/upnp/src/inc/http_client.h similarity index 100% rename from libupnp/upnp/src/inc/http_client.h rename to upnp/src/inc/http_client.h diff --git a/libupnp/upnp/src/inc/httpparser.h b/upnp/src/inc/httpparser.h similarity index 100% rename from libupnp/upnp/src/inc/httpparser.h rename to upnp/src/inc/httpparser.h diff --git a/libupnp/upnp/src/inc/httpreadwrite.h b/upnp/src/inc/httpreadwrite.h similarity index 100% rename from libupnp/upnp/src/inc/httpreadwrite.h rename to upnp/src/inc/httpreadwrite.h diff --git a/upnp/src/inc/inet_pton.h b/upnp/src/inc/inet_pton.h new file mode 100644 index 0000000..60fa16b --- /dev/null +++ b/upnp/src/inc/inet_pton.h @@ -0,0 +1,103 @@ +#ifdef WIN32 +#ifndef INET_PTON +#define INET_PTON + +#include + +#include +#include +#include +#define socklen_t int +#define EAFNOSUPPORT 97 + +/* + * WARNING: Don't even consider trying to compile this on a system where + * sizeof(int) < 4. sizeof(int) 4 is fine; all the world's not a VAX. + */ + +/* const char * + * inet_ntop4(src, dst, size) + * format an IPv4 address + * return: + * `dst' (as a const) + * notes: + * (1) uses no statics + * (2) takes a u_char* not an in_addr as input + * author: + * Paul Vixie, 1996. + */ +extern const char * inet_ntop4(const u_char src, char *dst, socklen_t size); + +/* const char * + * inet_ntop6(src, dst, size) + * convert IPv6 binary address into presentation (printable) format + * author: + * Paul Vixie, 1996. + */ + +#ifdef INET_IPV6 + +extern const char * inet_ntop6(src, dst, size); + +#endif /* INET_IPV6 */ + +/* int + * inet_pton4(src, dst) + * like inet_aton() but without all the hexadecimal and shorthand. + * return: + * 1 if `src' is a valid dotted quad, else 0. + * notice: + * does not touch `dst' unless it's returning 1. + * author: + * Paul Vixie, 1996. + */ +extern int inet_pton4(src, dst); + +/* int + * inet_pton6(src, dst) + * convert presentation level address to network order binary form. + * return: + * 1 if `src' is a valid [RFC1884 2.2] address, else 0. + * notice: + * (1) does not touch `dst' unless it's returning 1. + * (2) :: in a full address is silently ignored. + * credit: + * inspired by Mark Andrews. + * author: + * Paul Vixie, 1996. + */ + +#ifdef INET_IPV6 + +extern int inet_pton6(src, dst); + +#endif /* INET_IPV6 */ + + + +/* char * + * inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). + * author: + * Paul Vixie, 1996. + */ +extern const char * inet_ntop(af, src, dst, size); + + +/* int + * inet_pton(af, src, dst) + * convert from presentation format (which usually means ASCII printable) + * to network format (which is usually some kind of binary format). + * return: + * 1 if the address was valid for the specified address family + * 0 if the address wasn't valid (`dst' is untouched in this case) + * -1 if some other error occurred (`dst' is untouched in this case, too) + * author: + * Paul Vixie, 1996. + */ +extern int inet_pton(af, src, dst); + +#endif +#endif diff --git a/libupnp/upnp/src/inc/md5.h b/upnp/src/inc/md5.h similarity index 100% rename from libupnp/upnp/src/inc/md5.h rename to upnp/src/inc/md5.h diff --git a/libupnp/upnp/src/inc/membuffer.h b/upnp/src/inc/membuffer.h similarity index 100% rename from libupnp/upnp/src/inc/membuffer.h rename to upnp/src/inc/membuffer.h diff --git a/libupnp/upnp/src/inc/miniserver.h b/upnp/src/inc/miniserver.h similarity index 100% rename from libupnp/upnp/src/inc/miniserver.h rename to upnp/src/inc/miniserver.h diff --git a/libupnp/upnp/src/inc/netall.h b/upnp/src/inc/netall.h similarity index 100% rename from libupnp/upnp/src/inc/netall.h rename to upnp/src/inc/netall.h diff --git a/libupnp/upnp/src/inc/parsetools.h b/upnp/src/inc/parsetools.h similarity index 100% rename from libupnp/upnp/src/inc/parsetools.h rename to upnp/src/inc/parsetools.h diff --git a/libupnp/upnp/src/inc/server.h b/upnp/src/inc/server.h similarity index 100% rename from libupnp/upnp/src/inc/server.h rename to upnp/src/inc/server.h diff --git a/libupnp/upnp/src/inc/service_table.h b/upnp/src/inc/service_table.h similarity index 100% rename from libupnp/upnp/src/inc/service_table.h rename to upnp/src/inc/service_table.h diff --git a/libupnp/upnp/src/inc/soaplib.h b/upnp/src/inc/soaplib.h similarity index 100% rename from libupnp/upnp/src/inc/soaplib.h rename to upnp/src/inc/soaplib.h diff --git a/libupnp/upnp/src/inc/sock.h b/upnp/src/inc/sock.h similarity index 99% rename from libupnp/upnp/src/inc/sock.h rename to upnp/src/inc/sock.h index 7de7034..d7ee596 100644 --- a/libupnp/upnp/src/inc/sock.h +++ b/upnp/src/inc/sock.h @@ -34,7 +34,9 @@ #include "util.h" -#include +#ifndef WIN32 + #include +#endif //Following variable is not defined under winsock.h #ifndef SD_RECEIVE diff --git a/libupnp/upnp/src/inc/ssdplib.h b/upnp/src/inc/ssdplib.h similarity index 98% rename from libupnp/upnp/src/inc/ssdplib.h rename to upnp/src/inc/ssdplib.h index ff57122..9218c3b 100644 --- a/libupnp/upnp/src/inc/ssdplib.h +++ b/upnp/src/inc/ssdplib.h @@ -40,14 +40,18 @@ #include "httpparser.h" #include "httpreadwrite.h" #include "miniserver.h" -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include + #include + #include + #include + #include + #include +#else +#include +#endif //Enumeration to define all different types of ssdp searches typedef enum SsdpSearchType{ diff --git a/libupnp/upnp/src/inc/statcodes.h b/upnp/src/inc/statcodes.h similarity index 100% rename from libupnp/upnp/src/inc/statcodes.h rename to upnp/src/inc/statcodes.h diff --git a/libupnp/upnp/src/inc/statuscodes.h b/upnp/src/inc/statuscodes.h similarity index 100% rename from libupnp/upnp/src/inc/statuscodes.h rename to upnp/src/inc/statuscodes.h diff --git a/libupnp/upnp/src/inc/strintmap.h b/upnp/src/inc/strintmap.h similarity index 100% rename from libupnp/upnp/src/inc/strintmap.h rename to upnp/src/inc/strintmap.h diff --git a/libupnp/upnp/src/inc/sysdep.h b/upnp/src/inc/sysdep.h similarity index 93% rename from libupnp/upnp/src/inc/sysdep.h rename to upnp/src/inc/sysdep.h index 8b1b153..ac495b1 100644 --- a/libupnp/upnp/src/inc/sysdep.h +++ b/upnp/src/inc/sysdep.h @@ -18,7 +18,9 @@ */ #include -#include +#ifndef WIN32 + #include +#endif //#include #include "ithread.h" @@ -45,7 +47,11 @@ typedef unsigned char unsigned8; typedef unsigned char byte; /* Set this to what your compiler uses for 64 bit data type */ -#define unsigned64_t unsigned long long +#ifndef WIN32 + #define unsigned64_t unsigned long long +#else + #define unsigned64_t __int64 +#endif #define I64(C) C##LL typedef unsigned64_t uuid_time_t; diff --git a/libupnp/upnp/src/inc/unixutil.h b/upnp/src/inc/unixutil.h similarity index 94% rename from libupnp/upnp/src/inc/unixutil.h rename to upnp/src/inc/unixutil.h index 0048bdf..08e41bd 100644 --- a/libupnp/upnp/src/inc/unixutil.h +++ b/upnp/src/inc/unixutil.h @@ -35,6 +35,13 @@ #define GENLIB_NET_UNIXUTIL_H #include -#include +#ifndef WIN32 + #include +#else + #define XINLINE + + #define socklen_t int + #define EAFNOSUPPORT 97 +#endif #endif // GENLIB_NET_UNIXUTIL_H diff --git a/libupnp/upnp/src/inc/upnp_timeout.h b/upnp/src/inc/upnp_timeout.h similarity index 100% rename from libupnp/upnp/src/inc/upnp_timeout.h rename to upnp/src/inc/upnp_timeout.h diff --git a/libupnp/upnp/src/inc/upnpapi.h b/upnp/src/inc/upnpapi.h similarity index 98% rename from libupnp/upnp/src/inc/upnpapi.h rename to upnp/src/inc/upnpapi.h index 6bb9b9b..a1ef4e6 100644 --- a/libupnp/upnp/src/inc/upnpapi.h +++ b/upnp/src/inc/upnpapi.h @@ -54,6 +54,9 @@ #define DEFAULT_MAXAGE 1800 +#define DEFAULT_SOAP_CONTENT_LENGTH 16000 +#define MAX_SOAP_CONTENT_LENGTH 32000 + extern size_t g_maxContentLength; // 30-second timeout diff --git a/libupnp/upnp/src/inc/upnpclosesocket.h b/upnp/src/inc/upnpclosesocket.h similarity index 100% rename from libupnp/upnp/src/inc/upnpclosesocket.h rename to upnp/src/inc/upnpclosesocket.h diff --git a/libupnp/upnp/src/inc/uri.h b/upnp/src/inc/uri.h similarity index 98% rename from libupnp/upnp/src/inc/uri.h rename to upnp/src/inc/uri.h index 70f5063..12f58fb 100644 --- a/libupnp/upnp/src/inc/uri.h +++ b/upnp/src/inc/uri.h @@ -44,12 +44,18 @@ extern "C" { #include #include #include -#include -#include -#include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include + #include + #include + #include +#else + #include + + #define strncasecmp strnicmp +#endif #include "upnp.h" //#include @@ -70,7 +76,12 @@ extern "C" { enum hostType { HOSTNAME, IPv4address }; enum pathType { ABS_PATH, REL_PATH, OPAQUE_PART }; +#ifndef WIN32 +// there is a conflict in windows with other symbols enum uriType { ABSOLUTE, RELATIVE }; +#else +enum uriType { absolute, relative }; +#endif /* Buffer used in parsinghttp messages, urls, etc. generally this simply * holds a pointer into a larger array */ diff --git a/libupnp/upnp/src/inc/urlconfig.h b/upnp/src/inc/urlconfig.h similarity index 96% rename from libupnp/upnp/src/inc/urlconfig.h rename to upnp/src/inc/urlconfig.h index 6885210..4683764 100644 --- a/libupnp/upnp/src/inc/urlconfig.h +++ b/upnp/src/inc/urlconfig.h @@ -31,9 +31,13 @@ #ifndef URLCONFIG_H #define URLCONFIG_H -#include -#include -#include +#ifndef WIN32 + #include + #include + #include +#else + #include +#endif // functions available only if the web server is included diff --git a/libupnp/upnp/src/inc/util.h b/upnp/src/inc/util.h similarity index 89% rename from libupnp/upnp/src/inc/util.h rename to upnp/src/inc/util.h index c95f8f1..77948e3 100644 --- a/libupnp/upnp/src/inc/util.h +++ b/upnp/src/inc/util.h @@ -58,10 +58,10 @@ #define EVENT_TERMINATE -3 - -#define max(a, b) (((a)>(b))? (a):(b)) -#define min(a, b) (((a)<(b))? (a):(b)) - +#ifndef WIN32 + #define max(a, b) (((a)>(b))? (a):(b)) + #define min(a, b) (((a)<(b))? (a):(b)) +#endif // boolean type in C @@ -82,7 +82,7 @@ typedef char xboolean; extern "C" { #endif -//void log_error( IN const char *fmt, ... ); +void log_error( IN const char *fmt, ... ); /************************************************************************ * Function : linecopy @@ -146,7 +146,26 @@ void linecopylen( OUT char dest[LINE_SIZE], IN const char* src, IN size_t srclen // C specific #ifndef __cplusplus -#define XINLINE inline +#ifndef WIN32 + #define XINLINE inline +#else + + #ifndef S_ISREG + #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) + #endif + + #ifndef S_ISDIR + #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) + #endif + + #define EADDRINUSE WSAEADDRINUSE + + #define strcasecmp stricmp + #define strncasecmp strnicmp + + #define sleep Sleep + #define usleep(a) Sleep((a)/1000) +#endif #endif // __cplusplus diff --git a/libupnp/upnp/src/inc/utilall.h b/upnp/src/inc/utilall.h similarity index 100% rename from libupnp/upnp/src/inc/utilall.h rename to upnp/src/inc/utilall.h diff --git a/libupnp/upnp/src/inc/uuid.h b/upnp/src/inc/uuid.h similarity index 100% rename from libupnp/upnp/src/inc/uuid.h rename to upnp/src/inc/uuid.h diff --git a/libupnp/upnp/src/inc/webserver.h b/upnp/src/inc/webserver.h similarity index 100% rename from libupnp/upnp/src/inc/webserver.h rename to upnp/src/inc/webserver.h diff --git a/upnp/src/inet_pton.c b/upnp/src/inet_pton.c new file mode 100644 index 0000000..b46c354 --- /dev/null +++ b/upnp/src/inet_pton.c @@ -0,0 +1,400 @@ +#ifdef WIN32 +/* + * Copyright (c) 1996-1999 by Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/*#include +#include +#include + +#include +#include +#include */ +#include + +#include +#include +#include +#define socklen_t int +#define EAFNOSUPPORT 97 +/* + * WARNING: Don't even consider trying to compile this on a system where + * sizeof(int) < 4. sizeof(int) 4 is fine; all the world's not a VAX. + */ + + +/* const char * + * inet_ntop4(src, dst, size) + * format an IPv4 address + * return: + * `dst' (as a const) + * notes: + * (1) uses no statics + * (2) takes a u_char* not an in_addr as input + * author: + * Paul Vixie, 1996. + */ +static const char * +inet_ntop4(const u_char *src, char *dst, socklen_t size) +{ + char tmp[sizeof ("255.255.255.255") + 1] = "\0"; + int octet; + int i; + + i = 0; + for (octet = 0; octet <= 3; octet++) { + + if (src[octet]>255) { + //__set_errno (ENOSPC); + return (NULL); + } + tmp[i++] = '0' + src[octet] / 100; + if (tmp[i - 1] == '0') { + tmp[i - 1] = '0' + (src[octet] / 10 % 10); + if (tmp[i - 1] == '0') i--; + } else { + tmp[i++] = '0' + (src[octet] / 10 % 10); + } + tmp[i++] = '0' + src[octet] % 10; + tmp[i++] = '.'; + } + tmp[i - 1] = '\0'; + + if (strlen(tmp)>size) { + //__set_errno (ENOSPC); + return (NULL); + } + + return strcpy(dst, tmp); +} + + +/* const char * + * inet_ntop6(src, dst, size) + * convert IPv6 binary address into presentation (printable) format + * author: + * Paul Vixie, 1996. + */ + +#ifdef INET_IPV6 + +static const char * +inet_ntop6(src, dst, size) + const u_char *src; + char *dst; + socklen_t size; +{ + /* + * Note that int32_t and int16_t need only be "at least" large enough + * to contain a value of the specified size. On some systems, like + * Crays, there is no such thing as an integer variable with 16 bits. + * Keep this in mind if you think this function should have been coded + * to use pointer overlays. All the world's not a VAX. + */ + char tmp[sizeof ("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")], *tp; + struct { int base, len; } best, cur; + u_int words[8]; + int i; + + /* + * Preprocess: + * Copy the input (bytewise) array into a wordwise array. + * Find the longest run of 0x00's in src[] for :: shorthanding. + */ + memset(words, '\0', sizeof words); + for (i = 0; i < 16; i += 2) + words[i / 2] = (src[i] << 8) | src[i + 1]; + best.base = -1; + cur.base = -1; + for (i = 0; i < 8; i++) { + if (words[i] == 0) { + if (cur.base == -1) + cur.base = i, cur.len = 1; + else + cur.len++; + } else { + if (cur.base != -1) { + if (best.base == -1 || cur.len best.len) + best = cur; + cur.base = -1; + } + } + } + if (cur.base != -1) { + if (best.base == -1 || cur.len best.len) + best = cur; + } + if (best.base != -1 && best.len < 2) + best.base = -1; + + /* + * Format the result. + */ + tp = tmp; + for (i = 0; i < 8; i++) { + /* Are we inside the best run of 0x00's? */ + if (best.base != -1 && i >= best.base && + i < (best.base + best.len)) { + if (i == best.base) + *tp++ = ':'; + continue; + } + /* Are we following an initial run of 0x00s or any real hex? */ + if (i != 0) + *tp++ = ':'; + /* Is this address an encapsulated IPv4? */ + if (i == 6 && best.base == 0 && + (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { + if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) + return (NULL); + tp += strlen(tp); + break; + } + tp += SPRINTF((tp, "%x", words[i])); + } + /* Was it a trailing run of 0x00's? */ + if (best.base != -1 && (best.base + best.len) == 8) + *tp++ = ':'; + *tp++ = '\0'; + + /* + * Check for overflow, copy, and we're done. + */ + if ((socklen_t)(tp - tmp) size) { + //__set_errno (ENOSPC); + return (NULL); + } + return strcpy(dst, tmp); +} +#endif /* INET_IPV6 */ + + +/* int + * inet_pton4(src, dst) + * like inet_aton() but without all the hexadecimal and shorthand. + * return: + * 1 if `src' is a valid dotted quad, else 0. + * notice: + * does not touch `dst' unless it's returning 1. + * author: + * Paul Vixie, 1996. + */ +static int +inet_pton4(src, dst) + const char *src; + u_char *dst; +{ + int saw_digit, octets, ch; + u_char tmp[4], *tp; + + saw_digit = 0; + octets = 0; + *(tp = tmp) = 0; + while ((ch = *src++) != '\0') { + + if (ch >= '0' && ch <= '9') { + u_int new = *tp * 10 + (ch - '0'); + + if (new>255) + return (0); + *tp = new; + if (! saw_digit) { + if (++octets>4) + return (0); + saw_digit = 1; + } + } else if (ch == '.' && saw_digit) { + if (octets == 4) + return (0); + *++tp = 0; + saw_digit = 0; + } else + return (0); + } + if (octets < 4) + return (0); + memcpy(dst, tmp, 4); + return (1); +} + +/* int + * inet_pton6(src, dst) + * convert presentation level address to network order binary form. + * return: + * 1 if `src' is a valid [RFC1884 2.2] address, else 0. + * notice: + * (1) does not touch `dst' unless it's returning 1. + * (2) :: in a full address is silently ignored. + * credit: + * inspired by Mark Andrews. + * author: + * Paul Vixie, 1996. + */ + +#ifdef INET_IPV6 + +static int +inet_pton6(src, dst) + const char *src; + u_char *dst; +{ + static const char xdigits[] = "0123456789abcdef"; + u_char tmp[16], *tp, *endp, *colonp; + const char *curtok; + int ch, saw_xdigit; + u_int val; + + tp = memset(tmp, '\0', 16); + endp = tp + 16; + colonp = NULL; + /* Leading :: requires some special handling. */ + if (*src == ':') + if (*++src != ':') + return (0); + curtok = src; + saw_xdigit = 0; + val = 0; + while ((ch = tolower (*src++)) != '\0') { + const char *pch; + + pch = strchr(xdigits, ch); + if (pch != NULL) { + val <<= 4; + val |= (pch - xdigits); + if (val 0xffff) + return (0); + saw_xdigit = 1; + continue; + } + if (ch == ':') { + curtok = src; + if (!saw_xdigit) { + if (colonp) + return (0); + colonp = tp; + continue; + } else if (*src == '\0') { + return (0); + } + if (tp + 2 endp) + return (0); + *tp++ = (u_char) (val >8) & 0xff; + *tp++ = (u_char) val & 0xff; + saw_xdigit = 0; + val = 0; + continue; + } + if (ch == '.' && ((tp + 4) <= endp) && + inet_pton4(curtok, tp) 0) { + tp += 4; + saw_xdigit = 0; + break; /* '\0' was seen by inet_pton4(). */ + } + return (0); + } + if (saw_xdigit) { + if (tp + 2 endp) + return (0); + *tp++ = (u_char) (val >8) & 0xff; + *tp++ = (u_char) val & 0xff; + } + if (colonp != NULL) { + /* + * Since some memmove()'s erroneously fail to handle + * overlapping regions, we'll do the shift by hand. + */ + const int n = tp - colonp; + int i; + + if (tp == endp) + return (0); + for (i = 1; i <= n; i++) { + endp[- i] = colonp[n - i]; + colonp[n - i] = 0; + } + tp = endp; + } + if (tp != endp) + return (0); + memcpy(dst, tmp, 16); + return (1); +} + +#endif /* INET_IPV6 */ + + + +/* char * + * inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). + * author: + * Paul Vixie, 1996. + */ +extern const char * +inet_ntop(af, src, dst, size) + int af; + const void *src; + char *dst; + socklen_t size; +{ + switch (af) { + case AF_INET: + return (inet_ntop4(src, dst, size)); +#ifdef INET_IPV6 + case AF_INET6: + return (inet_ntop6(src, dst, size)); +#endif + default: + //__set_errno (EAFNOSUPPORT); + return (NULL); + } + /* NOTREACHED */ +} + + +/* int + * inet_pton(af, src, dst) + * convert from presentation format (which usually means ASCII printable) + * to network format (which is usually some kind of binary format). + * return: + * 1 if the address was valid for the specified address family + * 0 if the address wasn't valid (`dst' is untouched in this case) + * -1 if some other error occurred (`dst' is untouched in this case, too) + * author: + * Paul Vixie, 1996. + */ +extern int +inet_pton(af, src, dst) + int af; + const char *src; + void *dst; +{ + switch (af) { + case AF_INET: + return (inet_pton4(src, dst)); +#ifdef INET_IPV6 + case AF_INET6: + return (inet_pton6(src, dst)); +#endif + default: + //__set_errno (EAFNOSUPPORT); + return (-1); + } + /* NOTREACHED */ +} +#endif \ No newline at end of file diff --git a/libupnp/upnp/src/soap/soap_common.c b/upnp/src/soap/soap_common.c similarity index 60% rename from libupnp/upnp/src/soap/soap_common.c rename to upnp/src/soap/soap_common.c index 90e72bb..fc0263e 100644 --- a/libupnp/upnp/src/soap/soap_common.c +++ b/upnp/src/soap/soap_common.c @@ -7,9 +7,6 @@ #include "soaplib.h" -const char *ContentTypeHeader = - "CONTENT-TYPE: text/xml; charset=\"utf-8\"\r\n"; - #endif // EXCLUDE_SOAP diff --git a/libupnp/upnp/src/soap/soap_ctrlpt.c b/upnp/src/soap/soap_ctrlpt.c similarity index 99% rename from libupnp/upnp/src/soap/soap_ctrlpt.c rename to upnp/src/soap/soap_ctrlpt.c index 56464fd..b54c9dc 100644 --- a/libupnp/upnp/src/soap/soap_ctrlpt.c +++ b/upnp/src/soap/soap_ctrlpt.c @@ -602,7 +602,8 @@ SoapSendAction( IN char *action_url, xboolean got_response = FALSE; char *xml_start = - "\n" required?? + "\n" ""; char *xml_end = "\n" "\n"; @@ -735,7 +736,8 @@ SoapSendActionEx( IN char *action_url, xboolean got_response = FALSE; char *xml_start = - "\n" required?? + "\n"; char *xml_body_start = ""; char *xml_end = "\n" "\n"; @@ -880,7 +882,8 @@ SoapGetServiceVarStatus( IN char *action_url, int upnp_error_code; char *xml_start = - "\n" required?? + "\n" "\n" "\n" diff --git a/libupnp/upnp/src/soap/soap_device.c b/upnp/src/soap/soap_device.c similarity index 98% rename from libupnp/upnp/src/soap/soap_device.c rename to upnp/src/soap/soap_device.c index f521774..bcb0176 100644 --- a/libupnp/upnp/src/soap/soap_device.c +++ b/upnp/src/soap/soap_device.c @@ -47,6 +47,10 @@ #include "soaplib.h" #include "ssdplib.h" +#ifdef WIN32 + #define snprintf _snprintf +#endif + // timeout duration in secs for transmission/reception #define SOAP_TIMEOUT UPNP_TIMEOUT @@ -65,6 +69,8 @@ static const char *Soap_Invalid_Action = "Invalid Action"; static const char *Soap_Action_Failed = "Action Failed"; static const char *Soap_Invalid_Var = "Invalid Var"; +const char *ContentTypeHeader = + "CONTENT-TYPE: text/xml; charset=\"utf-8\"\r\n"; /**************************************************************************** * Function : get_request_type @@ -188,8 +194,9 @@ send_error_response( IN SOCKINFO * info, int major, minor; const char *start_body = - "\n" required?? + "\n" "\n" "\n" @@ -266,8 +273,9 @@ send_var_query_response( IN SOCKINFO * info, int major, minor; const char *start_body = - "\n" required?? + "\n" "\n" "" required?? "\n"; diff --git a/libupnp/upnp/src/soap/soaplib.h b/upnp/src/soap/soaplib.h similarity index 100% rename from libupnp/upnp/src/soap/soaplib.h rename to upnp/src/soap/soaplib.h diff --git a/libupnp/upnp/src/ssdp/ssdp_ctrlpt.c b/upnp/src/ssdp/ssdp_ctrlpt.c similarity index 98% rename from libupnp/upnp/src/ssdp/ssdp_ctrlpt.c rename to upnp/src/ssdp/ssdp_ctrlpt.c index 24a50ec..bd1fc9b 100644 --- a/libupnp/upnp/src/ssdp/ssdp_ctrlpt.c +++ b/upnp/src/ssdp/ssdp_ctrlpt.c @@ -45,6 +45,15 @@ #include "unixutil.h" +#ifdef WIN32 + #include + #include + #ifndef imillisleep + #define imillisleep Sleep + #endif +#endif + + /************************************************************************ * Function : send_search_result * @@ -138,8 +147,9 @@ ssdp_handle_ctrlpt_msg( IN http_message_t * hmsg, // MAX-AGE param.Expires = -1; // assume error if( httpmsg_find_hdr( hmsg, HDR_CACHE_CONTROL, &hdr_value ) != NULL ) { - matchstr( hdr_value.buf, hdr_value.length, - "%imax-age = %d%0", ¶m.Expires ); + if( matchstr( hdr_value.buf, hdr_value.length, + "%imax-age = %d%0", ¶m.Expires ) != PARSE_OK ) + return; } // DATE diff --git a/libupnp/upnp/src/ssdp/ssdp_device.c b/upnp/src/ssdp/ssdp_device.c similarity index 99% rename from libupnp/upnp/src/ssdp/ssdp_device.c rename to upnp/src/ssdp/ssdp_device.c index 27c239c..9f74838 100644 --- a/libupnp/upnp/src/ssdp/ssdp_device.c +++ b/upnp/src/ssdp/ssdp_device.c @@ -42,6 +42,11 @@ #include "statcodes.h" #include "unixutil.h" +#ifdef WIN32 + #include + #include +#endif + #define MSGTYPE_SHUTDOWN 0 #define MSGTYPE_ADVERTISEMENT 1 #define MSGTYPE_REPLY 2 diff --git a/libupnp/upnp/src/ssdp/ssdp_server.c b/upnp/src/ssdp/ssdp_server.c similarity index 97% rename from libupnp/upnp/src/ssdp/ssdp_server.c rename to upnp/src/ssdp/ssdp_server.c index 4ad3e86..f9b19cb 100644 --- a/libupnp/upnp/src/ssdp/ssdp_server.c +++ b/upnp/src/ssdp/ssdp_server.c @@ -42,6 +42,12 @@ #include "httpparser.h" #include "httpreadwrite.h" +#ifdef WIN32 + #include + #include + #include "unixutil.h" +#endif + #define MAX_TIME_TOREAD 45 CLIENTONLY( SOCKET gSsdpReqSocket = 0; @@ -455,14 +461,17 @@ CLIENTONLY( SOCKET gSsdpReqSocket = 0; int Make_Socket_NoBlocking( int sock ) { - +#ifdef WIN32 + u_long val=1; + return ioctlsocket(sock, FIONBIO, &val); +#else int val; val = fcntl( sock, F_GETFL, 0 ); if( fcntl( sock, F_SETFL, val | O_NONBLOCK ) == -1 ) { return -1; } - +#endif return 0; } @@ -951,6 +960,22 @@ get_ssdp_sockets( MiniServerSockArray * out ) UpnpCloseSocket( ssdpSock ); return UPNP_E_SOCKET_ERROR; } + + #ifdef __FreeBSD__ + if( setsockopt( ssdpSock, SOL_SOCKET, SO_REUSEPORT, + ( char * )&onOff, sizeof( onOff ) ) != 0 ) { + + DBGONLY( UpnpPrintf( UPNP_CRITICAL, + SSDP, __FILE__, __LINE__, + "Error in set reuse port !!!\n" ); + ) + CLIENTONLY( shutdown( ssdpReqSock, SD_BOTH ) ); + CLIENTONLY( UpnpCloseSocket( ssdpReqSock ) ); + shutdown( ssdpSock, SD_BOTH ); + UpnpCloseSocket( ssdpSock ); + return UPNP_E_SOCKET_ERROR; + } + #endif memset( ( void * )&ssdpAddr, 0, sizeof( struct sockaddr_in ) ); ssdpAddr.sin_family = AF_INET; diff --git a/libupnp/upnp/src/urlconfig/urlconfig.c b/upnp/src/urlconfig/urlconfig.c similarity index 98% rename from libupnp/upnp/src/urlconfig/urlconfig.c rename to upnp/src/urlconfig/urlconfig.c index fb0942e..180bf15 100644 --- a/libupnp/upnp/src/urlconfig/urlconfig.c +++ b/upnp/src/urlconfig/urlconfig.c @@ -31,15 +31,20 @@ #include "config.h" #include -#include -#include -#include +#ifndef WIN32 + #include + #include + #include +#else + #include +#endif #include "upnp.h" #include "util.h" #include "webserver.h" #include "uri.h" #include "membuffer.h" #include "urlconfig.h" +#include "unixutil.h" /************************************************************************ * Function : addrToString diff --git a/libupnp/upnp/src/uuid/md5.c b/upnp/src/uuid/md5.c similarity index 100% rename from libupnp/upnp/src/uuid/md5.c rename to upnp/src/uuid/md5.c diff --git a/libupnp/upnp/src/uuid/sysdep.c b/upnp/src/uuid/sysdep.c similarity index 98% rename from libupnp/upnp/src/uuid/sysdep.c rename to upnp/src/uuid/sysdep.c index e43a173..53a41f0 100644 --- a/libupnp/upnp/src/uuid/sysdep.c +++ b/upnp/src/uuid/sysdep.c @@ -18,7 +18,11 @@ */ #include "config.h" -#include +#ifndef WIN32 + #include +#else + #include +#endif #include #include #include "sysdep.h" diff --git a/libupnp/upnp/src/uuid/uuid.c b/upnp/src/uuid/uuid.c similarity index 99% rename from libupnp/upnp/src/uuid/uuid.c rename to upnp/src/uuid/uuid.c index af5fe78..c73a0da 100644 --- a/libupnp/upnp/src/uuid/uuid.c +++ b/upnp/src/uuid/uuid.c @@ -22,7 +22,11 @@ #include #include #include -#include +#ifndef WIN32 + #include +#else + #include +#endif #include "sysdep.h" #include "uuid.h" diff --git a/upnp/src/win_dll.c b/upnp/src/win_dll.c new file mode 100644 index 0000000..4adacaf --- /dev/null +++ b/upnp/src/win_dll.c @@ -0,0 +1,17 @@ +// upnpLib.cpp : Defines the entry point for the DLL application. +// + +#ifdef WIN32 + +#include +BOOL APIENTRY DllMain( HANDLE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + if (ul_reason_for_call == DLL_PROCESS_ATTACH) { + } + return TRUE; +} + +#endif diff --git a/libupnp/upnp/test/test_init.c b/upnp/test/test_init.c similarity index 100% rename from libupnp/upnp/test/test_init.c rename to upnp/test/test_init.c