Changes with libwww 5.4.1 2006-12-04 Vic Bancroft * Library/src/HTSQL.c: add missing mysql_init to HTSQL_connect reported by Xavier Torne 2006-12-03 Vic Bancroft * configure.ac, Library/src/Makefile.am, Library/cvs2sql/Makefile.am, Robot/src/Makefile.am: modify configure scripts for mysql_config based autoconf processing * Library/src/HTSQL.c, Library/src/HTSQL.html, Library/src/HTSQLLog.c: remove mysql directory from include directives 2006-12-02 Vic Bancroft * Robot/src/RobotMain.c: added flag MR_KEEP_META for -lm last modified option detected by Jan Hutaø 2006-11-29 Vic Bancroft * Robot/src/RobotMain.c: added flag MR_KEEP_META for -title option detected by Jan Hutaø 2006-07-09 Vic Bancroft * close leak in HTBound process_boundary() detected by Sam Varshavchik using valgrind; excised old #if 0 snippets from HTMIME.c 2006-06-18 Vic Bancroft * Library/src/HTCookie.c: add private function HTCookie_splitPair to split a KEY=VALUE pair, from Jesse Morgan 2006-03-14 Vic Bancroft * configure.ac: remove unecessary check for appkit.h as suggested by Roger Persson 2006-03-12 Vic Bancroft * Library/src/wwwsys.html: change genuine angle bracket characters into the angle bracket entities, thanks to Bobby Jack 2005-11-11 Vic Bancroft * Library/src/HT*.html, Library/src/SSL/HT*.html: wrap all header files with extern "C" * Library/src/HTFile, configure.ac: add a basis for addressing Ben's security concerns 2005-10-16 Vic Bancroft * Library/src/HTBound.c: libwww security advisory fix from Sam Varshavchik, fix double-counting of processed bytes, rewrote HTBoundary_put_block, to fix problematic HTTP 1.1 byte range requests 2005-08-01 Vic Bancroft * Library/src/: HTAlert.c, HTHeader.c, HTInit.c, HTNet.c, HTProfil.c, HTProt.c, HTTrans.c: Patch to greatly speed up repeated requests, from Arthur Smith 2005-07-25 Vic Bancroft * Library/src/HTSQL.c: modifications to compile without using deprecated mysql functions * config/: config.sub, ltmain.sh: updates for recent version of libtool 2005-04-04 Jose Kahan * INSTALL.html, Library/src/HTEvtLst.c: cleaning 2005-03-09 Vic Bancroft * libwww-config.in: include -lwwwssl, thanks to mgoddard at itgs-presearch.com 2005-02-28 Vic Bancroft * Library/src/SSL/HTSSLWriter.c: avoids an eternal loop in libwww (thanks to Steinar Bang) 2005-02-27 Vic Bancroft * Library/src/SSL/HTSSL.html, Robot/src/RobotMain.c: fix for webbot -v option check and documentation addition * configure.ac, Library/src/SSL/HTSSL.c, Library/src/SSL/windows/wwwssl.def, Robot/src/HTRobMan.html, Robot/src/Makefile.am, Robot/src/RobotMain.c: basic support for client side certificates using PEM format 2005-01-23 Vic Bancroft * Library/src/SSL/: HTSSL.c, HTSSLReader.c, HTSSLWriter.c: add openssl to include for ssl.h and rand.h * config/: config.guess, config.sub, ltmain.sh: update after running libtoolize * Robot/src/Makefile.am: use SSL directory for libwwwssl.la * Robot/src/RobotMain.c: include HTSSL.h * configure.ac: fix aclocal underquoting warnings * Robot/src/: RobotMain.c, Makefile.am: update to enable https protocol 2005-01-05 Martin Duerst * Library/src/HTTPReq.c: fixed , to _ in HTTRACE call * Library/src/HTTPReq.c: removed LIBWWW_USEIDN, because unnecessary * modules/idn/unicode_template.c: forgot one file * Library/src/HTDNS.html: moved IDN to main branch * Library/src/HTDNS.c: moved IDN to main branch * Library/src/HTTPReq.c: added "LIBWWW_USEIDN" conditional * Library/src/HTTPReq.c: moved IDN to main branch 2004-01-29 Jose Kahan * Library/Overview.html: JK: Added the libwww survey results Changes with libwww 5.40 2003-11-17 Jose Kahan * Added a public patch to expat that kept if from compiling under C++ (misplaced enum). http://downloads.linuxfromscratch.org/blfs-patches/ expat-1.95.6.patch 2003-04-18 Jose Kahan * Richard Atterer: HTHost_killpipe() didn't behave correctly: The private function killPipeLine() called by it wasn't closing the HTTP/1.1 pipelined connection. This could cause many problems: - We call HTHost_killPipe() while the pipeline is active, in the middle of a download - The requests of the pipeline are removed from the queue, but the connection is still open - Instead of executing the main loop, we *immediately* start another request for the same host. - Because the connection is still up, the request is added to the pipeline and the HTTP request headers are sent off - The new request's event object now "listens" to the connection - Instead of the HTTP reply headers it expects, it only gets what it thinks is "garbage" - in fact, it is the remaining data of the request which was aborted by HTHost_killPipe() earlier - libwww concludes that "this is a HTTP 0.9 or earlier host" and aborts the new request with an error :-( The solution was to close the connection inside killPipeline(), but only if the pipeline isn't idle, i.e. it contains 1 or more requests. 2003-04-14 Jose Kahan * The previous patch made a call to strcasecmp which isn't portable under Windows. Changed its call to libwww's strcasecomp. 2003-04-10 Jose Kahan * The generation of a Digest Authentication answer didn't work if the server sent a QoP with two options, rather than a single one. As we didn't handle auth-int anyway, I made auth the only available one. 2003-03-21 Jose Kahan * Updated expat to version 0.96.6 * Updated the autoconf tools to the latest versions (2.5x, 1.5x) 2003-03-19 Jose Kahan * Changed the order between -lwwwxml and -lwwwapp in libwww-config as suggested by Frank Traenkle. Changes with libwww 5.3.2 2002-06-06 Jose Kahan * Make the make dist generate a .tgz file. 2002-06-05 Jose Kahan * The Library/User/Extrnals.html file (a list of all exported functions and variables) wasn't being generated with the consequence that make failed. 2002-06-05 Jose Kahan * Updated the auto-tools files in ~/libwww and ~/libwww/config to the latest versions (autoconf 2.13, libtool 1.4.2a, automake 1.4-p4). If when compiling you see warning messages saying: libtool: test =: unary operator expected it means you're running an old version of libtool. If you cannot update this tool, then, go to the libwww directory and type: libtoolize -c -f then bootstrap the library again. This will fix your problem. 2002-06-05 Richard Atterer * Patched configure.in and wwwsys.html for building libwww on mingw32 (a version of GCC that doesn't make produced binaries depend on the Cygwin DLL). See http://lists.w3.org/Archives/Public/www-lib/2002AprJun/0053.html. 2002-06-04 Thurog * Patched configure.in to avoid a broken configure error in autoconf 2.5.3. See http://lists.w3.org/Archives/Public/www-lib/2002AprJun/0034.html. 2002-05-29 Manuele Kirsch * Fixes for windows plataform concerning WebDAV and Extension methods. In HTMethod and HTRequest, functions defined for the Extension Methods are now defined always, but return fail values when HT_EXT is not defined. In addition, the files "Library/src/WWWDAV.html" and "Library/src/windows/wwwdav.files" have been added. These files and modifications were needed to produce the correct "*.def" files, for windows plataform. 2002-05-29 Jose Kahan * Created the necessary makefiles and changed the windows project files for WebDAV and Extension methods. 2002-05-28 Manuele Kirsch * Minor fixes concerning WebDAV module and Extension methods. At src/HTTP.c source file, the 207 status codes has now the result HT_MULTI_STATUS (line 310), and in Examples/davsample.c, options "-l", "-c" and "-m" can not anymore produce "Segment dump" error when an command line argument is missing. * Concerning to Extension Methods, the definitions of HTMethod_hasEntity macro into HTMethods.html have been changed to improve the code readability. 2002-03-19 Manuele Kirsch * The WebDAV module has been changed to use HTRequest entity and PostCallback to send all message bodies in its requests. * Extension methods have been changed - now the application may chose, when register an extension method, between use "Expect: 100-continue" heander and HTRequest Entity, or the new message body present in HTRequest. When using the first one, the application must set a PostCallback, and when using the second, it may set a small message body to be sent with the request. This last may be used to other protocols, other than HTTP. * Added a new example (myext2.c) that shows how to set the extension methods and how to use it with "Expect: 100-contine" and with message body. 2002-03-08 Manuele Kirsch * Added new methods in HTMethod enumeration. There are the 7 methods defined in WebDAV protocol (LOCK,UNLOCK,PROPFIND, PROPPATCH,MKCOL,COPY and MOVE), and also 7 extension methods (METHOD_EXT_0 to METHOD_EXT_6). These methods are undefined methods that can be set/unset for the applications using two new functions introduced to HTMethod module ("HTMethod_setExtensionMethod" and "HTMethod_deleteExtensionMethod"). Those extension methods are available only if configure used --with-extension option (which define HT_EXT). * Added new fields to HTRequest structure: a message body array, its length and format. HTTPGenMake functions in HTTPGen.c has been changed to include Content-Type and Content-Lenght headers if messageBody field and messageBodyType/messageBodyFormat are set. It also send this message body only if it is set. This message body may be use for XML message bodies (indeed, it is used by some DAV methods in HTDAV module). These modifications are activated only if HT_DAV or HT_EXT are defined. * Added a new module HTDAV with high level functions for WebDAV protocol. It is defined in HTDAV.h/html and implemented in HTDAV.c. This is only enabled with "--with-dav" option in configure procedure (this option will define HT_DAV). An example of use (davsample.c) have been included in Library/Examples. * Added new status codes (in HTUtils.h/html) and error codes (in HTError.h/html) defined by WebDAV protocol (102,207,422,423,424 and 507). This codes are activated only if HT_DAV is defined. 2002-03-21 Jose Kahan * Added the HTDNS.c configure patches for the reentrant call to gethostbynamer function. (sorry, I can't find the name of the person who contributed this patch right now). 2001-08-30 Jose Kahan * Added a new field in the HTRequest structure for specifying a user defined Content-Location. This allows to use the library functions to access a resource, while in fact the request sent to the server is made to the value of the user defined Content-Location. This sound silly, but it allows to keep the libwww state coherent and it doesn't break the requests like the previous (and banned since long time) real content-location handling. To avoid confusion, this field is called default_put_name. See HTReqMan.h for the name of the functions that handle this field. * New public function in HTCache.c to reset the value of a cache entry and delete the cached file. This is interesting when we want to keep a cache entry, but force the cache entry to be refreshed. HTCache_resetMeta (). 2001-08-14 Jose Kahan * HTProfile_newPreemptiveClient wasn't intializing the default event loop in all cases (bug reported by Olivier Steinau). 2001-03-14 Jose Kahan * Digest authentication didn't work well with pipelining requests. Only one of such requests got the stale nonce. The other 401 were being re-interpreted as if the user had given a wrong login name or password. To fix this, we try to infer a stale nonce if the previous nonce and the new one sent by the server are different and a wrong login name/password if they are the same. The patch is in HTAABrow.c. I also added a second bug fix in the same patch as not all pipelined requests seem to go thru the first authentication filter. 2001-03-09 Jose Kahan * Digest authentication wasn't being compiled by default in Win32 because windows/config.h was missing the HT_MD5 define. 2001-03-06 Serge Adda * HTAnchor bug. HTAnchor_delete wasn't removing the reference to the deleted anchor. This caused a bug whenever requesting another anchor for the same URL. Thanks to Anton Belov for having reported the problem and to Serge for his patch. See http://lists.w3.org/Archives/Public/www-lib/2001JanMar/0133.html. 2001-03-06 Stefan Wiesner * Timer bug. There was a bug in the code of function HTTimer_new if a timer is already expired when HTTimer_new is called. See http://lists.w3.org/Archives/Public/www-lib/2001JanMar/0123.html for the full analysis. 2001-02-26 Jose Kahan * Cache bug. An HTResponse object was being freed repetively inside a while loop, when reading a cached metadata in meta_read(). I moved the delete to outside this function. Changes with libwww 5.3.2 2000-12-19 Jose Kahan * Compilation fix: two prototypes in HTResponse.html were declared as PUBLIC, instead of as external. Updated the copyright date of the WinCommander Fixed runtime crashes with the following example applications: chunk.c chunkbody.c getheaders.c head.c multichunk.c 2000-12-18 Jose Kahan * Compilation fix: The HTMIME_anchor2response() function added a dependency between the cache and mime mini-libs. I changed the call to a stream converter (HTCacheCopyHeaders) to make it optional and to avoid the dependency. The converter is initialized in HTInit.c:HTConverterInit. 2000-12-14 Jose Kahan * Bug fix: make dist didn't work because of a recurrent rule in the ComLine make file (it tried to use www to create a documentation file). 2000-12-13 Jose Kahan * Bug fix: When objects were retrieved from the cache, the response object didn't have a copy of the request headers. These headers were only found in the anchor associated to the request. In order to make a coherent behavior, I made a new function HTMIME.c:HTMIME_anchor2response() that copies the headers from one object to the other. Well, more than a copy, it adds a link to the headers. I call this function in HTCache:CacheCleanup when it succesfully retrieved an object from the cache. Result, you can now use the response object in both cases. 2000-10-30 Jose Kahan * Enhancement, added a new field to the HTResponse object to store the HTTP reason sent by the server. Two new functions to get it/set it: HTResponse_reason(), HTResponse_setReason() 2000-09-01 Wayne Davison * HTAccess.c: Typo fix * HTChunk.c, HTChunk.html: new function, HTChunk_fromBuffer for creating a chunk from an existing block of memory, without having to allocate more memory. 2000-09-01 Peter Stamfest * Makefile.am: corrected a DESTDIR problem 2000-09-01 Jose Kahan * config.h: Updated the libwww version 2000-09-01 Zhu Qun-Ying * config.h: BUG FIX: wrong closing comment 2000-08-30 Arthur Barstow * HTRDF.c: BUG FIX: nested typedNode constructs with attributes caused re-using a free'd pointer. * HTRDF.c: per a request from the Redland RDF project, added a void * context parameter to HTRDF_parse{File,Buffer}. The application-specific context will be available in the triple callback handler. * HTRDF.html - updated to API changes mentioned above * Library/Examples/ updated rdf_parse_{file,buffer} programs to reflect the above API changes. 2000-08-29 Jose Kahan * Temporarily commented the XML structured stream in HTXML.c (HTXMLStructured_new) and its related code, as it creates a dependency with the libwwwxml mini-library. If this code is still useful, it should go into another module, HTSXML.c to avoid the forced dependency. 2000-08-28 Jose Kahan * Updated expat to the test version 19990728, as this version adds some interesting API extensions and is now being widely used by other projects, including the Perl XML modules. The previous version is CVS tagged as expat-1-1. 2000-08-18 Arthur Barstow * HTRDF.c: Added a new public API HTRDF_parseBuffer. It parses an arbitrary buffer (char *) of RDF. * HTRDF.c: Changed the name of HTRDFParseFile to HTRDF_parseFile. it now returns BOOL instead of char * to be consistent with other RDF parser APIs. * HTRDF.html - updated to HTRDF.c changes mentioned above * Library/Examples/: added two new example programs: 1. rdf_parse_file - demos/tests HTRDF_parseFile() 2. rdf_parse_buffer - demos/tests HTRDF_parseBuffer() * configure.in - added the two new programs above * Library/Examples/Makefile.am - added the two new programs 2000-08-17 Arthur Barstow * HTRDF.c: Fixed a memory leak. (HTElement structures for elements within a property with parseType="Literal" were not free'd after the parser was done.) * HTRDF.c: Bug fixes. Added code to circumvent calls to HTSAlloc (via StrAllocCopy) when the src and dest were identical (this causes a free'd pointer to be used) or both NULL. * HTRDF.c: Changed addMarkup{Add,End} to make one call to StrAllocMCat instead of multiple StrAllocCat calls. 2000-08-11 Jose Kahan * Memory leak. The HTPlain (HTPlain.c) stream wasn't freeing the HTTextImp (me->text) object in the HTPlain_free and HTPlain_abort. I found the bug while running the robot thru Insure and found the fix by seeing what was being done in the HTML (HTML.c) stream. * The make dist command wasn't copying the .c, .files, and .mak files found in the Library/src/windows. As a result, the tar files created with this command were missing those files. The problem came from some wrong assumptions in the Makefile.am of the windows directory. 2000-08-11 Wayne Davison * Added two new functions to HTHash.c, HTHashtable_removeObject() and HTHashTable_walk. The first one allows to delete individual elements from a hash-table, the second one allows to walk throug all associated elements in a table without having to ask for a list of all keys and then looking each one up. See http://lists.w3.org/Archives/Public/www-lib/2000JulSep/0146.html for a more detaile description on how to use these functions. * I got rid of a few useless variable initializations in HTHash.c (when the variables were being set to a value immediately following the init value). * I removed some superfluous spaces that I saw. 2000-08-10 Wayne Davison * Since "cvs update" was complaining about a bunch of generated files in the Library/src dir, I tweaked it to ignore the *.la files and the .libs dir. 2000-08-10 Jose Kahan * Because (IMO) of a very imbricated protocol stack, the Robot could hang when accessing local files, as it become starved on its own sockets. I fixed the problem by adding a new state in HTFile:FileEvent() to take into account the case when a request goes pending. This is mostly based on a previous (not commited) patch by Kinuko Yasuda, plus some long debugging to find out what was happening and a fix to a memory bug that the other patch had. 2000-08-08 Wayne Davison * New HTChunk_setSize function to allow to set the size of a chunk object upwards or downwards. (HTChunk_truncate() still exists and still enforces the sizing of the string downwards.) Both these string-sizing functions only zero the relevant bytes in the "size" region (if the string is being shortened). Note that HTChunk_clear() was left unchanged -- it still clears all of the Chunk's allocated memory. * Fixed the HT_OUTOFMEM() calls in HTChunk_ensure() to have the proper location string. * Some code in HTBind.c was optimized to use HTChunk_truncate(). * HTFTP.c and HTNews.c was optimized to use HTChunk_setSize() rather than using HTChunk_ensure() and writing data past the "size". * Optimized the code in HTMIME.c and HTML.c to use HTChunk_truncate(chunk,0) rather than HTChunk_clear(chunk). * Documented the new HTChunk_setSize() function. * Improved the comments for HTChunk_clear(). * Fixed the comments for HTChunk_ensure() (it was describing the extra-size parameter incorrectly). * Fixed the comments for HTChunk_toString() (to indicate that the function destroys the chunk when handing off the CString data). * Fixed a few spelling errors in HTChunk.html. * Note: There are probably other places in the code that could be optimized to use truncate rather than clear, but I didn't have time to check each one to see if the chunk's data was properly respecting the size indicator or not. 2000-08-09 Jose Kahan * Updated the "how to bootstrap section" with instructions on what to do if libtool and aclocal are installed in different directories. Thanks to Ken Olum and James Henstrige for the tips. 2000-08-08 Jens Meggers * The cache garbage collector (HTCacheGarbage()) could go into an endless loop when it tried to removed locked entries. The problem was that it wasn't checking the return code of HTCache_remove(). 2000-08-07 Wayne Davison * Changed the macro argument from "data" to "dp" in HTArray_firstObject() and HTArray_nextObject(). These macros are defined such that if the caller doesn't pass in a variable named exactly "data" as the second parameter, there will either be a syntax error generated during the compilation OR the wrong structure element will get referenced. This is because the macro argument "data" was the same name as the HTArray structure element that was being referenced in the macro. Changes with previous versions * No info available (this log was started with version 5.3.2)