$Header: /home/cvsroot/NetZ3950/Changes,v 1.28 2003/01/21 16:50:14 mike Exp $ Revision history for Perl extension Net::Z3950. 0.32 Tue Jan 21 16:46:23 2003 - Remove the old, unnecessary and confusing code that patched around the absence of cs_look() and cs_rcvconnect() in YAZ. In fact, they've both been there since version 1.8 (the one that introduced ZOOM-C), fourteen months ago. This change cleans up the code and fixes an intermittent error that Dave Mitchell had run into. You now need v1.8 of YAZ or newer. 0.31 Wed Nov 27 12:40:50 2002 - Add command-line options to samples/simple.pl - Add samples/canonical.pl - Change the default element-set names in Manager.pm to be upper-case "F" and "B" rather than "f" and "b", as specified in section 3.6.2 (Composition Specification, Comp-spec Omitted) of the standard. http://lcweb.loc.gov/z3950/agency/markup/08.html#3.6.2 Even though a clarification makes it clear that element-set names should be treated case-insensitively. http://lcweb.loc.gov/z3950/agency/clarify/esncase.html - Formally deprecate the non-working records() method of the ResultSet class. - When a new Connection object can't be made because of Init being refused (rather than due to a lower-level error such as ECONNREFUSED), $! is set to the distinguished value -1. (Dave Mitchell) - Neater code for connection-closing. (Dave Mitchell) - Fake up a diagnostic record (BIB-1 error 3, "unsupported search") for servers which illegally fail to include diagnostic records in the result of a failed search. (Dave Mitchell) - Added #include "XSUB.h" to the yazwrap directory's private code, which means it now does The Right Thing when compiling against a Perl build with the MULTIPLICITY flag set. This means that we now build and run under cygwin on Windows 2000 (Dave Mitchell) - Add new option "namedResultSets", initially true, which if set false caters for brain-damaged servers by always using the same result-set name, "default", thereby invalidating previous ResultSet objects. (Dave Mitchell) - Documentation tweaks. 0.30 Fri Jul 19 13:55:45 2002 Today's release is brought to you entirely by Dave Mitchell , who has done an astonishing amount of really useful work on Net::Z3950. Thanks, Dave! - Added the present() method and "prefetch" option to optimise multiple calls of record() in synchronous mode. - Made $conn->close() actually clean up and close the connection - Fixed memory leak in receive.c, decodeAPDU() - Added functions to decode close request/response APDUs. - Really do add ability to set custom exception-handler via "die_handler" option -- I [Mike] did it wrong last time. - Changed all print()s to die()s, which can be caught as exceptions. - Commented out a debugging warn() - Added a dummy "test" target to yazwrap/Makefile.PL to stop it complaining during "make test" [At last! -- Mike] - Removed "debug => 5" from watcher creators. - Updated the synchronous synopsis: * Replaced use of records() with record(), since the former is deprecated. * Added error-checking, so that people who cut-and-paste the synposis start off with good habits. * Added $conn->close(), so people know this doesn't happen automatically. 0.29 Fri May 17 17:07:53 2002 - Add ability to set custom exception-handler via 'die_handler' option. - Fix dereference-undef bug occurring when performing a second search on a connection without having fetched any records following the first search. - Cope with servers which lie about the number of records in their present responses (the cads!) - Fix to correctly translate OIDs in which one or more components is "0". All of these changes are due to Dave Mitchell -- thanks, Dave! 0.28 Wed Feb 27 17:28:26 2002 - Change representation of OIDs from blessed reference to array of intergers to Boring Old String (dot-separated numbers). Resulting tweaks elsewhere in the module, e.g. in GRS::render() - Fix Tutorial's incorrect description of the GRS-1 record structure. How come no-one noticed this gross error in all the time it was there? - Minor fixes to the APDU class's documentation (but you shouldn't be reading that anyway :-) - Fix the top-level documentation file (index.html) to use the same stylesheet as all the API documentation. 0.27 Mon Feb 11 12:59:05 2002 - Incorporate a patch from Adam to allow Net::Z3950 to work against servers that don't support named result sets. Ah, so simple, so elegant! 0.26 Fri Feb 8 16:06:15 2002 - OK. This time I have _really_ fixed connecting to work properly either synchronously or asynchronously, and slightly clarified some of the event-handling code while I was at it. In particular, ECONNREFUSED is handled properly now. - Add AUTHOR and ABSTRACT to my Makefile.PL, as recommended in passing by R. Geoffrey Avery's Lightning Talk _h2xs has eXceeded its Stay_, at http://www.platypiventures.com/perl/present/tpc5modules/004.html 0.25 Tue Jan 29 15:56:48 2002 - Remove some obsolete comments (documenting bugs that are now fixed!) - Fix type mismatch in encode_APDU() -- we've been getting away with it until now because sizeof(size_t)==sizeof(int) on most systems, but not on the 64-bit DEC Alpha OSF/1. - Fix daft-but-harmless bug in yazwrap/receive.c's setString() functions, in which we return the value of a void function. Most compilers DWIM, but not all. - Add explicit casts to (char*) in yazwrap/receive.c where I'd been assuming the conversion from unsigned char*. Ho hum. 0.24 Wed Jan 23 11:39:32 2002 - Fix a truly stupid bug which prevents synchronous connection from working. I missed this in 0.23 because the test script -- unlike almost every other Net::Z3950 program -- uses asynchronous connection. D'oh! 0.23 Tue Jan 22 16:11:41 2002 - Handle surrogate diagnostics (e.g. bad element set name). - Finally fix that stupid "No rule to make target `pure_all'" message that "make test" always used to produce in the yazwrap directory. - Add support for retrieving HTML records: new record-syntax enumeration TEXT_HTML, and a new record-type class Net::Z3950::Record::HTML. - Fix hanging on ECONNREFUSED. 0.22 Fri Oct 19 16:37:44 2001 - Add rudimentary ("straight through") support for the OPAC record syntax. - Fix URLs for perl.z3950.org to omit obsolete /nz/ directory. - Fix "make clean" in doc directory to remote the Z3950 subdirectory. - Fix documentation stylesheet to match perl.z3950.org 0.21 Thu Oct 18 14:29:06 2001 - Fix samples/multiplex.pl not to die when one server fails a search - it just prints and error message now. - Get rid of stupid "field `DESTROY' not defined" messages. 0.20 Fri Oct 12 17:12:04 2001 - Add name() method to the Net::Z3950::Connection class. - Add the wherewithal for asynchronous operations to invoke callbacks when they complete - Fix staggeringly stupid bug in which the synchronous search() method would always expect an initResponse, so that you couldn't call search() twice on one connection. - Add support for the UNIMARC record syntax (required by Bath) - Remove the stupid and implemented records() method from the Connection class. - Implement CCL qualifiers, specified in "ccl.qual" file. - Improve diagnostics from APDU assembly. - Fix a rather silly bug where records, once fetched, were cached irrespective of their element-set name, so that record fetched as 'b' and then as 'f' would appear brief. - Revamp the "samples" directory: all examples now work(!) - Add ZOOM references to the documentation. - Minor fixes to documentation, comments, etc. (This major revision - indicated by the increment of the first-decimal-place version number - was largely motivated by the October 2001 ZIG meeting's tutorial, for which I prepared a simple multiplexing client, and was surprised at how hard it turned out to be.) 0.14 Wed Jul 18 13:25:06 2001 - Add support for retrieving XML records: new record-syntax enumerations TEXT_XML and APPLICATION_XML, and a new record-type class Net::Z3950::Record::XML. - Minor fixes to documentation, comments, etc. 0.13 Fri Jun 22 09:30:55 2001 - In yazwrap/util.c, change socklen_t to size_t since the former does not seem to be defined on all platforms. In particular, Solaris 2.6 uses a size_t* for the last argument to getsockopt(). 0.12 Wed Feb 21 16:47:03 2001 - Change my email address and web-page in the README. - Add conditionally-compiled debugging code to Yaz-wrapper. - Add rudimentary support for rendering MARC records and remove the MARC-related apology from the tutorial. - Add note to README about "make test" error message. - Add note to README about support options, including the Net::Z3950 mailing list. 0.11 Fri Feb 9 11:31:34 2001 - Fix Net::Z3950::ResultSet->record() to work correctly in synchronous mode (i.e. wait for the record to become available before returning.) - Add rawdata() method to the various Net::Z3950::Record::* classes: we now have a distinction between render() and rawdata(), concepts which were previously mulched in together very unhelpfully. - Add Tutorial. - FIRST PUBLIC RELEASE ON CPAN 0.10 Wed Nov 29 16:39:47 2000 - Change module name from Z3950 to Net::Z3950 0.04 Fri Sep 22 17:51:28 2000 - Fix so that diagnostics are available after search failure. - Add trivial "straight through" support for USMARC and some of the related record syntaxes. - Support for OID-typed fields in GRS-1 records. - Change default database to "Default" (it had the profoundly unhelpful default of "hardwired-databaseName"!) - Modify the internal class hierarchy to make MARC support hang together more easily (yazwrap library now returns ...::Record:: objects instead of ...::APDU::) - Improve diagnostics when low-level translation of C objects into Perl objects fails. 0.03 Thu Jun 29 15:38:33 2000 - First version to be held in CVS at indexdata.dk - Add CVS identification headers where they're missing, fix some that lacked the trailing $-sign (duh.) - Fix the search() and records() wrapper methods so that much simpler single-threaded clients can be easily written. 0.02 Tue Jun 27 21:28:56 2000 - Make the $port argument optional in the Z3950::Connection constructor. - Add support for mnchar* (T_MNPV) to the typemap file: this is a Maybe-Null PV, into which undefined values may be passed yielding null pointers. - Add samples/fetch1.pl, which actually works (unlike the other scripts in the samples directory, which are written to a pre-0.1 version of the interface.) - Remove obsolete bits of the README file. 0.01 Tue May 23 09:20:30 2000 - Originally created by h2xs 1.19 - 0.01 was the first numbered version. Earlier versions were never assigned numbers as they never got outside the author's house; this is the first one that was sent to Index Data. -- To be done: - ### Fix test.pl to work against either local or remote server. - ### Make managers drop references to closed connections. - ### Make $mgr->wait() finish when there are no connections left. - ### Add optional timeout parameter to $mgr->wait() - ### Add GPL.