From 8bc61b1a5cebc8192e9538a6376944daadf07587 Mon Sep 17 00:00:00 2001 From: Marcelo Roberto Jimenez Date: Tue, 6 Mar 2007 10:22:07 +0000 Subject: [PATCH] Merging trunk to release-1.4.x. git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/branches/branch-1.4.x@145 119443c7-1b9e-41f8-b6fc-b9c35fce742c --- ChangeLog | 13 ++++++++++++ build/libupnp.bpr | 18 +++++++++------- build/libupnp.dsp | 8 +++---- upnp/inc/upnp.h | 6 ++++++ upnp/src/genlib/net/http/httpreadwrite.c | 9 ++++++-- upnp/src/genlib/net/http/webserver.c | 27 ++++++++++++++---------- upnp/src/genlib/util/membuffer.c | 7 +++--- 7 files changed, 60 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3dee486..8a7e7c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ + +************************************************************************* +Version 1.4.3 +************************************************************************* + +2007-03-05 Oxy + * Code adapted and typedefs added to compile cleanly under Windows + with Borland C++ Builder and MS Visual C++ + +2007-03-03 Marcelo Jimenez + + * Fixed nasty segmentation fault bug on membuffer.c. + ************************************************************************* Version 1.4.2 ************************************************************************* diff --git a/build/libupnp.bpr b/build/libupnp.bpr index de33f0c..13705fd 100644 --- a/build/libupnp.bpr +++ b/build/libupnp.bpr @@ -45,7 +45,7 @@ - + @@ -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 [HistoryLists\hlLibraryPath] -Count=2 -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 -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 +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;..\..\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;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] Count=1 Item0=$(BCB)\source\vcl [HistoryLists\hlConditionals] -Count=3 -Item0=WIN32;LIBUPNP_EXPORTS -Item1=WIN32;EXPORT_SPEC -Item2=WIN32 +Count=4 +Item0=WIN32;LIBUPNP_EXPORTS;UPNP_USE_BCBPP +Item1=WIN32;LIBUPNP_EXPORTS +Item2=WIN32;EXPORT_SPEC +Item3=WIN32 [Debugging] DebugSourceDirs=$(BCB)\source\vcl diff --git a/build/libupnp.dsp b/build/libupnp.dsp index 2890869..b73fb47 100644 --- a/build/libupnp.dsp +++ b/build/libupnp.dsp @@ -43,7 +43,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # 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 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 MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "NDEBUG" @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo 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 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 !ELSEIF "$(CFG)" == "libupnp - Win32 Debug" @@ -70,7 +70,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # 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 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 MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "_DEBUG" @@ -80,7 +80,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo 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 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 diff --git a/upnp/inc/upnp.h b/upnp/inc/upnp.h index f024202..dad9258 100644 --- a/upnp/inc/upnp.h +++ b/upnp/inc/upnp.h @@ -65,6 +65,12 @@ #else #define EXPORT_SPEC #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 #define EXPORT_SPEC #endif diff --git a/upnp/src/genlib/net/http/httpreadwrite.c b/upnp/src/genlib/net/http/httpreadwrite.c index 6537301..1b81b5b 100644 --- a/upnp/src/genlib/net/http/httpreadwrite.c +++ b/upnp/src/genlib/net/http/httpreadwrite.c @@ -39,6 +39,11 @@ #include #include +#ifndef UPNP_USE_BCBPP +#ifndef UPNP_USE_MSVCPP + #include +#endif +#endif #ifndef WIN32 #include @@ -708,7 +713,7 @@ http_Download( IN const char *url_str, // save mem for body only *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 assert( ( int )msg_length > *doc_length ); @@ -1903,7 +1908,7 @@ http_MakeMessage( INOUT membuffer * buf, { bignum = ( off_t )va_arg( argp, off_t ); - sprintf( tempbuf, "%lld", (long long)bignum ); + sprintf( tempbuf, "%lld", (int64_t)bignum ); if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { goto error_handler; } diff --git a/upnp/src/genlib/net/http/webserver.c b/upnp/src/genlib/net/http/webserver.c index adf915c..1e5f18b 100644 --- a/upnp/src/genlib/net/http/webserver.c +++ b/upnp/src/genlib/net/http/webserver.c @@ -37,6 +37,11 @@ #include "config.h" #include #include +#ifndef UPNP_USE_BCBPP +#ifndef UPNP_USE_MSVCPP + #include +#endif +#endif #include "util.h" #include "strintmap.h" #include "membuffer.h" @@ -986,34 +991,34 @@ CreateHTTPRangeResponseHeader( char *ByteRangeSpecifier, Instr->ReadSendSize = LastByte - FirstByte + 1; sprintf( Instr->RangeHeader, "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", - (long long)FirstByte, - (long long)LastByte, - (long long)FileLength ); //Data between two range. + (int64_t)FirstByte, + (int64_t)LastByte, + (int64_t)FileLength ); //Data between two range. } else if( FirstByte >= 0 && LastByte == -1 && FirstByte < FileLength ) { Instr->RangeOffset = FirstByte; Instr->ReadSendSize = FileLength - FirstByte; sprintf( Instr->RangeHeader, "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", - (long long)FirstByte, - (long long)(FileLength - 1), - (long long)FileLength ); + (int64_t)FirstByte, + (int64_t)(FileLength - 1), + (int64_t)FileLength ); } else if( FirstByte == -1 && LastByte > 0 ) { if( LastByte >= FileLength ) { Instr->RangeOffset = 0; Instr->ReadSendSize = FileLength; sprintf( Instr->RangeHeader, "CONTENT-RANGE: bytes 0-%lld/%lld\r\n", - (long long)(FileLength - 1), - (long long)FileLength ); + (int64_t)(FileLength - 1), + (int64_t)FileLength ); } else { Instr->RangeOffset = FileLength - LastByte; Instr->ReadSendSize = LastByte; sprintf( Instr->RangeHeader, "CONTENT-RANGE: bytes %lld-%lld/%lld\r\n", - (long long)(FileLength - LastByte + 1), - (long long)FileLength, - (long long)FileLength ); + (int64_t)(FileLength - LastByte + 1), + (int64_t)FileLength, + (int64_t)FileLength ); } } else { free( RangeInput ); diff --git a/upnp/src/genlib/util/membuffer.c b/upnp/src/genlib/util/membuffer.c index 388cfe1..2299c3e 100644 --- a/upnp/src/genlib/util/membuffer.c +++ b/upnp/src/genlib/util/membuffer.c @@ -331,9 +331,10 @@ membuffer_assign( INOUT membuffer * m, return return_code; } // copy - memcpy( m->buf, buf, buf_len ); - m->buf[buf_len] = 0; // null-terminate - + if( buf_len ) { + memcpy( m->buf, buf, buf_len ); + m->buf[buf_len] = 0; // null-terminate + } m->length = buf_len; return 0;