Compare commits
	
		
			4 Commits
		
	
	
		
			release-1.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | caf4d24410 | ||
|   | 85a8da77f2 | ||
|   | 25620c1967 | ||
|   | 8bc61b1a5c | 
							
								
								
									
										74
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,3 +1,77 @@ | |||||||
|  | ************************************************************************* | ||||||
|  | Version 1.4.4 | ||||||
|  | ************************************************************************* | ||||||
|  |  | ||||||
|  | 2007-04-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net> | ||||||
|  | 	* SF Tracker [ 1695399 ] Typo in util.h | ||||||
|  | 	Submitted By: Luke Kim - nereusuj | ||||||
|  | 	Unix sleep is in seconds but WIN32 Sleep is in milliseconds. | ||||||
|  |  | ||||||
|  | 2007-04-17 Marcelo Jimenez <mroberto(at)users.sourceforge.net> | ||||||
|  | 	* SF Tracker [ 1652827 ] UpnpRegisterRootDevice returned -104 | ||||||
|  | 	Submitted By: Michael Andersen - miwer | ||||||
|  | 	 | ||||||
|  | 	Issue was found to be related to sizeof (size_t) != sizeof (int) | ||||||
|  | 	on AMD64 systems. Emil Ljungdahl's AMD64 patch has been applied along | ||||||
|  | 	with some other fixes. Original user report follows: | ||||||
|  |  | ||||||
|  | 	When I run upnpd I get the above mentioned error (UPNP_E_OUTOF_MEMORY). | ||||||
|  | 	I've tried with 1.4.1 and 1.4.2-RC3, it's the same. I don't understand why, | ||||||
|  | 	because I have plenty of RAM, and I even tried closing some applications, | ||||||
|  | 	but it didn't help. | ||||||
|  |  | ||||||
|  | 	$ upnpd eth1 br0 | ||||||
|  |  | ||||||
|  | 	The following is logged in the /var/log/messages: | ||||||
|  | 	Feb 6 01:33:47 server upnpd[6933]: Error registering the root device with | ||||||
|  | 	descDocUrl: http://192.168.0.1:49152/gatedesc.xml | ||||||
|  | 	Feb 6 01:33:47 server upnpd[6933]: UpnpRegisterRootDevice returned -104 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	I tried enabling debugging and it looks like it cannot allocate memory | ||||||
|  | 	through the membuffer_append function. It's wierd because it's only a few | ||||||
|  | 	bytes. | ||||||
|  |  | ||||||
|  | 	Please note, that I enabled some extra debugging lines that were commented, | ||||||
|  | 	in order to get more information. See attached files. | ||||||
|  |  | ||||||
|  | ************************************************************************* | ||||||
|  | Version 1.4.3 | ||||||
|  | ************************************************************************* | ||||||
|  |  | ||||||
|  | 2007-03-13 Marcelo Jimenez <mroberto(at)users.sourceforge.net> | ||||||
|  | 	* SF Tracker [ 1663004 ] Compile on Cygwin | ||||||
|  | 	Submitted By: Jon Foster - jongfoster | ||||||
|  | 	This patch gives basic support for building under Cygwin - it compiles, | ||||||
|  | 	links, and a simple UPnP device application can initialise. I'm not sure | ||||||
|  | 	if it actually works yet, but this is definitely a step in the right | ||||||
|  | 	direction. | ||||||
|  | 	 | ||||||
|  | 	Patch is against the 1.4.1 release. Changes are: | ||||||
|  | 	 | ||||||
|  | 	* threadutil/inc/ithread.h: Fix the ithread mutex support to use | ||||||
|  | 	documented, portable APIs (if present) rather than the Non-Portable (_NP) | ||||||
|  | 	ones it uses now. This is required because Cygwin implements only the | ||||||
|  | 	portable API. | ||||||
|  | 	 | ||||||
|  | 	* threadutil/src/ThreadPool.c: Fake SetPolicyType() to do nothing on Cygwin | ||||||
|  | 	because otherwise it fails. Should probably investigate why it fails and | ||||||
|  | 	add a proper implementation later. | ||||||
|  | 	 | ||||||
|  | 	* upnp/src/api/upnpapi.c: On Cygwin, zero out the GlobalHndMutex structure | ||||||
|  | 	before initialising it. Without this, the initialisation fails. This | ||||||
|  | 	appears to be a bug in Cygwin. | ||||||
|  | 	 | ||||||
|  | 	* upnp/src/genlib/net/uri/uri.c: Use gethostbyname() on Cygwin. | ||||||
|  | 	 | ||||||
|  | 2007-03-05 Oxy <oxygenic(at)users.sourceforge.net> | ||||||
|  | 	* Code adapted and typedefs added to compile cleanly under Windows | ||||||
|  | 	with Borland C++ Builder and MS Visual C++ | ||||||
|  |  | ||||||
|  | 2007-03-03 Marcelo Jimenez <mroberto(at)users.sourceforge.net> | ||||||
|  | 	 | ||||||
|  | 	* Fixed nasty segmentation fault bug on membuffer.c. | ||||||
|  | 	 | ||||||
| ************************************************************************* | ************************************************************************* | ||||||
| Version 1.4.2 | Version 1.4.2 | ||||||
| ************************************************************************* | ************************************************************************* | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								THANKS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								THANKS
									
									
									
									
									
								
							| @@ -9,6 +9,7 @@ exempt of errors. | |||||||
| - Arno Willig | - Arno Willig | ||||||
| - Chaos | - Chaos | ||||||
| - David Maass | - David Maass | ||||||
|  | - Emil Ljungdahl | ||||||
| - Erik Johansson | - Erik Johansson | ||||||
| - Eric Tanguy | - Eric Tanguy | ||||||
| - Erwan Velu | - Erwan Velu | ||||||
| @@ -18,6 +19,7 @@ exempt of errors. | |||||||
| - Jonathan (no_dice) | - Jonathan (no_dice) | ||||||
| - Leuk_He | - Leuk_He | ||||||
| - Loigu | - Loigu | ||||||
|  | - Luke Kim | ||||||
| - Marcelo Roberto Jimenez | - Marcelo Roberto Jimenez | ||||||
| - Markus Strobl | - Markus Strobl | ||||||
| - Nektarios K. Papadopoulos | - Nektarios K. Papadopoulos | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ | |||||||
|     <DEBUGLIBPATH value="$(BCB)\lib\debug"/> |     <DEBUGLIBPATH value="$(BCB)\lib\debug"/> | ||||||
|     <RELEASELIBPATH value="$(BCB)\lib\release"/> |     <RELEASELIBPATH value="$(BCB)\lib\release"/> | ||||||
|     <LINKER value="tlink32"/> |     <LINKER value="tlink32"/> | ||||||
|     <USERDEFINES value="WIN32;LIBUPNP_EXPORTS"/> |     <USERDEFINES value="WIN32;LIBUPNP_EXPORTS;UPNP_USE_BCBPP"/> | ||||||
|     <SYSDEFINES value="NO_STRICT;_NO_VCL"/> |     <SYSDEFINES value="NO_STRICT;_NO_VCL"/> | ||||||
|     <MAINSOURCE value="libupnp.bpf"/> |     <MAINSOURCE value="libupnp.bpf"/> | ||||||
|     <INCLUDEPATH value="..\upnp\src\genlib\util;..\upnp\src;..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\threadutil\src;..\ixml\src;$(BCB)\include;$(BCB)\include\vcl;..\ixml\inc;..\threadutil\inc;..\upnp\inc;inc;..\ixml\src\inc;..\upnp\src\inc;..\..\pthreads-w32-1-10-0-release"/> |     <INCLUDEPATH value="..\upnp\src\genlib\util;..\upnp\src;..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\threadutil\src;..\ixml\src;$(BCB)\include;$(BCB)\include\vcl;..\ixml\inc;..\threadutil\inc;..\upnp\inc;inc;..\ixml\src\inc;..\upnp\src\inc;..\..\pthreads-w32-1-10-0-release"/> | ||||||
| @@ -100,19 +100,21 @@ Item1=..\upnp\src\genlib\util;..\upnp\src;..\upnp\src\uuid;..\upnp\src\urlconfig | |||||||
| Item2=..\upnp\src\genlib\util;..\upnp\src;..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\threadutil\src;..\ixml\src;$(BCB)\include;$(BCB)\include\vcl;..\ixml\inc;..\threadutil\inc;..\upnp\inc;inc;..\ixml\src\inc;..\upnp\src\inc | Item2=..\upnp\src\genlib\util;..\upnp\src;..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\threadutil\src;..\ixml\src;$(BCB)\include;$(BCB)\include\vcl;..\ixml\inc;..\threadutil\inc;..\upnp\inc;inc;..\ixml\src\inc;..\upnp\src\inc | ||||||
|  |  | ||||||
| [HistoryLists\hlLibraryPath] | [HistoryLists\hlLibraryPath] | ||||||
| Count=2 | Count=3 | ||||||
| Item0=..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\util;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\net;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\upnp\src;..\threadutil\src;..\ixml\src;$(BCB)\lib\obj;$(BCB)\lib;D:\DEVELOP\pthreads-w32-1-10-0-release | Item0=..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\util;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\net;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\upnp\src;..\threadutil\src;..\ixml\src;$(BCB)\lib\obj;$(BCB)\lib;..\..\pthreads-w32-1-10-0-release | ||||||
| Item1=..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\util;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\net;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\upnp\src;..\threadutil\src;..\ixml\src;$(BCB)\lib\obj;$(BCB)\lib | Item1=..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\util;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\net;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\upnp\src;..\threadutil\src;..\ixml\src;$(BCB)\lib\obj;$(BCB)\lib;D:\DEVELOP\pthreads-w32-1-10-0-release | ||||||
|  | Item2=..\upnp\src\uuid;..\upnp\src\urlconfig;..\upnp\src\ssdp;..\upnp\src\soap;..\upnp\src\genlib\util;..\upnp\src\genlib\service_table;..\upnp\src\genlib\net\uri;..\upnp\src\genlib\net\http;..\upnp\src\genlib\net;..\upnp\src\genlib\miniserver;..\upnp\src\genlib\client_table;..\upnp\src\gena;..\upnp\src\api;..\upnp\src;..\threadutil\src;..\ixml\src;$(BCB)\lib\obj;$(BCB)\lib | ||||||
|  |  | ||||||
| [HistoryLists\hlDebugSourcePath] | [HistoryLists\hlDebugSourcePath] | ||||||
| Count=1 | Count=1 | ||||||
| Item0=$(BCB)\source\vcl | Item0=$(BCB)\source\vcl | ||||||
|  |  | ||||||
| [HistoryLists\hlConditionals] | [HistoryLists\hlConditionals] | ||||||
| Count=3 | Count=4 | ||||||
| Item0=WIN32;LIBUPNP_EXPORTS | Item0=WIN32;LIBUPNP_EXPORTS;UPNP_USE_BCBPP | ||||||
| Item1=WIN32;EXPORT_SPEC | Item1=WIN32;LIBUPNP_EXPORTS | ||||||
| Item2=WIN32 | Item2=WIN32;EXPORT_SPEC | ||||||
|  | Item3=WIN32 | ||||||
|  |  | ||||||
| [Debugging] | [Debugging] | ||||||
| DebugSourceDirs=$(BCB)\source\vcl | DebugSourceDirs=$(BCB)\source\vcl | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ RSC=rc.exe | |||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /YX /FD /c | # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /YX /FD /c | ||||||
| # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\pthreads\include" /I "..\ixml\src\inc" /I "..\ixml\inc" /I "..\threadutil\inc" /I "..\upnp\inc" /I "..\upnp\src\inc" /I ".\inc" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /D "PTW32_STATIC_LIB" /D "UPNP_STATIC_LIB" /FR /YX /FD /c | # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\pthreads\include" /I "..\ixml\src\inc" /I "..\ixml\inc" /I "..\threadutil\inc" /I "..\upnp\inc" /I "..\upnp\src\inc" /I ".\inc" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /D "PTW32_STATIC_LIB" /D "UPNP_STATIC_LIB" /D "UPNP_USE_MSVCPP" /FR /YX /FD /c | ||||||
| # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||||||
| # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||||||
| # ADD BASE RSC /l 0x407 /d "NDEBUG" | # ADD BASE RSC /l 0x407 /d "NDEBUG" | ||||||
| @@ -53,7 +53,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 | ||||||
| # ADD LINK32 kernel32.lib user32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib pthreads\lib\pthreadvc2.lib ws2_32.lib /nologo /dll /machine:I386 | # ADD LINK32 kernel32.lib user32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\pthreads\lib\pthreadvc2.lib ws2_32.lib /nologo /dll /machine:I386 | ||||||
| # SUBTRACT LINK32 /pdb:none | # SUBTRACT LINK32 /pdb:none | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "libupnp - Win32 Debug" | !ELSEIF  "$(CFG)" == "libupnp - Win32 Debug" | ||||||
| @@ -70,7 +70,7 @@ LINK32=link.exe | |||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /YX /FD /GZ /c | ||||||
| # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\pthreads\include" /I "..\ixml\src\inc" /I "..\ixml\inc" /I "..\threadutil\inc" /I "..\upnp\inc" /I "..\upnp\src\inc" /I "..\build\inc" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /FR /YX /FD /GZ /c | # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\pthreads\include" /I "..\ixml\src\inc" /I "..\ixml\inc" /I "..\threadutil\inc" /I "..\upnp\inc" /I "..\upnp\src\inc" /I "..\build\inc" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBUPNP_EXPORTS" /D "UPNP_USE_MSVCPP" /FR /YX /FD /GZ /c | ||||||
| # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 | # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 | ||||||
| # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 | # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 | ||||||
| # ADD BASE RSC /l 0x407 /d "_DEBUG" | # ADD BASE RSC /l 0x407 /d "_DEBUG" | ||||||
| @@ -80,7 +80,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 kernel32.lib user32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\pthreads\lib\pthreadvc2.lib ws2_32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept | # ADD LINK32 kernel32.lib user32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\pthreads\lib\pthreadvc2.lib ws2_32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ENDIF  | !ENDIF  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|  |  | ||||||
| AC_PREREQ(2.60) | AC_PREREQ(2.60) | ||||||
|  |  | ||||||
| AC_INIT([libupnp], [1.4.2], [mroberto@users.sourceforge.net]) | AC_INIT([libupnp], [1.4.4], [mroberto@users.sourceforge.net]) | ||||||
| # *Independently* of the above libupnp package version, the libtool version | # *Independently* of the above libupnp package version, the libtool version | ||||||
| # of the 3 libraries need to be updated whenever there is a change released : | # of the 3 libraries need to be updated whenever there is a change released : | ||||||
| # "current:revision:age" (this is NOT the same as the package version), where: | # "current:revision:age" (this is NOT the same as the package version), where: | ||||||
|   | |||||||
| @@ -47,9 +47,19 @@ extern "C" { | |||||||
|  #include <unistd.h> |  #include <unistd.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifdef PTHREAD_MUTEX_RECURSIVE | ||||||
|  | /* This system has SuS2-compliant mutex attributes. | ||||||
|  |  * E.g. on Cygwin, where we don't have the old nonportable (NP) symbols | ||||||
|  |  */ | ||||||
|  | #define ITHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_NORMAL | ||||||
|  | #define ITHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE | ||||||
|  | #define ITHREAD_MUTEX_ERRORCHECK_NP PTHREAD_MUTEX_ERRORCHECK | ||||||
|  | #else | ||||||
| #define ITHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_FAST_NP | #define ITHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_FAST_NP | ||||||
| #define ITHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE_NP | #define ITHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE_NP | ||||||
| #define ITHREAD_MUTEX_ERRORCHECK_NP PTHREAD_MUTEX_ERRORCHECK_NP | #define ITHREAD_MUTEX_ERRORCHECK_NP PTHREAD_MUTEX_ERRORCHECK_NP | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #define ITHREAD_CANCELED PTHREAD_CANCELED | #define ITHREAD_CANCELED PTHREAD_CANCELED | ||||||
|  |  | ||||||
|    |    | ||||||
| @@ -181,8 +191,11 @@ extern "C" { | |||||||
|  *      Returns EINVAL if the kind is not supported. |  *      Returns EINVAL if the kind is not supported. | ||||||
|  *      See man page for pthread_mutexattr_setkind_np |  *      See man page for pthread_mutexattr_setkind_np | ||||||
|  *****************************************************************************/ |  *****************************************************************************/ | ||||||
|  | #ifdef PTHREAD_MUTEX_RECURSIVE | ||||||
|  | #define ithread_mutexattr_setkind_np pthread_mutexattr_settype | ||||||
|  | #else | ||||||
| #define ithread_mutexattr_setkind_np pthread_mutexattr_setkind_np | #define ithread_mutexattr_setkind_np pthread_mutexattr_setkind_np | ||||||
|  | #endif | ||||||
|  |  | ||||||
| /**************************************************************************** | /**************************************************************************** | ||||||
|  * Function: ithread_mutexattr_getkind_np |  * Function: ithread_mutexattr_getkind_np | ||||||
| @@ -203,7 +216,11 @@ extern "C" { | |||||||
|  *      Always returns 0. |  *      Always returns 0. | ||||||
|  *      See man page for pthread_mutexattr_getkind_np |  *      See man page for pthread_mutexattr_getkind_np | ||||||
|  *****************************************************************************/ |  *****************************************************************************/ | ||||||
|  | #ifdef PTHREAD_MUTEX_RECURSIVE | ||||||
|  | #define ithread_mutexattr_getkind_np pthread_mutexattr_gettype | ||||||
|  | #else | ||||||
| #define ithread_mutexattr_getkind_np pthread_mutexattr_getkind_np | #define ithread_mutexattr_getkind_np pthread_mutexattr_getkind_np | ||||||
|  | #endif | ||||||
|  |  | ||||||
|    |    | ||||||
| /**************************************************************************** | /**************************************************************************** | ||||||
| @@ -542,8 +559,10 @@ extern "C" { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef PTHREAD_MUTEX_RECURSIVE | ||||||
| //NK: Added for satisfying the gcc compiler   | //NK: Added for satisfying the gcc compiler   | ||||||
| EXPORT_SPEC int pthread_mutexattr_setkind_np(pthread_mutexattr_t *attr, int kind); | EXPORT_SPEC int pthread_mutexattr_setkind_np(pthread_mutexattr_t *attr, int kind); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
|   | |||||||
| @@ -90,6 +90,10 @@ FreeThreadPoolJob( ThreadPool * tp, | |||||||
| static int | static int | ||||||
| SetPolicyType( PolicyType in ) | SetPolicyType( PolicyType in ) | ||||||
| { | { | ||||||
|  |     #ifdef __CYGWIN__ | ||||||
|  |      /* TODO not currently working... */ | ||||||
|  |      return 0; | ||||||
|  |     #else | ||||||
|     #ifdef WIN32 |     #ifdef WIN32 | ||||||
|      return sched_setscheduler( 0, in); |      return sched_setscheduler( 0, in); | ||||||
|     #else |     #else | ||||||
| @@ -99,6 +103,7 @@ SetPolicyType( PolicyType in ) | |||||||
|      current.sched_priority = DEFAULT_SCHED_PARAM; |      current.sched_priority = DEFAULT_SCHED_PARAM; | ||||||
|      return sched_setscheduler( 0, in, ¤t ); |      return sched_setscheduler( 0, in, ¤t ); | ||||||
|     #endif |     #endif | ||||||
|  |     #endif | ||||||
| } | } | ||||||
|  |  | ||||||
| /**************************************************************************** | /**************************************************************************** | ||||||
|   | |||||||
| @@ -65,6 +65,12 @@ | |||||||
|  #else |  #else | ||||||
|   #define EXPORT_SPEC |   #define EXPORT_SPEC | ||||||
|  #endif |  #endif | ||||||
|  |  #ifdef UPNP_USE_MSVCPP // define some things the M$ VC++ doesn't knows | ||||||
|  |   typedef __int64 int64_t; | ||||||
|  |  #endif | ||||||
|  |  #ifdef UPNP_USE_BCBPP // define some things Borland Builder doesn't knows | ||||||
|  |   typedef __int64 int64_t; | ||||||
|  |  #endif | ||||||
| #else | #else | ||||||
|  #define EXPORT_SPEC |  #define EXPORT_SPEC | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -207,6 +207,11 @@ int UpnpInit( IN const char *HostIP, | |||||||
|              ( UPNP_INFO, API, __FILE__, __LINE__, "Inside UpnpInit \n" ); |              ( UPNP_INFO, API, __FILE__, __LINE__, "Inside UpnpInit \n" ); | ||||||
|          ) |          ) | ||||||
|         //initialize mutex |         //initialize mutex | ||||||
|  | #ifdef __CYGWIN__ | ||||||
|  |         /* On Cygwin, pthread_mutex_init() fails without this memset. */ | ||||||
|  |         /* TODO: Fix Cygwin so we don't need this memset(). */ | ||||||
|  |         memset(&GlobalHndMutex, 0, sizeof(GlobalHndMutex)); | ||||||
|  | #endif | ||||||
|         if( ithread_mutex_init( &GlobalHndMutex, NULL ) != 0 ) { |         if( ithread_mutex_init( &GlobalHndMutex, NULL ) != 0 ) { | ||||||
|         return UPNP_E_INIT_FAILED; |         return UPNP_E_INIT_FAILED; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -39,9 +39,16 @@ | |||||||
|  |  | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <stdarg.h> | #include <stdarg.h> | ||||||
|  | #ifndef UPNP_USE_BCBPP | ||||||
|  | #ifndef UPNP_USE_MSVCPP | ||||||
|  |  #include <inttypes.h> | ||||||
|  |  #include <stdint.h> | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifndef WIN32 | #ifndef WIN32 | ||||||
|  #include <arpa/inet.h> |  #include <arpa/inet.h> | ||||||
|  |  #include <fcntl.h> | ||||||
|  #include <netinet/in.h> |  #include <netinet/in.h> | ||||||
|  #include <sys/types.h> |  #include <sys/types.h> | ||||||
|  #include <sys/socket.h> |  #include <sys/socket.h> | ||||||
| @@ -49,7 +56,6 @@ | |||||||
|  #include <sys/wait.h> |  #include <sys/wait.h> | ||||||
|  #include <unistd.h> |  #include <unistd.h> | ||||||
|  #include <sys/utsname.h> |  #include <sys/utsname.h> | ||||||
|  #include <fcntl.h> |  | ||||||
| #else | #else | ||||||
|  #include <winsock2.h> |  #include <winsock2.h> | ||||||
|  #include <malloc.h> |  #include <malloc.h> | ||||||
| @@ -708,7 +714,7 @@ http_Download( IN const char *url_str, | |||||||
|  |  | ||||||
|         // save mem for body only |         // save mem for body only | ||||||
|         *document = realloc( msg_start, *doc_length + 1 );  //LEAK_FIX_MK |         *document = realloc( msg_start, *doc_length + 1 );  //LEAK_FIX_MK | ||||||
|         //*document = Realloc( msg_start,msg_length, *doc_length + 1 );//LEAK_FIX_MK |         // *document = Realloc( msg_start,msg_length, *doc_length + 1 );//LEAK_FIX_MK | ||||||
|  |  | ||||||
|         // shrink can't fail |         // shrink can't fail | ||||||
|         assert( ( int )msg_length > *doc_length ); |         assert( ( int )msg_length > *doc_length ); | ||||||
| @@ -796,27 +802,30 @@ MakePostMessage( const char *url_str, | |||||||
|                          "HOSTNAME : %s Length : %d\n", hoststr, hostlen ); |                          "HOSTNAME : %s Length : %d\n", hoststr, hostlen ); | ||||||
|          ) |          ) | ||||||
|  |  | ||||||
|         if( contentLength >= 0 ) { |     if( contentLength >= 0 ) { | ||||||
|         ret_code = http_MakeMessage( |         ret_code = http_MakeMessage( | ||||||
|             request, 1, 1, |             request, 1, 1, | ||||||
|             "QsbcDCUTNc", |             "Q" "s" "bcDCU" "T" "Nc", | ||||||
|             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, |             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, | ||||||
|             "HOST: ", hoststr, hostlen, |             "HOST: ", | ||||||
|  | 	    hoststr, hostlen, | ||||||
|             contentType, |             contentType, | ||||||
|             (off_t)contentLength ); |             (off_t)contentLength ); | ||||||
|     } else if( contentLength == UPNP_USING_CHUNKED ) { |     } else if( contentLength == UPNP_USING_CHUNKED ) { | ||||||
|         ret_code = http_MakeMessage( |         ret_code = http_MakeMessage( | ||||||
|             request, 1, 1, |             request, 1, 1, | ||||||
|             "QsbcDCUTKc", |             "Q" "s" "bcDCU" "TKc", | ||||||
|             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, |             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, | ||||||
|             "HOST: ", hoststr, hostlen, |             "HOST: ", | ||||||
|  | 	    hoststr, hostlen, | ||||||
|             contentType ); |             contentType ); | ||||||
|     } else if( contentLength == UPNP_UNTIL_CLOSE ) { |     } else if( contentLength == UPNP_UNTIL_CLOSE ) { | ||||||
|         ret_code = http_MakeMessage( |         ret_code = http_MakeMessage( | ||||||
|             request, 1, 1, |             request, 1, 1, | ||||||
|             "QsbcDCUTc", |             "Q" "s" "bcDCU" "Tc", | ||||||
|             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, |             HTTPMETHOD_POST, url->pathquery.buff, url->pathquery.size, | ||||||
|             "HOST: ", hoststr, hostlen, |             "HOST: ", | ||||||
|  | 	    hoststr, hostlen, | ||||||
|             contentType ); |             contentType ); | ||||||
|     } else { |     } else { | ||||||
|         ret_code = UPNP_E_INVALID_PARAM; |         ret_code = UPNP_E_INVALID_PARAM; | ||||||
| @@ -1810,7 +1819,7 @@ http_MakeMessage( INOUT membuffer * buf, | |||||||
| { | { | ||||||
|     char c; |     char c; | ||||||
|     char *s = NULL; |     char *s = NULL; | ||||||
|     int num; |     size_t num; | ||||||
|     off_t bignum; |     off_t bignum; | ||||||
|     size_t length; |     size_t length; | ||||||
|     time_t *loc_time; |     time_t *loc_time; | ||||||
| @@ -1893,7 +1902,7 @@ http_MakeMessage( INOUT membuffer * buf, | |||||||
|         { |         { | ||||||
|             num = ( int )va_arg( argp, int ); |             num = ( int )va_arg( argp, int ); | ||||||
|  |  | ||||||
|             sprintf( tempbuf, "%d", num ); |             sprintf( tempbuf, "%zu", num ); | ||||||
|             if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { |             if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { | ||||||
|                 goto error_handler; |                 goto error_handler; | ||||||
|             } |             } | ||||||
| @@ -1903,7 +1912,7 @@ http_MakeMessage( INOUT membuffer * buf, | |||||||
|         { |         { | ||||||
|             bignum = ( off_t )va_arg( argp, off_t ); |             bignum = ( off_t )va_arg( argp, off_t ); | ||||||
|  |  | ||||||
|             sprintf( tempbuf, "%lld", (long long)bignum ); |             sprintf( tempbuf, "%"PRId64, (int64_t)bignum ); | ||||||
|             if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { |             if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { | ||||||
|                 goto error_handler; |                 goto error_handler; | ||||||
|             } |             } | ||||||
| @@ -2041,7 +2050,7 @@ http_MakeMessage( INOUT membuffer * buf, | |||||||
|             method = ( http_method_t ) va_arg( argp, http_method_t ); |             method = ( http_method_t ) va_arg( argp, http_method_t ); | ||||||
|             method_str = method_to_str( method ); |             method_str = method_to_str( method ); | ||||||
|             url_str = ( const char * )va_arg( argp, const char * ); |             url_str = ( const char * )va_arg( argp, const char * ); | ||||||
|             num = ( int )va_arg( argp, int );   // length of url_str |             num = ( size_t )va_arg( argp, size_t );   // length of url_str | ||||||
|  |  | ||||||
|             if (http_MakeMessage( |             if (http_MakeMessage( | ||||||
|                 buf, http_major_version, http_minor_version, |                 buf, http_major_version, http_minor_version, | ||||||
|   | |||||||
| @@ -37,6 +37,12 @@ | |||||||
| #include "config.h" | #include "config.h" | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
|  | #ifndef UPNP_USE_BCBPP | ||||||
|  | #ifndef UPNP_USE_MSVCPP | ||||||
|  |     #include <inttypes.h> | ||||||
|  |     #include <stdint.h> | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
| #include "util.h" | #include "util.h" | ||||||
| #include "strintmap.h" | #include "strintmap.h" | ||||||
| #include "membuffer.h" | #include "membuffer.h" | ||||||
| @@ -49,7 +55,7 @@ | |||||||
| #include "ssdplib.h" | #include "ssdplib.h" | ||||||
|  |  | ||||||
| #ifndef WIN32 | #ifndef WIN32 | ||||||
|  #include <unistd.h> |     #include <unistd.h> | ||||||
| #endif | #endif | ||||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||||
| #include "ithread.h" | #include "ithread.h" | ||||||
| @@ -985,35 +991,35 @@ CreateHTTPRangeResponseHeader( char *ByteRangeSpecifier, | |||||||
|             Instr->RangeOffset = FirstByte; |             Instr->RangeOffset = FirstByte; | ||||||
|             Instr->ReadSendSize = LastByte - FirstByte + 1; |             Instr->ReadSendSize = LastByte - FirstByte + 1; | ||||||
|             sprintf( Instr->RangeHeader, |             sprintf( Instr->RangeHeader, | ||||||
|                 "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", |                 "CONTENT-RANGE: bytes %"PRId64"-%"PRId64"/%"PRId64"\r\n", | ||||||
|                 (long long)FirstByte, |                 (int64_t)FirstByte, | ||||||
|                 (long long)LastByte, |                 (int64_t)LastByte, | ||||||
|                 (long long)FileLength );   //Data between two range. |                 (int64_t)FileLength );   //Data between two range. | ||||||
|         } else if( FirstByte >= 0 && LastByte == -1 |         } else if( FirstByte >= 0 && LastByte == -1 | ||||||
|                    && FirstByte < FileLength ) { |                    && FirstByte < FileLength ) { | ||||||
|             Instr->RangeOffset = FirstByte; |             Instr->RangeOffset = FirstByte; | ||||||
|             Instr->ReadSendSize = FileLength - FirstByte; |             Instr->ReadSendSize = FileLength - FirstByte; | ||||||
|             sprintf( Instr->RangeHeader, |             sprintf( Instr->RangeHeader, | ||||||
|                      "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", |                      "CONTENT-RANGE: bytes %"PRId64"-%"PRId64"/%"PRId64"\r\n", | ||||||
|                      (long long)FirstByte, |                      (int64_t)FirstByte, | ||||||
|                      (long long)(FileLength - 1), |                      (int64_t)(FileLength - 1), | ||||||
|                      (long long)FileLength ); |                      (int64_t)FileLength ); | ||||||
|         } else if( FirstByte == -1 && LastByte > 0 ) { |         } else if( FirstByte == -1 && LastByte > 0 ) { | ||||||
|             if( LastByte >= FileLength ) { |             if( LastByte >= FileLength ) { | ||||||
|                 Instr->RangeOffset = 0; |                 Instr->RangeOffset = 0; | ||||||
|                 Instr->ReadSendSize = FileLength; |                 Instr->ReadSendSize = FileLength; | ||||||
|                 sprintf( Instr->RangeHeader, |                 sprintf( Instr->RangeHeader, | ||||||
|                          "CONTENT-RANGE: bytes 0-%lld/%lld\r\n", |                          "CONTENT-RANGE: bytes 0-%"PRId64"/%"PRId64"\r\n", | ||||||
|                          (long long)(FileLength - 1), |                          (int64_t)(FileLength - 1), | ||||||
|                          (long long)FileLength ); |                          (int64_t)FileLength ); | ||||||
|             } else { |             } else { | ||||||
|                 Instr->RangeOffset = FileLength - LastByte; |                 Instr->RangeOffset = FileLength - LastByte; | ||||||
|                 Instr->ReadSendSize = LastByte; |                 Instr->ReadSendSize = LastByte; | ||||||
|                 sprintf( Instr->RangeHeader, |                 sprintf( Instr->RangeHeader, | ||||||
|                          "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", |                          "CONTENT-RANGE: bytes %"PRId64"-%"PRId64"/%"PRId64"\r\n", | ||||||
|                          (long long)(FileLength - LastByte + 1), |                          (int64_t)(FileLength - LastByte + 1), | ||||||
|                          (long long)FileLength, |                          (int64_t)FileLength, | ||||||
|                          (long long)FileLength ); |                          (int64_t)FileLength ); | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|             free( RangeInput ); |             free( RangeInput ); | ||||||
| @@ -1201,7 +1207,7 @@ process_request( IN http_message_t * req, | |||||||
|     int resp_major, |     int resp_major, | ||||||
|       resp_minor; |       resp_minor; | ||||||
|     xboolean alias_grabbed; |     xboolean alias_grabbed; | ||||||
|     int dummy; |     size_t dummy; | ||||||
|     struct UpnpVirtualDirCallbacks *pVirtualDirCallback; |     struct UpnpVirtualDirCallbacks *pVirtualDirCallback; | ||||||
|  |  | ||||||
|     print_http_headers( req ); |     print_http_headers( req ); | ||||||
|   | |||||||
| @@ -157,7 +157,7 @@ is_escaped( const char *in ) | |||||||
| int | int | ||||||
| replace_escaped( char *in, | replace_escaped( char *in, | ||||||
|                  int index, |                  int index, | ||||||
|                  int *max ) |                  size_t *max ) | ||||||
| { | { | ||||||
|     int tempInt = 0; |     int tempInt = 0; | ||||||
|     char tempChar = 0; |     char tempChar = 0; | ||||||
| @@ -611,7 +611,9 @@ parse_hostport( const char *in, | |||||||
|         int errCode = 0; |         int errCode = 0; | ||||||
|  |  | ||||||
|         //call gethostbyname_r (reentrant form of gethostbyname) |         //call gethostbyname_r (reentrant form of gethostbyname) | ||||||
| #if defined(WIN32) |         // TODO: Use autoconf to discover this rather than the | ||||||
|  |         // platform-specific stuff below | ||||||
|  | #if defined(WIN32) || defined(__CYGWIN__) | ||||||
|         h=gethostbyname(temp_host_name); |         h=gethostbyname(temp_host_name); | ||||||
| #elif defined(SPARC_SOLARIS) | #elif defined(SPARC_SOLARIS) | ||||||
|         errCode = gethostbyname_r( temp_host_name, |         errCode = gethostbyname_r( temp_host_name, | ||||||
| @@ -731,7 +733,7 @@ parse_scheme( const char *in, | |||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int | int | ||||||
| remove_escaped_chars( INOUT char *in, | remove_escaped_chars( INOUT char *in, | ||||||
|                       INOUT int *size ) |                       INOUT size_t *size ) | ||||||
| { | { | ||||||
|     int i = 0; |     int i = 0; | ||||||
|  |  | ||||||
| @@ -1067,7 +1069,7 @@ parse_uri( const char *in, | |||||||
| int | int | ||||||
| parse_uri_and_unescape( char *in, | parse_uri_and_unescape( char *in, | ||||||
|                         int max, |                         int max, | ||||||
|                         uri_type * out ) |                         uri_type *out ) | ||||||
| { | { | ||||||
|     int ret; |     int ret; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -331,9 +331,10 @@ membuffer_assign( INOUT membuffer * m, | |||||||
|         return return_code; |         return return_code; | ||||||
|     } |     } | ||||||
|     // copy |     // copy | ||||||
|     memcpy( m->buf, buf, buf_len ); |     if( buf_len ) { | ||||||
|     m->buf[buf_len] = 0;        // null-terminate |         memcpy( m->buf, buf, buf_len ); | ||||||
|  |         m->buf[buf_len] = 0;        // null-terminate | ||||||
|  |     } | ||||||
|     m->length = buf_len; |     m->length = buf_len; | ||||||
|  |  | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -96,7 +96,7 @@ typedef struct SOCKET_BUFFER{ | |||||||
| //holds a pointer into a larger array | //holds a pointer into a larger array | ||||||
| typedef struct TOKEN { | typedef struct TOKEN { | ||||||
|    char * buff; |    char * buff; | ||||||
|   int size; |   size_t size; | ||||||
| } token; | } token; | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -51,8 +51,7 @@ typedef struct // memptr | |||||||
| // note: Total length/capacity should not exceed MAX_INT | // note: Total length/capacity should not exceed MAX_INT | ||||||
| typedef struct // membuffer | typedef struct // membuffer | ||||||
| { | { | ||||||
| 	char	*buf;			// mem buffer; must not write  | 	char	*buf;			// mem buffer; must not write beyond buf[length-1] (read/write) | ||||||
| 							//   beyond buf[length-1] (read/write) |  | ||||||
| 	size_t	length;			// length of buffer (read-only) | 	size_t	length;			// length of buffer (read-only) | ||||||
| 	size_t	capacity;		// total allocated memory (read-only) | 	size_t	capacity;		// total allocated memory (read-only) | ||||||
| 	size_t	size_inc;		// used to increase size; MUST be > 0; (read/write) | 	size_t	size_inc;		// used to increase size; MUST be > 0; (read/write) | ||||||
| @@ -148,8 +147,7 @@ int memptr_cmp_nocase( IN memptr* m, IN const char* s ); | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int membuffer_set_size( INOUT membuffer* m,  | int membuffer_set_size( INOUT membuffer* m, IN size_t new_length ); | ||||||
| 			IN size_t new_length ); |  | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| *	Function :	membuffer_init | *	Function :	membuffer_init | ||||||
| @@ -200,8 +198,7 @@ void membuffer_destroy( INOUT membuffer* m ); | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int membuffer_assign( INOUT membuffer* m, IN const void* buf,  | int membuffer_assign( INOUT membuffer* m, IN const void* buf, IN size_t buf_len ); | ||||||
| 					 IN size_t buf_len ); |  | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| *	Function :	membuffer_assign_str | *	Function :	membuffer_assign_str | ||||||
| @@ -237,8 +234,7 @@ int membuffer_assign_str( INOUT membuffer* m, IN const char* c_str ); | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int membuffer_append( INOUT membuffer* m, IN const void* buf, | int membuffer_append( INOUT membuffer* m, IN const void* buf, IN size_t buf_len ); | ||||||
| 					 IN size_t buf_len ); |  | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| *	Function :	membuffer_append_str | *	Function :	membuffer_append_str | ||||||
| @@ -276,8 +272,7 @@ int membuffer_append_str( INOUT membuffer* m, IN const char* c_str ); | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int membuffer_insert( INOUT membuffer* m, IN const void* buf,  | int membuffer_insert( INOUT membuffer* m, IN const void* buf, IN size_t buf_len, int index ); | ||||||
| 					 IN size_t buf_len, int index ); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| @@ -298,8 +293,7 @@ int membuffer_insert( INOUT membuffer* m, IN const void* buf, | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| void membuffer_delete( INOUT membuffer* m, IN int index,  | void membuffer_delete( INOUT membuffer* m, IN int index, IN size_t num_bytes ); | ||||||
| 					 IN size_t num_bytes ); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| @@ -336,8 +330,7 @@ char* membuffer_detach( INOUT membuffer* m ); | |||||||
| *	Note : 'new_buf' must be allocted using malloc or realloc so | *	Note : 'new_buf' must be allocted using malloc or realloc so | ||||||
| *		that it can be freed using free() | *		that it can be freed using free() | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| void membuffer_attach( INOUT membuffer* m, IN char* new_buf, | void membuffer_attach( INOUT membuffer* m, IN char* new_buf, IN size_t buf_len ); | ||||||
| 					   IN size_t buf_len ); |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| }		// extern "C" | }		// extern "C" | ||||||
| #endif	// __cplusplus | #endif	// __cplusplus | ||||||
|   | |||||||
| @@ -87,7 +87,7 @@ enum uriType  { absolute, relative }; | |||||||
| *	holds a pointer into a larger array									*/ | *	holds a pointer into a larger array									*/ | ||||||
| typedef struct TOKEN { | typedef struct TOKEN { | ||||||
|   const char *buff; |   const char *buff; | ||||||
|   int size; |   size_t size; | ||||||
| } token; | } token; | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -124,7 +124,7 @@ typedef struct URL_LIST { | |||||||
| *	Parameters : | *	Parameters : | ||||||
| *		char * in ;	string of characters | *		char * in ;	string of characters | ||||||
| *		int index ;	index at which to start checking the characters | *		int index ;	index at which to start checking the characters | ||||||
| *		int *max ;	 | *		size_t *max ;	 | ||||||
| * | * | ||||||
| *	Description : Replaces an escaped sequence with its unescaped version  | *	Description : Replaces an escaped sequence with its unescaped version  | ||||||
| *		as in http://www.ietf.org/rfc/rfc2396.txt  (RFC explaining URIs) | *		as in http://www.ietf.org/rfc/rfc2396.txt  (RFC explaining URIs) | ||||||
| @@ -137,7 +137,7 @@ typedef struct URL_LIST { | |||||||
| *		string are shifted over, and NULL characters are placed at the  | *		string are shifted over, and NULL characters are placed at the  | ||||||
| *		end of the string. | *		end of the string. | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int replace_escaped(char * in, int index, int *max); | int replace_escaped(char * in, int index, size_t *max); | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| *	Function :	copy_URL_list | *	Function :	copy_URL_list | ||||||
| @@ -303,7 +303,7 @@ int parse_hostport(const char *in, int max, hostport_type *out ); | |||||||
| * | * | ||||||
| *	Parameters : | *	Parameters : | ||||||
| *		INOUT char *in ;	string of characters to be modified | *		INOUT char *in ;	string of characters to be modified | ||||||
| *		INOUT int *size ;	size limit for the number of characters | *		INOUT size_t *size ;	size limit for the number of characters | ||||||
| * | * | ||||||
| *	Description : removes http escaped characters such as: "%20" and  | *	Description : removes http escaped characters such as: "%20" and  | ||||||
| *		replaces them with their character representation. i.e.  | *		replaces them with their character representation. i.e.  | ||||||
| @@ -315,7 +315,7 @@ int parse_hostport(const char *in, int max, hostport_type *out ); | |||||||
| * | * | ||||||
| *	Note : | *	Note : | ||||||
| ************************************************************************/ | ************************************************************************/ | ||||||
| int remove_escaped_chars(char *in,int *size); | int remove_escaped_chars(char *in, size_t *size); | ||||||
|  |  | ||||||
| /************************************************************************ | /************************************************************************ | ||||||
| *	Function :	remove_dots | *	Function :	remove_dots | ||||||
|   | |||||||
| @@ -163,7 +163,7 @@ void linecopylen( OUT char dest[LINE_SIZE], IN const char* src, IN size_t srclen | |||||||
|  #define strcasecmp stricmp |  #define strcasecmp stricmp | ||||||
|  #define strncasecmp strnicmp |  #define strncasecmp strnicmp | ||||||
|  |  | ||||||
|  #define sleep Sleep |  #define sleep(a) Sleep((a)*1000) | ||||||
|  #define usleep(a) Sleep((a)/1000) |  #define usleep(a) Sleep((a)/1000) | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user