diff --git a/build/inc/autoconfig.h b/build/inc/autoconfig.h index 39e85b9..f50408d 100644 --- a/build/inc/autoconfig.h +++ b/build/inc/autoconfig.h @@ -82,11 +82,14 @@ /* Define to 1 if you have the `vprintf' function. */ #define HAVE_VPRINTF 1 +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WS2TCPIP_H */ + /* Define to 1 to prevent compilation of assert() */ -#define NDEBUG 1 +/* #undef NDEBUG */ /* Define to 1 to prevent some debug code */ -#define NO_DEBUG 1 +/* #undef NO_DEBUG */ /* Define to 1 if your C compiler doesn't accept -c and -o together. */ /* #undef NO_MINUS_C_MINUS_O */ @@ -101,13 +104,13 @@ #define PACKAGE_NAME "libupnp" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libupnp 1.4.7" +#define PACKAGE_STRING "libupnp 1.8.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.7" +#define PACKAGE_VERSION "1.8.0" /* Define to necessary symbol if this constant uses a non-standard name on your system. */ @@ -120,7 +123,7 @@ #define UPNP_HAVE_CLIENT 1 /* see upnpconfig.h */ -/* #undef UPNP_HAVE_DEBUG */ +#define UPNP_HAVE_DEBUG 1 /* see upnpconfig.h */ #define UPNP_HAVE_DEVICE 1 @@ -131,20 +134,23 @@ /* see upnpconfig.h */ #define UPNP_HAVE_WEBSERVER 1 +/* Do not use pthread_rwlock_t */ +#define UPNP_USE_RWLOCK 1 + /* see upnpconfig.h */ #define UPNP_VERSION_MAJOR 1 /* see upnpconfig.h */ -#define UPNP_VERSION_MINOR 4 +#define UPNP_VERSION_MINOR 8 /* see upnpconfig.h */ -#define UPNP_VERSION_PATCH 7 +#define UPNP_VERSION_PATCH 0 /* see upnpconfig.h */ -#define UPNP_VERSION_STRING "1.4.7" +#define UPNP_VERSION_STRING "1.8.0" /* Version number of package */ -#define VERSION "1.4.7" +#define VERSION "1.8.0" /* File Offset size */ #define _FILE_OFFSET_BITS 64 @@ -164,5 +170,5 @@ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ -/* Substitute for socklen_t */ +/* Type for storing the length of struct sockaddr */ /* #undef socklen_t */ diff --git a/build/inc/config.h b/build/inc/config.h index e79a6b3..d69e2a8 100644 --- a/build/inc/config.h +++ b/build/inc/config.h @@ -1,33 +1,34 @@ -/////////////////////////////////////////////////////////////////////////// -// -// 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. -// -/////////////////////////////////////////////////////////////////////////// +/************************************************************************** + * + * 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 @@ -36,114 +37,147 @@ #include "autoconfig.h" -/** @name Compile time configuration options +/*! + * \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 + +/*! + * \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. + +/*! + * \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. + +/*! + * \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. + +/*! + * \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 MAX_JOBS_TOTAL + +/*! \name MAX_JOBS_TOTAL + * * The {\tt MAX_JOBS_TOTAL} constant determines the maximum number of jobs * that can be queued. If this limit is reached further jobs will be thrown * to avoid memory exhaustion. The default value 100. * (Added by Axis.) + * + * @{ */ - -//@{ #define MAX_JOBS_TOTAL 100 -//@} +/* @} */ -/** @name DEFAULT_SOAP_CONTENT_LENGTH + +/*! + * \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 + +/*! + * \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 + +/*! + * \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 +/*! + * \name WEB_SERVER_BUF_SIZE + * * This configuration parameter sets the maximum buffer size for the - * webserver. The default value is 1MB. + * webserver. The default value is 1MB. + * + * @{ */ -//@{ #define WEB_SERVER_BUF_SIZE (1024*1024) -//@} +/* @} */ -/** @name AUTO_RENEW_TIME +/*! + * \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 @@ -151,89 +185,104 @@ * 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 +/*! + * \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 + +/*! + * \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 + +/*! + * \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 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 @@ -245,24 +294,28 @@ #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}. +/*! + * \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 +/*! + * \name Other debugging features + * + * The UPnP SDK contains other features to aid in debugging: + * see */ #define DEBUG_ALL 1 @@ -275,38 +328,46 @@ #define DEBUG_HTTP 0 #define DEBUG_API 0 -//@} // Compile time configuration options + +/* + * @} Compile time configuration options + */ /*************************************************************************** - * Do not change, Internal purpose only!!! + * Do not change, Internal purpose only!!! ***************************************************************************/ -//@{ +/*! + * @{ + */ + /* * Set additional defines based on requested configuration */ -// configure --enable-client + +/* configure --enable-client */ #if UPNP_HAVE_CLIENT # define INCLUDE_CLIENT_APIS 1 #endif -// configure --enable-device + +/* configure --enable-device */ #if UPNP_HAVE_DEVICE # define INCLUDE_DEVICE_APIS 1 #endif -// configure --enable-webserver --enable-device + +/* configure --enable-webserver --enable-device */ #if UPNP_HAVE_WEBSERVER # define INTERNAL_WEB_SERVER 1 #endif - -#undef EXCLUDE_WEB_SERVER -#undef EXCLUDE_MINISERVER +#undef EXCLUDE_WEB_SERVER +#undef EXCLUDE_MINISERVER #ifdef INTERNAL_WEB_SERVER # define EXCLUDE_WEB_SERVER 0 # define EXCLUDE_MINISERVER 0 @@ -315,16 +376,18 @@ # define EXCLUDE_MINISERVER 1 #endif + #if EXCLUDE_GENA == 1 && EXCLUDE_SOAP == 1 && EXCLUDE_WEB_SERVER == 1 -# undef EXCLUDE_MINISERVER +# 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 +# undef EXCLUDE_MINISERVER # define EXCLUDE_MINISERVER 0 # if EXCLUDE_WEB_SERVER == 0 && !defined INTERNAL_WEB_SERVER # error "conflicting settings : use configure --enable-webserver" @@ -332,13 +395,17 @@ #endif - #ifdef INCLUDE_CLIENT_APIS # define CLIENTONLY(x) x -#else +#else /* INCLUDE_CLIENT_APIS */ # define CLIENTONLY(x) -#endif +#endif /* INCLUDE_CLIENT_APIS */ -//@} -#endif + +/* + * @} + */ + + +#endif /* INTERNAL_CONFIG_H */ diff --git a/build/inc/upnpconfig.h b/build/inc/upnpconfig.h index 352b101..8f429e6 100644 --- a/build/inc/upnpconfig.h +++ b/build/inc/upnpconfig.h @@ -1,35 +1,35 @@ /* upnp/inc/upnpconfig.h. Generated from upnpconfig.h.in 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. -// -/////////////////////////////////////////////////////////////////////////// +/* -*- 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 @@ -40,16 +40,16 @@ ***************************************************************************/ /** The library version (string) e.g. "1.3.0" */ -#define UPNP_VERSION_STRING "1.4.7" +#define UPNP_VERSION_STRING "1.8.0" /** Major version of the library */ #define UPNP_VERSION_MAJOR 1 /** Minor version of the library */ -#define UPNP_VERSION_MINOR 4 +#define UPNP_VERSION_MINOR 8 /** Patch version of the library */ -#define UPNP_VERSION_PATCH 7 +#define UPNP_VERSION_PATCH 0 /** The library version (numeric) e.g. 10300 means version 1.3.0 */ #define UPNP_VERSION \ @@ -69,7 +69,7 @@ /** Defined to 1 if the library has been compiled with DEBUG enabled * (i.e. configure --enable-debug) : file is available */ -/* #undef UPNP_HAVE_DEBUG */ +#define UPNP_HAVE_DEBUG 1 /** Defined to 1 if the library has been compiled with client API enabled @@ -92,6 +92,5 @@ #define UPNP_HAVE_TOOLS 1 -#endif // UPNP_CONFIG_H - +#endif /* UPNP_CONFIG_H */ diff --git a/upnp/src/inc/config.h b/upnp/src/inc/config.h index e79a6b3..d69e2a8 100644 --- a/upnp/src/inc/config.h +++ b/upnp/src/inc/config.h @@ -1,33 +1,34 @@ -/////////////////////////////////////////////////////////////////////////// -// -// 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. -// -/////////////////////////////////////////////////////////////////////////// +/************************************************************************** + * + * 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 @@ -36,114 +37,147 @@ #include "autoconfig.h" -/** @name Compile time configuration options +/*! + * \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 + +/*! + * \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. + +/*! + * \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. + +/*! + * \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. + +/*! + * \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 MAX_JOBS_TOTAL + +/*! \name MAX_JOBS_TOTAL + * * The {\tt MAX_JOBS_TOTAL} constant determines the maximum number of jobs * that can be queued. If this limit is reached further jobs will be thrown * to avoid memory exhaustion. The default value 100. * (Added by Axis.) + * + * @{ */ - -//@{ #define MAX_JOBS_TOTAL 100 -//@} +/* @} */ -/** @name DEFAULT_SOAP_CONTENT_LENGTH + +/*! + * \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 + +/*! + * \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 + +/*! + * \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 +/*! + * \name WEB_SERVER_BUF_SIZE + * * This configuration parameter sets the maximum buffer size for the - * webserver. The default value is 1MB. + * webserver. The default value is 1MB. + * + * @{ */ -//@{ #define WEB_SERVER_BUF_SIZE (1024*1024) -//@} +/* @} */ -/** @name AUTO_RENEW_TIME +/*! + * \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 @@ -151,89 +185,104 @@ * 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 +/*! + * \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 + +/*! + * \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 + +/*! + * \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 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 @@ -245,24 +294,28 @@ #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}. +/*! + * \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 +/*! + * \name Other debugging features + * + * The UPnP SDK contains other features to aid in debugging: + * see */ #define DEBUG_ALL 1 @@ -275,38 +328,46 @@ #define DEBUG_HTTP 0 #define DEBUG_API 0 -//@} // Compile time configuration options + +/* + * @} Compile time configuration options + */ /*************************************************************************** - * Do not change, Internal purpose only!!! + * Do not change, Internal purpose only!!! ***************************************************************************/ -//@{ +/*! + * @{ + */ + /* * Set additional defines based on requested configuration */ -// configure --enable-client + +/* configure --enable-client */ #if UPNP_HAVE_CLIENT # define INCLUDE_CLIENT_APIS 1 #endif -// configure --enable-device + +/* configure --enable-device */ #if UPNP_HAVE_DEVICE # define INCLUDE_DEVICE_APIS 1 #endif -// configure --enable-webserver --enable-device + +/* configure --enable-webserver --enable-device */ #if UPNP_HAVE_WEBSERVER # define INTERNAL_WEB_SERVER 1 #endif - -#undef EXCLUDE_WEB_SERVER -#undef EXCLUDE_MINISERVER +#undef EXCLUDE_WEB_SERVER +#undef EXCLUDE_MINISERVER #ifdef INTERNAL_WEB_SERVER # define EXCLUDE_WEB_SERVER 0 # define EXCLUDE_MINISERVER 0 @@ -315,16 +376,18 @@ # define EXCLUDE_MINISERVER 1 #endif + #if EXCLUDE_GENA == 1 && EXCLUDE_SOAP == 1 && EXCLUDE_WEB_SERVER == 1 -# undef EXCLUDE_MINISERVER +# 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 +# undef EXCLUDE_MINISERVER # define EXCLUDE_MINISERVER 0 # if EXCLUDE_WEB_SERVER == 0 && !defined INTERNAL_WEB_SERVER # error "conflicting settings : use configure --enable-webserver" @@ -332,13 +395,17 @@ #endif - #ifdef INCLUDE_CLIENT_APIS # define CLIENTONLY(x) x -#else +#else /* INCLUDE_CLIENT_APIS */ # define CLIENTONLY(x) -#endif +#endif /* INCLUDE_CLIENT_APIS */ -//@} -#endif + +/* + * @} + */ + + +#endif /* INTERNAL_CONFIG_H */