$Header: /home/cvsroot/NetZ3950/Changes,v 1.19 2002/02/27 17:28:54 mike Exp $

Revision history for Perl extension Net::Z3950.

0.30  Fri Jul 19 13:55:45 2002
	Today's release is brought to you entirely by Dave Mitchell
	<davem@fdgroup.com>, 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
		<davem@fdgroup.com> -- 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 <adam@indexdata.dk> 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::<RS> objects instead of ...::APDU::<RS>)
	- 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.
	- ### Add close() method for connections.
	- ### 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.