Fix assert in ZOOM when http connect fails YAZ-757
[yaz-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index e076434..c8ada77 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,818 @@
+--- 5.0.22 2014/04/09
+
+ZOOM: Call cs_rcvconnect during HTTP redirect YAZ-754
+
+wrbuf_cstr: make it thread safe YAZ-753
+
+yaz_log_init_file may take fd=<no> to open log file at the FD given.
+
+--- 5.0.21 2014/03/21
+
+Offer new utility function zget_AttributeList_use_string.
+
+New conversion step, solrmarc, for record conversion module.
+
+--- 5.0.20 2014/03/13
+
+Fix gcrypt initialization for threaded mode. On systems were GnuTLS
+did not initialize gcrypt for threaded mode, wrbuf_sha1_write could
+throw an assert.
+
+--- 5.0.19 2014/03/10
+
+Fix ZOOM_connection_Z3950_search: Assertion YAZ-750
+The standalone ZOOM sort was completely broken since 5.0.13.
+
+ZOOM: generate event Connect rather than None for partial connect
+(in fact getaddrinfo resolving).
+
+ZOOM: only supply clientIP for InitRequest. Rather than for all
+APDU types.
+
+GFS: peer_name adds X-Forwarded/Client-IP to value YAZ-749
+
+COMSTACK flag CS_FLAGS_DNS_NO_BLOCK. This will enable non-blocking
+getaddrinfo . This flag is passed to cs_create macro and cs_create_host,
+cs_create_host_proxy functions. ZOOM C uses this flag. YAZ-744
+
+New "Facets" section in the documentation.
+
+--- 5.0.18 2014/02/27
+
+Call exsltRegisterAll in yaz_init_globals, so that all applications
+using YAZ will have EXSLT things enabled.
+
+Use extraArgs in key for memcached ZOOM C caching YAZ-747.
+
+Update various URLs to the re-organized SRU pages at LoC.
+
+--- 5.0.17 2014/02/26
+
+Fix ZOOM_connection_connect SEGVs if host==NULL YAZ-746. Problem
+introduced in 5.0.12.
+
+Fix: Setting env YAZ_LOG makes YAZ hang YAZ-745
+yaz_init_gloabsl calls yaz_log_init_globals calls yaz_log_mask_str_x .
+Do not call yaz_init_globals from log_mask_str_x. Problem introduce
+in 5.0.15.
+
+--- 5.0.16 2014/02/25
+
+tcpip/SSL COMSTACK: connect tries all getaddrinfo addresses YAZ-743
+
+--- 5.0.15 2014/02/24
+
+Fix gcrypt not properly initialized YAZ-740.
+
+--- 5.0.14 2014/02/19
+
+Describe memcached option for ZOOM.
+
+ZOOM: throw present request out of range again YAZ-739
+Was removed in YAZ 5.0.13.
+
+--- 5.0.13 2014/02/18
+
+yaz_log MUTEX protected and pthread_atfork is used to avoid dead-lock
+with localtime_r when threads + fork is used (such as Metaproxy).
+
+yaz-config: quote some RHS values (that might include blanks)
+
+zoomsh: shows SearchResult-1
+
+zoomsh: sortby command
+
+zoomsh: use proper list of connections and result sets YAZ-725
+
+Avoid yaz_log in sigterm handler for GFS YAZ-737
+Logging is still performed, but outside sig handler.
+
+New ZOOM C feature: result-set caching with memcached. Example:
+ zoomsh "set memcached --server=memcachehost" "connect zurl" "search query"
+
+Remove SSL via OpenSSL support YAZ-732
+Also deprecate two functions from comstack that aren't working with
+GnuTLS: cs_get_ssl, cs_set_ssl_ctx.
+
+Revert "Bison: use %name-prefix directive rather than -p option"
+
+--- 5.0.12 2014/01/22
+
+Prefix URL with http:// if sru setting hints SRU/Solr mode YAZ-731
+
+SRU GET/Solr base URLs may hold additional ?args YAZ-729
+ZOOM option extraArgs already does this, though. It seems useful
+when dealing with Solr targets to limit by filter, eg.
+   http://lui.indexdata.com:8080/solr4/select?fq=database:3902
+
+Remove #fragment for HTTP request encoding YAZ-730
+
+Doc: Update list of DLLs/LIBs
+
+Doc: update href link to Unix utils and Git.
+
+--- 5.0.11 2014/01/15
+
+ZOOM: fix "lost connection" problem with servers that uses both squid
+and another proxy behind it that returns Location headers with relative
+URIs. YAZ-724
+
+zoomsh: do not use readline for stdin (no tty) YAZ-724
+Just use fgets in that case. If the user hits Ctrl-D a new-line
+is also printed.
+
+zoomsh: empty command ignored YAZ-723
+rather than performing exit of zoomsh.
+
+yaz-url utility offers option -v to enable verbose mode.
+
+yaz_url uses yaz_check_location and offers verbose mode.
+
+Add new function yaz_check_location.
+This function gets an absolute URI from Location (HTTP redirect).
+
+cookie API: introduce yaz_cookies_reset
+
+Update cql.y for newer bison YAZ-720
+The important part is that YYLEX_PARAM and YYPARSE_PARAM are no
+longer supported. Instead one must use %lex-param and %parse-param .
+
+--- 5.0.10 2014/01/09
+
+ZOOM/yaz-client: Cookie handling; deal with relative URI in Location
+header. YAZ-719
+
+rpn2solr: support truncation left(2), left&right(3) YAZ-718
+
+Mention SRU version 2.0 in yaz-client man page.
+
+--- 5.0.9 2013/12/20
+
+ZOOM/yaz-client: allow SRU searchRetrieveResponse with incorrect
+namespace.
+
+--- 5.0.8 2013/12/20
+
+Make cs_parse_host public.A
+
+Fix double HTTP dump (-a log would show HTTP packages twice). Bug
+introduced in YAZ 5.0.6.
+
+--- 5.0.7 2013/12/17
+
+Fix buffer corruption for yaz-ztest record fetch.
+
+--- 5.0.6 2013/12/17
+
+Allow yaz-ztest to return user-defined records (one record per file).
+This is enabled by defining environment variable YAZ_ZTEST_XML_FETCH.
+
+Prevent early truncatin of HTTP log. (ODR_PRINT for HTTP streams).
+Use the stream write instead of odr_printf which has a 4K tmp buffer.
+
+Fix encoding of 0x00a4 (unicode to danmarc) YAZ-713
+
+--- 5.0.5 2013/12/09
+
+Add support for MARC-in-JSON. yaz-marcdump and the record conversion module
+can read and write this format. For record format JSON, yaz-ztest returns
+MARC-in-JSON records.
+
+iconv: fixes and more tests for danmarc character set encoding. 0xa733 is
+converted to @å , 0xa732 is converted to @Å instead of @a733, @a732 .
+
+--- 5.0.4 2013/11/22
+
+Improve error reporting for ICU chains YAZ-707
+Report config element+rule when ICU status is "failure".
+
+ZOOM: stop fetching if present response has no records YAZ-710
+Some targets return less records than their hit count would suggest.
+This prevents ZOOM from continuing to fetch records if any present
+response has 0 records in the response.
+
+Ensure that GFS calls exit if any listener fails YAZ-710
+Before, if XML config was in use, it would start the default
+listener @:9999!
+
+--- 5.0.3 2013/11/19
+
+yaz-ztest: -V shows version (like yaz-client -V)
+
+New iconv encoding: danmarc YAZ-692
+
+yaz-client: lslb, ssub, mspn are Odr_ints now YAZ-705
+
+daemon: only wait for immediate child rather than all children. YAZ-704
+
+yaz-client: fix setting of SRU record schema. If scheme was unset, it
+could lead to invalid memory reference.
+
+--- 5.0.2 2013/10/16
+
+yaz-ztest returns schema for MARCXML test records. SRU require that
+recordSchema for records.
+
+GFS: make surrogate diagnostic when yaz_record_conv_record fails -
+instead of non-surrogate diagnostic. This is a per-record failure.
+
+GFS: Allow multiple listenrefs YAZ-554. A server in yazgfs configuration
+may refer to multiple listeners now. Attribute listenref is a comma separated
+list of listen IDs.
+
+GFS: Use xmlconfig path as prefix for fnames YAZ-702. When -f
+option is given for GFS, the dirname of filename (for -f) is used
+as prefix for options such as cql2rpn, ccl2rpn, etc.
+
+Content-Type charset fixes YAZ-701 . Do not inspect charset in
+Content-Type header for SOAP when decoding SRU. The payload (XML)
+itself tells what encoding it is. In response, never supply encoding
+in Content-Type. The response payload (XML) tells what it is (with no
+encoding in XML it's UTF-8).
+
+HTTP decoding: allow blanks in URL paths YAZ-700
+
+--- 5.0.1 2013/10/04
+
+Various fixes for how SRU 2.0 is encoded. Fix NS for SRU 2.0 diagnostics
+and facets. Ensure recordData and recordSchema are always present in
+record element, because they are required.
+
+Remove deprecated functions yaz_uri_val .. and yaz_uri_val_int. Never used
+outside YAZ.
+
+Simplify in a lot of places using odr_strdupn.
+
+odr_create_Odr_oct: null terminate the buffer. Some applications rely on it.
+
+--- 5.0.0 2013/10/01
+
+Increase various buffers in GFS's statserv_options_block
+Change many 'unsigned char *' to 'char *' for ODR-related utilties.
+This change makes many type-casts redundant, and, thus simplifies code.
+
+Remove last bits of WAIS support.
+
+Remove member 'size' from Odr_oct.
+
+Slim down the public part of 'struct odr'. Most elements are not part
+of struct Odr_private.
+
+Add support for SRU 2.0. Since SRU 2.0 is incompatible with earlier
+versions of SRU, yaz-client and zoom C are using SRU 1.2 by default.
+In particular facets are supported in both client - and server side.
+Facets are also supported for Z39.50 and is carried in additionalSearchInfo
+of searchRequest/searchResponse with OID 1.2.840.10003.10.1000.81.5 AKA
+"Facet-1" in oid.csv. The info is defined in facet.asn (which covers
+both request/response). This is what a search handler in the GFS
+will see (regardless of whether operating in SRU mode or Z39.50).
+
+Changes to the srw.h (SRU/Solr) definitions include:
+- New element in Z_SRW_searchRetrieveRequest, queryType (char*) and query
+(char*), which replace union query and query_type (int).  This is because
+SRU 2.0 supports a queryType parameter. This also means that, to carry
+PQF, in SRU we can now use queryType=pqf and query=PQFstring , rather than
+x-pquery=PQFstring (extention parameter). The extension parameter
+is still supported.
+- New element, packing, that has information about SRU
+2.0 recordPacking (not to be confused with SRU 2.0 recordXMLEscaping).
+
+New element in Z_SRW_searchRetrieveResponse, resultCountPrecision.
+
+New element, packing, in Z_SRW_explainRequest.
+
+New elements in Z_SRW_scanRequest, queryType and scanClause.
+These replace query_type and scanClase untion. This is similar to what
+happend to search.
+
+--- 4.2.69 2013/10/01
+
+GFS: log when closing down - at least SIGTERM YAZ-684
+Also change formatting WRT PID logging a bit.
+
+Improve display of MARC records with multi-byte subfield IDs YAZ-695
+In some rare cases subfield identifiers are multi-byte characters.
+This will try to deterime length of those and split accordingly.
+This affects display in line mode as MARCXML/MarcXchange. The encoding
+of ISO2709 is the same.
+
+Change inp argument to const for yaz_read_UTF8_char.
+
+yaz-marcdump: fix leaks for MARCXML parsing. YAZ-694
+
+MARCXML parsing: avoid skipping 1st field if no leader. YAZ-693
+
+Better check of marc leader info YAZ-691
+Problem is that some systems generate MARCXML/MarcXchange with
+funny headers. These will not work if encoded as ISO2709.
+Some tests produce new output, due to updated warning messages
+
+cql2pqf: allow PQF queries from stdin (because CQL is also allowed)
+
+yaz-client: display MAB records YAZ-689.
+Thanks for Heiko Jansen for this patch.
+
+New utility z_get_HTTP_Response_server which allows both HTTP server name
+and HTTP server URL to be given in response.
+
+Debian: do not depend on obs tcl8.3.
+
+Debian: do not depend on obs libicu36-dev.
+
+--- 4.2.68 2013/09/23 
+
+GFS: pass additionalSearchInfo to search memeber search_input if
+given. Otherwise pass otherInfo. Request for facets and other search
+related things will be passed there in future versions of YAZ.
+
+New ZOOM setting, authenticationMode, which allows authentication
+paramters to be encoded in the URL rather than via HTTP Basic auth.
+YAZ-686
+
+rpn2solr: fix nested AND/OR handling. YAZ-685
+
+Add comparison routines for some Z-types, such as NamePlusRecord,
+RPNQuery, Query, RecordComposition and OtherInformation.
+
+--- 4.2.67 2013/09/19 
+
+Don't decode MAB as MARC. Just like we don't attempt to decode
+HTML/XML as MARC. Fixes MAB display problem that was introduced in 4.2.64.
+
+CCL: allow quoted terms for date ranges. YAZ-681
+
+Introduce ccl_parser_qual_search. This function makes old function
+ccl_qual_search, from YAZ 2, available again.
+
+Add yaz_facet_list_to_wrbuf. YAZ-683
+
+--- 4.2.66 2013/09/11
+
+ZOOM: fix record handling for Solr. ZOOM_record_get would return 0, if
+schema was given for search. YAZ-675
+
+Add Solr date range searches. YAZ-621
+
+--- 4.2.65 2013/08/22
+
+ZOOM: another fix for record caching (introduced in YAZ 4.2.64).
+
+--- 4.2.64 2013/08/21 (Broken WRT ZOOM C, do not use)
+
+ISO2709/MARC parse most octet aligned records; not just those that
+are known to be ISO2709/MARC. This makes ZOOM and yaz-client
+MARC parse more records instead of just dumping as is. YAZ-670
+
+ZOOM: proper caching for variations of record schema. YAZ-671
+
+Solr: Check for enging / and perhaps commands (select/term) YAZ-651
+
+--- 4.2.63 2013/07/17
+
+Add yaz_strcmp_null
+
+--- 4.2.62 2013/07/11
+
+New utility z_get_HTTP_Response_details - an extended version of
+z_get_HTTP_Response.
+
+New utility yaz_url_get_error which returns error message of last
+failed yaz_url_exec call.
+
+yaz-url and url functions: allow max HTTP redirects to be controlled.
+
+New functions yaz_file_glob2, yaz_xml_include_glob.
+These functions takes a flags parameter, which, for now only controls
+whether to fail inclusion of a non-existing file (without glob
+pattern) - flags YAZ_FILE_GLOB_FAIL_NOTEXIST.
+
+--- 4.2.61 2013/06/20
+
+For MARC XML parsing, allow record without leader. A fake/default leader
+is inserted and a warning is tagged with the record.
+
+ICU: fix leak in in icu_iter_get_org_info.
+
+--- 4.2.60 2013/06/14
+
+ICU: fix bug in icu_iter_get_org_info (un-init variable).
+
+--- 4.2.59 2013/06/11
+
+Implement z_HTTP_header_remove.
+
+--- 4.2.58 2013/06/11
+
+ICU: Disallow 0 ptrs for some ICU string utilities.
+
+ICU: new utilities icu_iter_get_org_info and icu_chain_get_org_info:
+returns original tokens (before normalization).
+
+CCL: avoid z39.58/regex truncation when not needed. Apply only the
+conversion of those masks, when absolutely necessary.
+
+CCL: configurable masking character - @mask. Default masking character
+is # for CCL.
+
+HTTP encoding: remove Transfer-Encoding header. YAZ uses content_len and
+full response anyway, so a Transfer-Encoding header will obstruct the
+response.
+
+--- 4.2.57 2013/05/15
+
+COMSTACK: @ uses AF_UNSPEC . But we prefer AF_INET6 over others when
+picking a socket. Problem is that some systems has IPV6 support, but
+we can't create sockets for them, so we pick AF_UNSPEC first.
+
+HTTP encode. Proper Content-Length YAZ-660. For yaz_encode_http_response
+use content_len to determine resulting Content-Length in HTTP response
+and NOT Content-Length supplied in headers by user.
+
+z_HTTP_header_add_basic_auth uses z_HTTP_header_set rather than
+z_HTTP_header_add, to avoid having two Authorization headers by mistake.
+
+Fix problem with HTTP decoding. For HTTP 1XX, 204, 304 assume no
+content-length.
+
+Fix yaz_base64decode to use proper signed. Problem occurred on platforms
+with big endian and unsigned char (by default).
+
+--- 4.2.56 2013/04/26
+
+Fix yaz-client connect (crash in 4.2.55).
+
+--- 4.2.55 2013/04/26
+
+Fix proxy/host problem for ZOOM that could occur if unix sockets
+was in use.
+
+New Debian package libyaz4-dbg.
+
+Fix problem with cs_close hang/wait in SSL mode. Invoke gnutls_bye
+differently in tcpip_close.
+
+--- 4.2.54 2013/04/17
+
+Windows installer of YAZ includes YAZ4J as a component.
+
+CQL: allow "extra terms" again, by default. Thus, the CQL parser
+accepts a superset the standard. This reverts to CQL as of YAZ 4.2.51
+and earlier. CQL parser may operate in strict mode where queries
+not conforming to the standard BNF are rejected (syntax error).
+Whether the CQL parser operates in strict mode is controlled with
+cql_parser_strict . Strict mode enabled with option -S for utilities
+cql2pqf and cql2xcql .
+
+yaz-ztest: returns OPACXML records for syntax=XML and element set=OP.
+
+--- 4.2.53 2013/04/10
+
+New charset, MARC-8c, which is like MARC-8 but allows control characters
+0x01 through 0x1F, except ESC to be passed through verbatim.
+
+Fix a problem with duplicate sub field character in MARC output. Problem
+happened only when output was MARC-8 encoded.
+
+--- 4.2.52 2013/04/03
+
+yaz-ztest: Use hash for fake hit count. Before, random number was used.
+This is problematic for unit tests using yaz-ztest. This patch also makes
+a hash for CQL queries. For RPN, any term with a leading digit will be
+treated as pseudu hit count (to force any particular hit count by a client).
+
+yaz-ztest: return unique MARC dummy records. Beyond record offset
+24, the author surname is patched with offset to make all records
+unique.
+
+COMSTACK: make @ bind to IPV6+IPV4 consistenly and avoid depending
+on system wide default (/proc/sys/net/ipv6/bindv6only).
+@4 binds to IPV4 only. @6 binds to IPV6 only.
+
+Update CQL API documentation a bit
+
+CQL: don't accept extra terms for queries. Makes the CQL parser
+stricly conformant to the standard.
+
+--- 4.2.51 2013/02/12
+
+GFS: scan handler gets extra_args from request and may return extra
+response data . That's for SRU only.
+
+Solr scan support for ZOOM and yaz-client. Patch from Simon Jacob.
+
+--- 4.2.50 2013/01/30
+
+New function, yaz_xml_to_opac, to convert from OPACXML to Z39.50 OPAC.
+
+OPACXML: sync spelling of availabilityDate in XML to that of Schema
+opaxxml.xsd. The schema had the correct spelling of this member always.
+The ASN.1 was mis-spelled and still is (API change) - we are
+not changing this. However, the OPAC to XML conversion had yet
+*another* typo.
+
+GFS: Allow conversion between Z39.50 OPAC and OPACXML via retrieval
+element.
+
+New function, z_ext_record_oid_nmem, which is similar to
+z_ext_record_oid but takes NMEM rather than ODR
+
+--- 4.2.49 2013/01/18
+
+ICU: New conversion element 'join' which joins tokens into one
+with a custom character given by rule attribute.
+
+--- 4.2.48 2013/01/10
+
+New GFS search member: present_number. This is a hint to the
+search handler how many records are going to be fetched immediately
+following search. There's no guarantee that it's going to be the case,
+since it depends on hit count (for Z39.50 piggyback) and whether errors
+turn up.
+
+Make a few functions static (private). The functions getbyte_stream,
+ungetbyte_stream and yaz_gets are now private. They were never declared
+in a header file.
+
+yaz-marcdump: exit(5) for serious decoding errors
+
+ISO2709 decoding: be more picky WRT header
+
+GFS: bail out of fetch if last_in_set is set. Until now, last_in_set,
+was only used as to indicate that next-result-set-position should be
+set to zero.
+http://www.loc.gov/z3950/agency/markup/04.html#Next-result-set-position
+Based on patch from Ashley Sanders.
+
+Make some functions static/private in PQF parsing. Those functions were
+never declared in a public header and so should not be in use by
+applications based on YAZ.
+
+--- 4.2.47 2012/11/23
+
+ZOOM: special options to control APDU logging.
+Using ZOOM_connection_option_set(c, "saveAPDU", "1") will enable
+logging of APDUs until "saveAPDU" option is set again. If logging is
+already enabled the effect is that current APDU buffer is cleared.
+Using ZOOM_connection_option_set(c, "saveAPDU", "0") disables
+logging (default behavior on new connection).
+The APDUs sent/received can be obtained by using
+Using ZOOM_connection_option_get(c, "APDU") or
+ZOOM_connection_option_getl(c, "APDU", &l).
+
+GFS: relay implementation_version from backend
+From 3.0.40 and later, implementation_version from backend was
+not used in init response at all.
+
+--- 4.2.46 2012/11/15
+
+Fix cs_rcvconnect for SSL comstack GNUTLS. Did not work in non-blocking
+mode at all. Probably never did.
+
+Make a new version of ztest.pem that, at least, is not expired.
+
+--- 4.2.45 2012/11/13
+
+Fix description of CCL directive 'case'.
+
+More tight checking of form arguments (yaz_uri_to_array). Makes
+YAZ better at rejecting big and/or bad POSTs.
+
+SRU decoding does not report more than up to 10 invalid arguments.
+
+rpn2cql: less quotes in generated terms. Semantics unchanged, but
+it's prettier this way.
+
+--- 4.2.44 2012/10/25
+
+New utility yaz_decode_init_diag. Defined in proto.h.
+
+Allow HTTP protocol on unix local socket. Also Z39.50 database may be
+given for unix local socket.
+    The COMSTACK string for doing so is:
+    unix:<spec>:<uri>
+    Examples:
+      unix:/myfile:tcp:localhost:9999/mybase
+      unix:/myfile:localhost:9999/mybase
+      unix:/myfile:http://fakehost/mybase
+
+debian: Use dpkg-buildflags in build process.
+
+--- 4.2.43 2012/10/19
+
+ZOOM C: don't trust recordPosition always. Some servers, such as IGI
+global's SRU service uses a recordPosition scheme starting from zero.
+First record's position should be one
+according to the standard.
+
+--- 4.2.42 2012/10/18
+
+Allow more namespaces for SRU. This is to allow, for example, an
+incorrect namespace returned from server
+http://services.igi-global.com/sru .
+
+Minor fixes for compilation on Windows.
+
+--- 4.2.41 2012/10/11
+
+daemon: log total number of bad signals from child on stop so that it
+is more easy to spot problems with child worker processes.
+
+retrieval: empty backend name attribute omits element set
+from being used in retrieval.
+
+--- 4.2.40 2012/10/04
+
+Implement Solr sort strategy "solr", similar to sru11 sorting. 
+This will implement the correct parameters on Solr requst to do 
+native sorting.
+
+--- 4.2.39 2012/09/28
+
+Implement ccl_qual_fitem2. Like ccl_qual_fitem but with diagnostic
+string returned.
+
+MARC: Extra/missing indicator handled for MARCXML.
+The indicator length is given in header and is the same for the
+whole record. If attributes ind1, ind2 are missing, then content
+character defaults to blank.  Extra indicator attributes (beyond)
+indicator length are treated as an error.
+
+Reformat: delete trailing whitespace
+
+--- 4.2.38 2012/09/17
+
+MARC: fix non-ASCII characters for leader. This is to ensure we can
+generate XML in UTF-8.
+
+CCL: new special attribute s=ag . Almost s=pw,al but preserves words
+in one node with structure word.
+
+--- 4.2.37 2012/09/04
+
+yaz-json-parse: JSON output may be pretty printed by using option
+-p twice.
+
+Increase default value of max message for Z39.50 Init for GFS, ZOOM
+and yaz-client. Old value was 1 MB. New value is 64 MB.
+
+--- 4.2.36 2012/08/22
+
+yaz-client: don't display bogus records from SRU servers. Some SRU servers
+return more records than given by *maximumRecords*. Skipping those in
+display!
+
+record_render: simplify buffer return handling and fix at least one bad
+memory reference, that broke the test_embed_record sometimes.
+
+Allow http://user:pass@host notation for yaz_url_exec.
+
+zoomsh: allow shell command to be executed. Via the system(3) call.
+
+yaz_poll: Allow num_fds == 0
+
+yaz-client: fix bad encoding of "itemorder item". The itemorder
+item <no>  - command forgot to use length of encoded Item Request
+package. Error present since YAZ 3.
+
+yaz-ztest: fix bad usage of session handle. Bug was introduced when
+result sets were saved (271a9c83).
+
+SRU recordPacking: guess record packing in response rather than looking
+at the recordPacking element which, OF COURSE, changed semantics in SRU
+2.0.
+
+Decode SRU 2.0 responses. The official namespace for responses, according
+to http://docs.oasis-open.org/search-ws/searchRetrieve/v1.0/cs01/schemas/sruRes
+appears to be http://docs.oasis-open.org/ns/search-ws/sruResponse .
+nature.com's server, however, usee namespace
+http://docs.oasis-open.org/ns/search-ws/sru-2-0-response . For this reason
+we are now using a glob-expr to match up the namespace. ZOOM C and
+yaz-client updated. Perhaps SRU 1.2 uses same namespace, I don't know.
+I can not find a single real example showing the "real" namespace in
+the documentation from OASIS. The namespace for requests is different
+from responses, but this is not added to YAZ yet, when we don't encode
+them yet.
+
+--- 4.2.35 2012/06/26
+
+zoom/record_render: add support for Base64 decoding fo MARC records
+within XML element. For example: "xml; charset=marc-8; base64=/my/text()"
+which will decode base64 + ISO2709 marc-8 encoded material from text node
+under /my .
+
+--- 4.2.34 2012/06/07
+
+Add missing definitions ZOOM_resultset_get_facet_field_by_index
+and ZOOM_resultset_facets_names.
+
+zoom: fix bad free for ZOOM_connect - happened when ZOOM connection
+options was in use.
+
+Change APDU dump printing to avoid long leading blanks. For levels 16
+or larger the level is shown and the indentation is truncated but
+recursed with modula 8. This makes it still reasonable easy to read
+- even for nested BER dumps.
+
+Fix bug completeBER_n WRT too nested BER. Function completeBER_n could
+return 0 (incomplete package) in case where the BER package was
+considered too nested (return value of -2).
+
+dumpber: lines of level 15 are not indented further. Two spaces per
+indentation; indentation 15 or more is indented to a fixed indentation
+and augmented with a level=<no> indication.
+
+zoomsh: increase max size of command+args
+
+GFS: No limit in RPN buf size in CQL to RPN conversion.
+
+--- 4.2.33 2012/05/09
+
+New function for daemon utility, yaz_daemon_stop .
+
+Makes yaz_srw_sortkeys_to_sort_spec public on Windows.
+
+--- 4.2.32 2012/04/25
+
+Add some Bib-1/SRU diagnostics + mappings. Bib-1: 1073 and
+Bib-1 1074: Proxy failure. SRU: 1074: Proxy failure
+
+--- 4.2.31 2012/04/23
+
+YAZ daemon utility relays SIGUSR1 to child process.
+
+ZOOM: handle trailing slash for Z39.50 urls. Previously localhost:9999/
+would result in en empty database list - which in turn would result in
+encoding failure for search.
+
+Fix reading beyond string in yaz_sort_spec.
+
+--- 4.2.30 2012/04/11
+
+Add two new SRU diagnostics:
+ 236: Access to specified database denied
+ 1015: Init/AC: Maximum number of simultaneous sessions for Userid
+
+Document the very useful ZOOM-C option "apdulog".
+
+CQL to RPN: term may be passed through verbatim. This is enabled with
+truncation.cql . The assumption being that the term is already CQL.
+
+--- 4.2.29 2012/03/20
+
+record_conv: leader spec may be given for marc element.
+The leader spec is given as attribute leaderspec for element marc. 
+For example to convert a MARC21 record from MARC-8 to UTF-8:
+     <marc inputformat="marc" outputformat="marc"
+      inputcharset="marc-8" outputcharset="utf-8 "leaderspec="9='a'"/>
+
+record_conv: allow user-XSLT params. For example:
+       <xslt stylesheet="MARC21slim2DC.xsl">
+          <param name="myparameter" value="myvalue"/>
+          <param name="otherparameter" value="othervalue"/>
+       </xslt>
+
+record_conv: fix error handling for missing marc charsets.
+
+CQL: fix extra terms in wrong order.
+
+--- 4.2.28 2012/03/06
+
+record_conv: modify new API for conversion types. The conversion types
+may be passed in new functions yaz_record_conv_configure_t and
+yaz_retrieval_configure_t.  Removing yaz_record_conv_add_type .
+
+Avoid mixed statement/variable declare; fixes compilation with Visual
+Studio.
+
+--- 4.2.27 2012/02/28
+
+Add non-standard SRU diagnostic: 235: "Database does not exist".
+Couldn't live without it. HTTP 404: "Not found" is just so anonymous.
+Update SRU to Bib-1 diagnostic maps accordingly.
+
+CCL: add two new diagnostics for unsupported masking. The new
+diagnostics are: "Embedded truncation not supported" and
+"Single charcacter mask not supported".  
+
+--- 4.2.26 2012/02/23
+
+CCL: fix use of "term" field in sub queries. Bug introduced in YAZ 4.2.25.
+
+--- 4.2.25 2012/01/11
+
+Build YAZ for Ubuntu Oneiric.
+
+CCL: allow parantheses for proximity operands. For example CCL query
+(a) % (b)   is now allowed.
+
+GFS: fix bend_assoc_is_alive. When cs_get returns 0 the association is
+marked dead, rather then being destroyed. If not, the session memory is
+being free'd before the search/scan handler is finished. Also destroy
+'request' memory in request_release rather than in various places,
+which resulted in leaks from time to time.
+
+--- 4.2.24 2011/12/21
+
 cql_sortby_to_sortkeys: honor sort prefix.
 
 RPN to CQL: always quote resulting terms. For bizarre reasons, JSTOR's
 cql_sortby_to_sortkeys: honor sort prefix.
 
 RPN to CQL: always quote resulting terms. For bizarre reasons, JSTOR's
@@ -6,7 +821,7 @@ The rpn2cql family of functions now always returns quoted CQL terms.
 
 Fix CQL to CCL conversion for multiple terms. Add two test cases as well.
 
 
 Fix CQL to CCL conversion for multiple terms. Add two test cases as well.
 
---- 4.2.22 2011/12/15
+--- 4.2.23 2011/12/15
 
 Allow =val to be omitted for yaz_uri_to_array. Also, multiple &'s in
 sequence is treated as one. For example, &&a=b&&&c& is identical to
 
 Allow =val to be omitted for yaz_uri_to_array. Also, multiple &'s in
 sequence is treated as one. For example, &&a=b&&&c& is identical to
@@ -88,7 +903,7 @@ yaz_sort_spec_to_srw_sortkeys, yaz_sort_spec_to_type and 7yaz_sort_spec_to_cql.
 rpn2solr supports Z39.58 truncation (104). Thus, CCL truncation mode t=z
 will make it possible to use both single-character mask (#) and wildcard (?)
 in CCL . Throw diagnostic for left truncation because that is not supported
 rpn2solr supports Z39.58 truncation (104). Thus, CCL truncation mode t=z
 will make it possible to use both single-character mask (#) and wildcard (?)
 in CCL . Throw diagnostic for left truncation because that is not supported
-by SOLR.
+by Solr.
 
 --- 4.2.13 2011/09/01
 
 
 --- 4.2.13 2011/09/01
 
@@ -184,7 +999,7 @@ modified with a new root element <yaz_record> if the recordData contains
 multiple children elements. This is to make the record XML parseable
 afterwards.
 
 multiple children elements. This is to make the record XML parseable
 afterwards.
 
-RPN to SOLR conversion: encode special characters.
+RPN to Solr conversion: encode special characters.
 
 Generic Frontend Server: fix uinitialized member, stepSize.
 
 
 Generic Frontend Server: fix uinitialized member, stepSize.
 
@@ -286,7 +1101,7 @@ so it is appropriate to set Present Status to partial-4.
 
 Move yaz-config man pages to section 1.
 
 
 Move yaz-config man pages to section 1.
 
-More documentation about SOLR.
+More documentation about Solr.
 
 tcp comstack: change behavior for @-specs (anyaddr). @ listens on
 AF_INET (IPV4) peers, and @6 listens to AF_INET6 (ipv6) peers.
 
 tcp comstack: change behavior for @-specs (anyaddr). @ listens on
 AF_INET (IPV4) peers, and @6 listens to AF_INET6 (ipv6) peers.
@@ -305,7 +1120,7 @@ Fix yaz-config output: echo_source not set correctly by configure.
 
 --- 4.1.0 2010/10/05
 
 
 --- 4.1.0 2010/10/05
 
-SOLR WebService support for yaz-client and ZOOM.
+Solr Web Service support for yaz-client and ZOOM.
 
 Define record syntax JSON. OID: 1.2.840.10003.5.1000.81.3 .
 
 
 Define record syntax JSON. OID: 1.2.840.10003.5.1000.81.3 .