Version 1.5.7
[metaproxy-moved-to-github.git] / NEWS
1 --- 1.5.7 2014/07/15
2
3 http_file: passthru option MP-557
4 New facility for http_file to passthru - even if an area is matched. The
5 default behavior (passthru=false) is to return 404: Not found. With
6 passthru=false, next filter is consulted.
7
8 --- 1.5.6 2014/07/14
9
10 Fix ref to freed memory in log filter 1line - MP-556
11
12 echoedSearchRetrieveRequest support MP-555
13
14 --- 1.5.5 2014/06/06
15
16 zoom: allow hostname to be given for ipauth MP-552
17 The Torus setting for that is called auth_hostname.
18
19 --- 1.5.4 2014/06/04
20
21 zoom: IP auth use field "ipRanges" rather than "ip" MP-551
22
23 --- 1.5.3 2014/06/03
24
25 session_shared: close in ~BackendInstance MP-549
26 This fixes a serious issue where some MP would leak sockets.
27
28 session_shared: mutex lock in BackendClass::release_backend MP-550
29 Fixes a SEGV that could occur (in rare cases).
30
31 --- 1.5.2 2014/05/22
32
33 zoom: Do not include ZOOM C's fake surrogate diag recs MP-547
34
35 zoom: fix invalid present response in some cases MP-546
36
37 zoom: Relay Torus HTTP error message
38
39 --- 1.5.1 2014/04/28
40
41 Check for proper limits before using RecordCache functions MP-544
42
43 --- 1.5.0 2014/04/24
44
45 Build packages for Ubuntu Trusty Tahr 14.04 LTS
46
47 sort: crash / invalid_read in filter sort MP-541
48
49 sru_z3950: facet should be stored in additionalSearchInfo MP-533
50
51 doc: fix missing man pages MP-542
52
53 cql_rpn: fix threading problem with CQL to RPN conversion MP-497
54
55 cql_rpn: allow conversion from RPN to CQL (reverse) MP-537
56
57 --- 1.4.8 2014/04/02
58
59 sru_z3950: fix facet response (memory corruption) MP-532
60
61 log: fix crash idPass user is omitted MP-530
62
63 --- 1.4.7 2014/03/25
64
65 query_rewrite: pass-thru non Type-1 queries MP-527
66
67 metaproxy stop (SIGTERM) kills all child processes spanwed by
68 filter (if any) before invoking filter destructors. MP-525
69
70 --- 1.4.6 2014/03/21
71
72 http_file: only supports HTTP GET MP-523
73
74 session_shared: shut down expire thread in destructor
75 This ensures that expire thread is not running after destruction
76 and does bad memory references, etc.
77
78 frontend_net: fix segfault on startup MP-524
79 Would happen if MP was listening on multiple ports and one
80 of the ports was already in use (and MP would exit).
81
82 frontend_net: fix memory leak MP-521
83 This leak would occur if all sessions were in use and the input
84 queue was cleared when a client would close connection (socket).
85
86 frontend_net: fix compilation on Windows (SIGUSR1 does not exist)
87
88 --- 1.4.5 2014/03/14
89
90 http_rewrite: use local skiplist; fixes memory corruption. MP-520
91
92 http_client: x-forwarded-for controls X-Forwarded-For presence
93 If x-forwarded-for setting (boolean) is enabled, http_client will
94 generate an X-Forwarded-For header entry which includes existing
95 X-Forwarded-For (if any) and current peer address (immediate client
96 of Metaproxy). By default x-forwarded-for disabled and X-Forwarded-For
97 will not be generated.
98
99 z3950_client: client_ip controls client-IP presence
100 If client_ip setting (boolean) is enabled, z3950_client will
101 generate a client_ip OID as part of init request which includes
102 previous client_ip (if any) and current peer address (immediate
103 client of Metaproxy). By default client_ip is disabled and client_ip
104 will not be generated.
105
106 HTTP X-Forwarded-For/Z39.50 Client-IP support
107 virt_db, multi: relays Z39.50 client-IP.
108 sru_z3950: converts X-Forwarded-For header to Z39.50 client-IP.
109 zoom: uses Client-IP or origin address (prefer Client-IP).
110 frontend_net: Strips tcp: from peer address (so that it is no longer
111 printed and stripped in zoom filter).
112 z3950_client: builds client-IP list - combining immediate peer address
113 as returned by COMSTACK and existing client-IP list (if avaiable).
114 The Origin only printes first X-Forwarded address.
115
116 --- 1.4.4 2014/02/18
117
118 Log when SIG{TERM,USR1} is received ASAP MP-513
119 Do it in frontend_net event loop rather than in place for metaproxy
120 main, which only exits when all sessions are terminated for SIGUSR1
121 at graceful stop.
122
123 metaproxy-config: quote some RHS values (that might include blanks)
124
125 Fix leak in sru_z3950 filter - when explain is returned MP-511
126
127 Allow stylesheet to be given for sru_z3950 filter MP-510
128 This is based on a patch by Sven Porst and the functionality
129 of the YAZ Generic Frontend Server.
130
131 Allow base attribute in configuration file tags - the attributes are
132 inserted by XInclude usage as mentioned on
133 yazlist: http://lists.indexdata.dk/pipermail/yazlist/2012-Au
134 and noted in a gist: https://gist.github.com/3551094
135
136 Package metaproxy provides virtual package metaproxy6 MP-508
137 This allows module packages to depend on a metaproxy server
138 with version 6 API.
139
140 Filter destructors called upon daemon termination MP-505
141 When metaproxy daemon receives SIGTERM the stop method of each filter
142 is called. The stop method existed before, but did not take any
143 arguements (void).. The frontend_net filter can now distinguish
144 between SIGUSR1 (stop bind, but keep sessions running) and SIGTERM
145 (stop immediately). Note that this changes the API+ABI of Metaproxy
146 filters.
147
148 zoom: sync up with Pazpar2 WRT authentication handling MP-492
149
150 Router: use shared_ptr rather than naked one - to avoid leak if an
151 exception is thrown in configure.
152
153 --- 1.4.3 2013/12/10
154
155 zoom: Add nocproxy=1 for contentConnector sessions MP-501
156
157 Doc: mention proper versions; fix link to Boost win binaries.
158
159 Windows: update for Boost 1.55
160
161 Windows: avoid warning when using boost::split. Done by defining
162 _SCL_SECURE_NO_WARNINGS for Visual Studio.
163
164 Fix LSB conformance for /etc/init.d/metaproxy MP-500
165 Debian: add support for /etc/init.d/metaproxy status
166
167 sort: Add const to Record less than operator in order to compile on
168 OS X Maverick.
169
170 --- 1.4.2 2013/11/15
171
172 session_shared: fix element-set handling in record caching. MP-499
173
174 document http_rewrite. MP-468
175
176 http_write: Honor X-Metaproxy-SkipLink MP-479 . Filter understands and
177 respects the header (which will normally come from the cproxy filter)
178
179 --- 1.4.1 2013/10/31
180
181 RPM: fix dependency for libmetaproxy5-devel MP-496. The libmetaproxy5-devel
182 RPM was unsable in version 1.4.0.
183
184 Remove log message about "backend classes". Appeared in version 1.4.0.
185
186 --- 1.4.0 2013/10/04
187
188 Build RPM/Deb packages with YAZ 5 and yazpp 1.5. Metaproxy still compiles
189 with older version from source, but packages now use YAZ 5 that supports
190 SRU 2.0.
191
192 sru_z3950: Fix SEGV for decoding invalid SRU requests
193 Incorrect reference to union (was explain response rather than
194 search response).
195
196 session_shared: match additionalSearchInfo (includes facets). In
197 layman's terms means that means that facets are properly handled
198 by this filter. Eg a change in requested facets will issue new
199 search and facets from exisiting result set are cached.
200
201 --- 1.3.62 2013/09/11
202
203 http_rewrite: better handling of <script> content in HTML parser. MP-486
204
205 http_rewrite: fix threading issue with regex. MP-482
206
207 bounce: don't use strdup for fixed length content. Error occurred in echo
208 mode only.
209
210 session_shared: expire backend class when no instances left. This
211 means memory clean up, but not really a leak fix.
212
213 virt_db: fix leak for naked ptr.
214
215 cql_rpn: use config relative path for cql2rpn file. MP-481
216
217 Updates for upcoming YAZ 5.
218
219 --- 1.3.61 2013/08/29
220
221 New configuration directories ports.d/routes.d for metaproxy
222 configuration. This allows 3rd party packages to install config
223 for ports and new routes. MP-477
224
225 --- 1.3.60 2013/08/21
226
227 Fix metaproxy-config --libs to return non-mt over mt libs.
228 The -mt versions do not exist as shared objects and cause
229 linker errors for applications linking with Metaproxy.
230 Problem present in versions 1.3.56 - 1.3.59. MP-475
231
232 HTML: clean up char checks. Add ptr to HTML parse spec
233
234 HTML parser stops eating tag when <-char is met  MP-473
235
236 rewrite: do not even compare content types, if we don't have any
237 the regex_match caused a segfault if we had no content-type in the
238 headers. MP-471
239
240 rewrite: within header=... matches only the header value
241 Used to match the whole header line, but we need to use
242 ^$ anchoring for host-relative regexps, and they need to
243 anchor at the ends of the value. MP-470.
244
245 rewrite: Ruleset functional MP-469
246
247 --- 1.3.59 2013/07/12
248
249 session_shared: negotiate init sz parameters.
250 By default, session_shared will honor the paramters given by client.
251 An alternative, but not implemented, algorithm would be to only
252 re-use sessions with same sz parameters. This however, could reduce
253 re-use of sessions a lot. Hence this, simple algorithm instead. The
254 negotiation to a maximum sz values can be enabled by using
255    <init maximum-record-size="sz1" preferred-message-size="sz2"/>
256 in configuration. This will make session_shared send those values
257 to backends and use returned init values in negotaition to
258 client before session_shared.
259
260 session_shared: resolve result-set references.
261 The reference is substitued with the query for old set if database
262 match and query type is Type-1. If not the reference will issue a
263 diagnostic.
264
265 sort filter: relays RecordComposition including elementSet in use for
266 search.
267
268 http_client: better diagnostics
269
270 http_client: disables HTTP redirect handling by default.
271 It can be configured with max-redirects in configuration.
272
273 --- 1.3.58 2013/06/12
274
275 Fix loading of filters cql_rpn and sru_z3950 . Was broken by 1.3.57.
276
277 --- 1.3.57 2013/06/12
278
279 Make RouterChain and RouterXML part of public API (libmetaproxy).
280
281 http_client: honor X-Metaproxy-Proxy as an alternative to
282 the "proxy" configuration. Allows proxy to be set per HTTP request.
283
284 sru_z3950: For SRU requests recognize x-client prefixes as a way
285 to ingest "database parameters".. The suffix of x-client- serves
286 as database argument name. Multiple may be given. For example:
287   http://path/db/?operation=searchRetrieve&x-client-user=a&x-client-password=b
288 is turned into Z39.50 database
289   db,user=a&password=b
290
291 --- 1.3.56 2013/05/27
292
293 New filter present_chunk. This filter allows splitting of present requests into smaller chunks.
294
295 New filter sd_remove, which replaces surrogate diagnostics with
296 SUTRS records. This filter tries to deal with clients that breaks
297 when receiving surrogate diagnostics.
298
299 new filter http_client. Same role as z3950_client, but just for
300 HTTP. Allows Metaproxy to operate as a HTTP proxy.
301
302 New filter http_rewrite1, which serves as purpose on how to rewrite
303 HTTP content with Metaproxy.
304
305 Use libboost-system if available, because newer versions of libboost-threads
306 requires libboost-system.
307
308 Allow frontend_net to serve SSL/HTTPS, because we can specify a server
309 certificate now.
310
311 --- 1.3.55 2013/04/10
312
313 zoom: Torus setting: authenticationMode which may hold values "basic"
314 and "url".
315
316 --- 1.3.54 2013/03/27
317
318 configure: check for Libxslt support in YAZ and rely on definitions
319 from yaz-config, rather than doing own xslt/xml2 checks.
320
321 Allow timestamp format for log lines to be given with option -m
322 for metaproxy. Similar to yaz-ztest/GFS option -m.
323
324 Document log category 'line' for log filter.
325
326 Solr configuration example in etc/config-solr.xml
327
328 multi: do not mess with request package. For scan and search,
329 database-names were modified and the request package was left with
330 dangling pointers that caused a log filter to fail (request package
331 inspected after multi was invoked).
332
333 Documentation: fix id of metaproxy-config ref .
334
335 Documentation: update for USEMARCON support.
336
337 --- 1.3.53 2013/01/31
338
339 record_transform: allow OPACXML to OPAC conversion
340
341 zoom: document content-proxy
342
343 zoom: document db parm content-{user,password}, torus_url. Also
344 <torus auth_url="..> which makes zoom operate in authenticated mode
345 via Torus lookup.
346
347 --- 1.3.52 2012/11/30
348
349 zoom: fix http://-check. SRU search broken in 1.3.51.
350
351 --- 1.3.51 2012/11/15
352
353 zoom: only append http:// for SRU if not already given . Makes it
354 possible to use https-URLs.
355
356 Use yazpp 1.4 or later due to new ABI.
357
358 frontend_net: allow max package size to be specified. Controlled by
359 attribute 'max_recv_bytes' of element 'port'.
360
361 --- 1.3.50 2012/10/29
362
363 For most generated diagnostics by filters, typically temporary
364 system error, augment addinfo message with filter name.
365
366 Add support for CentOS 6 packages.
367
368 sru_z3950: interpret Z39.50 diagnostics part of Init Response.
369
370 Add man page for metaproxy-config.
371
372 --- 1.3.49 2012/10/18
373
374 zoom: new config element passthru. This defines an element set that is
375 passed verbatim to the backend in pz2 mode.
376
377 auth_simple: allow both idPass and open auth. Also fix SEGV that could
378 occur for open auth.
379
380 --- 1.3.48 2012/10/08
381
382 z3950_client: fix string handling for init diagnostics in the case where
383 addinfo was absent.
384
385 query_rewrite: no charset conversion for error queries. Avoid performing
386 charset conversion for query conversion errors. The resulting Type-1
387 query is invalid in this case.
388
389 --- 1.3.47 2012/10/04
390
391 For graceful stop (SIGUSR1), metaproxy will kill children processes.
392
393 Log when metaproxy is invoked in test mode (-t).
394
395 Log PID for each log message.
396
397 multi: combine both NSDs and multiple NSDs into one (diagnostics).
398
399 z3950_client: fixup multiple NSD's too. Like surrogate diagnostics,
400 a (backend=target) is appended for each diagnostic so that can be
401 determined the origin of error.
402
403 multi: hideerrors also in use for present response.
404
405 Solr example in zoom man page.
406
407 Fix typo in query_rewrite config example.
408
409 Log at least first non surrogate diagnostic. Instead of
410 "Z_Records_multipleNSD"
411
412 multi: Fix check for opt Records in present response. A SEGV could occur
413 if a target did not return records and no diagnostics.
414
415 --- 1.3.46 2012/09/24
416
417 Yet another fix for graceful stop.
418
419 --- 1.3.45 2012/09/12
420
421 sru_z3950: relay surrogate diagnostics.
422
423 --- 1.3.44 2012/09/10
424
425 zoom: Honor extraArgs, strip # in zurl.
426
427 multi: fix SEGV for scan. Reported by Rustam T. Usmanov.
428
429 zoom: url_recipe allow %{var[reg]} substitutions.
430 It's like ${var[reg]} but does URI component encoding as well.
431
432 --- 1.3.43 2012/08/22
433
434 RPM/Deb: require yazpp 1.3.2, because it fixes a missing close of
435 non-keepalive HTTP sessions.
436
437 http_file: allow zero size files (bug fix)
438
439 Fix zoom schema: auth_url is optional
440
441 --- 1.3.42 2012/08/20
442
443 zoom: fix un-init memory (could result in SEGV at session close)
444
445 frontend_net: handle X-Forwarded-For. This is stored in package.origin()
446 and may be used in filters as usual.
447
448 zoom: authentication via Torus lookup
449 Enabled by new configuration setting: auth_url . If this is defined,
450 the zoom module will contact Torus for auth/IP lookup and that will
451 define realm to be used in session.
452
453 --- 1.3.41 2012/08/10
454
455 virt_db: Fix database name - first character we removed by mistake.
456 Bug introduced in 1.3.40.
457
458 --- 1.3.40 2012/08/06
459
460 virt_db: Don't use "unix path" as database for Unix sockets.
461
462 --- 1.3.39 2012/08/02
463
464 z3950_client: Don't tamper with / in zurl - fixes problems
465 using Unix sockets for backends.
466
467 session_shared: fix integer overflow problem with hit count.
468
469 session_shared: avoid long usage of cached queries.
470
471 zoom: New database argument , torus_url to set URL of Torus
472 record to be fetched.
473
474 --- 1.3.38 2012/07/04
475
476 Fixes for 'metaproxy reload' for RPM/Debian packages. 
477
478 zoom: Allow rpn2cql conversion to be augmented with a properties file.
479 Element rpn2cql can be specified per-target for the zoom filter.
480
481 log: New category "line" which is a single-line log message with
482 most important parts of a HTTP/Z39.50 request/response.
483
484 --- 1.3.37 2012/06/01
485
486 frontend_net: add facility to report live statistics about response
487 times and current thread usage. The report is an XML document
488 and is triggered for a specific URL path. This is set by <stat-req>
489 in the configuration of frontend_net. By default this report is
490 disabled (same as empty value for <stat-req>).
491
492 Fix reload problem in init.d script for RPM/Debian. 
493 The '/etc/init.d/metaproxy reload' in some cases would stop but not
494 start metaproxy - effectively stopping the service.
495
496 Don't display start log message when config testing (-t).
497
498 zoom: avoid CCL message limit of 1K in ZOOM filter.
499
500 --- 1.3.36 2012/05/10
501
502 metaproxy init script reacts to reload which does graceful stop +
503 start and is used by logrorate script.
504
505 --- 1.3.35 2012/05/09
506
507 Fixes for Windows compilation.
508
509 Metaproxy daemon reacts to SIGUSR1 in which case it will leave
510 existing sessions running but terminate the monitor process that is
511 used in keepalive mode.
512
513 Change start log message to 'metaproxy start'. Was 'Metaproxy start'
514 before. Consistent with 'metaproxy stop' message.
515
516 zoom: document zoom's proxy_timeout
517
518 z3950_client: fixup addinfo for init response
519
520 virt_db: return other diagnostic if init is rejected. Diagnostic 236:
521 "Access to specified database denied" is returned, but only if init
522 response from backend does not carry diagnostics already.
523
524 multi: relays user info for first rejected target. The other-information
525 field for init response for first rejected target is in common init
526 response. This ensures that some backend init diagnostics are returned to
527 the frontend.
528
529 --- 1.3.34 2012/04/25
530
531 frontend_log: extend logging (when message is given in config).
532
533 --- 1.3.33 2012/04/25
534
535 zoom: Fix check for proxy. Use diagnostic 1074 for proxy failures.
536
537 --- 1.3.32 2012/04/24
538
539 sru_z3950 filter passes through incoming Z39.50 requests again. Was
540 not handled by mistake in Metaproxy versions 1.3.29, 1.3.30 and 1.3.31.
541
542 --- 1.3.31 2012/04/24
543
544 zoom: fixes for retry/proxy failover logic. More logging.
545
546 --- 1.3.30 2012/04/23
547
548 zoom: return addinfo="proxy failure" for proxy failures. This also
549 changes the scheme for dealing with proxies a bit.  zoom now always
550 do proxy check, even if there's no failover. Fortunately, that's not
551 very expensive.
552
553 zoom: Init rejected wo diagnostics maps to Bib-1:1014.
554 Bib-1 1014, "Init/AC: Authentication System error", seems pretty
555 generic. We don't know why the init would fail; IP, user, block IP, etc.
556 sru_z3950 filter maps this to SRU diagnostic 3: "Authentication error".
557
558 zoom: guess if invalid SRU response was an auth failure
559
560 session_shared: disable session retry by default . Can be enabled by
561 restart="true" in resultset section.
562
563 --- 1.3.29 2012/04/18
564
565 zoom: may read cf-proxy's config settings.
566 This reduces manual configuration of the content proxy server host.
567 The ZOOM module will use the old style session.proxyhost if "server"
568 is given (deprecated) and use the new style proxyhost/session if
569 "config_file" is in use.
570
571 frontend_net: remove incoming requests that can not be handled
572 Requests in queue for filter frontend_net are removed if client
573 closes connection for the session and request is not yet handled.
574
575 sru_z3950: serialize requests. This is to ensure that pipelined
576 HTTP requests are handled properly.
577
578 --- 1.3.28 2012/04/04
579
580 New class, wrbuf, that wraps YAZ' WRBUF.
581
582 --- 1.3.27 2012/03/30
583
584 Metaproxy daemon is now running as user "metaproxy". This user is
585 managed by package maintainer scripts. The user information is stored
586 in /etc/metaproxy/metaproxy.user . 
587
588 --- 1.3.26 2012/03/20
589
590 New filter, sort, that allows sorting of XML records via Z39.50
591 retrieval.
592
593 Filter record_transform: USEMarcon support. For example:
594   <retrieval syntax="usmarc">
595      <backend syntax="unimarc" name="F">
596        <usemarcon stage1="/etc/usemarcon/uni2us/uni2us.ini"/>
597      </backend>
598   </retrieval>
599
600 Filter multi: empty route pattern uses route as default.
601   That is
602    <target route="z3950.indexdata.com">z3950.indexdata.com</route>
603   may use the shorter notation
604    <target route="z3950.indexdata.com"/>
605
606 Filter query_rewrite: use config path to locate XSLT.
607
608 Filter frontend_net:  log statistics.
609 If a custom message element in frontend_net configuration it makes
610 the frontend_net filter produce a log entry whenever an operation
611 is completed. The log is always written using yaz_log with the
612 custom message given, the package ID (session ID) , the time
613 the operation has been active (end-to-end) , the threads currently
614 active/total and the size of the request input/output queues.
615
616 query_rewrite: charset conversion of query terms.
617 This is an optional feature. Enabled by element <charset> in
618 configuration with attribute 'from' and 'to' that specifies
619 from/to encodings. The default 'from' encoding is UTF-8.
620
621 Filter record_transform: honor piggyback searches.
622
623 Filter zoom: re-connect when database is reused.
624 Re-connect is necessary if a connection is lost or a timeout occurs.
625 If not, we'll be seeing zero hits, when we shouldn't.
626
627 --- 1.3.25 2012/02/29
628
629 zoom: Change scheme for dealing with content proxy URLs. The module
630 now has its own common XSL transform that is enabled by record_xsl
631 attribute in the configuration. This XSL gets parameter cproxyhost
632 that holds the host for the content proxy session . The genearted-url
633 is created only if urlRecipe is enabled. In previous version default
634 value of urlRecipe was ${md-electronic-url}; it is now empty and
635 disabled by default. Also generated-url no longer includes the content
636 proxy host. Content proxying URLs is supposed to the handle in the record_xsl
637 stylesheet.
638
639 zoom: new setting timeout that specifies timeout for outgoing Z39.50/SRU
640 connections. Default value is 40 (seconds).
641
642 zoom: tune CCL to Z39.50 diagnostics mapping. Throw Bib-1: 108
643 "Malformed query" for syntax errors and related ones; throw
644 Bib-1: 3 "Unsupported search" for everything else. Details from
645 the CCL parser is provided as additional-info.
646
647 multi: new setting hideerrors that makes multi only relay diagnostics
648 to a client if all backends fail.
649
650 --- 1.3.24 2012/02/23
651
652 zoom: empty ccl_map field-mappings disables CCL map.
653
654 zoom: fix Explain search that could return error if session was
655 re-used.
656
657 --- 1.3.23 2012/02/10
658
659 zoom: returns Explain records for database IR-Explain---1. The
660 target profile records are converted to Explain records via XSLT.
661
662 session_shared: make error recovery configurable. Whether a search
663 is restarted on errors or not, is configurable by attribute "restart"
664 in element "resultset" in configuration.
665
666 session_shared: only relay init for first request. session_shared, for
667 each backend class, now only relays first init request (rather than all).
668 The module only needs to save init response info once. This avoids the
669 need to check for session max.
670
671 --- 1.3.22 2012/02/02
672
673 zoom: fix memory leaks.
674
675 session_shared: maximum number of sessons is configurable. Default
676 value is 100. Result-sets for backends without named result sets are
677 only re-used if databases is identical for a search. This is under the
678 assumption that performance may suffer for those backends when
679 changing the database for each search.
680
681 multi: combines diagnostics from all backends. All diagnostics from
682 backends are combined into multiple non-surrogate diagnostics; rather
683 than just one diagnostic from first backend.
684
685 --- 1.3.21 2011/12/27
686
687 zoom: relay realm to cproxy parameter file.
688
689 Configuration: Allow filter collection element inside route. This
690 makes it possible to include multiple filters at once.
691
692 zoom: nocproxy also disables urlRecipe.
693
694 --- 1.3.20 2011/12/21
695
696 zoom: return diagnostic if CQL sortby conv fails.  Diagnostic Bib-1 214
697 "Illegal sort relation" is returned. Gets translated to SRU diagnostic
698 90: "Unsupported direction value".
699
700 zoom: honor database argument nocproxy. This disables creating a content
701 connector session (for non-CF targets, usually) and also relays nocproxy
702 as database argument to a CF target.
703
704 --- 1.3.19 2011/12/16
705
706 zoom: Multiple proxy hosts may be given for proxy rich database 
707 parameter. List is comma separated.
708
709 http_file: decodes URI paths properly. Does not return 404: not found
710 if no prefix are matches. Instead packages are passed on.
711
712 --- 1.3.18 2011/12/08
713
714 zoom: content-{user,password,proxy} are passed on to content proxy
715 system and takes precedence over user,password,proxy .
716
717 sru_z3950: SRU extra argument x-log-enable=1 enables a search response
718 with a log element including log material from children filters. At
719 this point, only the zoom filter uses this log facility. It will
720 eventually be used by other filters as well. In particular it might be
721 useful for this feature to track all filters in used during a search.
722
723 zoom: for x-log-enable=1, APDUs sent by ZOOM C, records as received
724 and queries as they are manipulated are logged.
725
726 zoom:  extend addinfo with native diagnostics. Diagnostics as received
727 by ZOOM C are put into addinfo - including ZOOM, HTTP, SRU and Bib-1
728 diagnostics. This indicates both a backend diagnostic and the original
729 form.
730
731 zoom: default urlRecipe value is ${md-electronic-url}
732
733 zoom: target profile setting sruVersion is recognized.
734
735 --- 1.3.17 2011/11/17
736
737 zoom: log target profile record fetched (AKA Torus).
738
739 --- 1.3.16 2011/11/17
740
741 Change target profile parameter CfSubDb to CfSubDB.
742
743 --- 1.3.15 2011/11/12
744
745 zoom: bug fix: realm was relayed to CF targets by mistake (realm only
746 makes sense to the zoom module itself).
747
748 --- 1.3.14 2011/11/11
749
750 zoom: realm may be given as part of database.
751
752 --- 1.3.13 2011/10/26
753
754 Fix Origin class assigment method; was removd by mistake in 1.3.12.
755
756 --- 1.3.12 2011/10/26
757
758 zoom: database args x-name=value are passed through to backend database.
759
760 SRU filter: user may specify session ID that is passed to log entries
761 that follows. It is specified by using x-session-id in the SRU arguments.
762
763 zoom: fix null pointer reference which would occur for bad url parameter
764 inside "torus" or if url was not given.
765
766 --- 1.3.11 2011/09/09
767 Fix bug in filter session_shared where sessions would not expire
768 properly (session ttl). This in turn could make the target close the
769 connection before expected and session_shared would return diagnostic
770 2: system temporarily available.
771
772 --- 1.3.10 2011/09/09
773
774 zoom: new target profile setting: sortmap_field. If sortmap_field is given
775 the field is mapped to the value for the sortmap. Values not matching
776 sortmap_field are passed verbatim.
777   
778 zoom: new target profile setting: sortStrategy. One of: "z3950", "type7",
779 "cql", "sru11" or "embed". The "embed" chooses type-7 or CQL sortby
780 depending on whether RPN or CQL is actually sent to the target.
781
782 --- 1.3.9 2011/08/25
783
784 zoom: urlRecipe result is stored in <pz:metadata type="generated-url">.
785
786 zoom: For content proxy authentication is stored in param name
787 "auth", instead of "authentication".
788
789 --- 1.3.8 2011/08/22
790
791 zoom: relay schema in SRU mode. Previously recordSchema was not affected
792 by elementSet.
793
794 --- 1.3.6 2011/08/22
795
796 zoom: new target profile element literalTransform that holds XSLT
797 (encoded as string) for target. Only if present and non-zero length it is
798 considered present. This takes precedence over transform.
799
800 Don't rely on trang anymore for Git checkout builds. Configuration in etc
801 will only be properly validated if trang is available. From now on only
802 relax NC files are bundled with the source dist.
803
804 Updates to check for Boost unit test (autoconf stuff). On MacOSX this
805 component was not detected when it should be.
806
807 --- 1.3.5 2011/08/12
808
809 z3950_client: mark non-surrogate diagnostics from backend.
810
811 zoom: a proxy may be specified for HTTP fetch of target profiles.
812
813 --- 1.3.4 2011/08/01
814
815 Honor piggyback. Makes some SRU targets behave that insist on
816 maximumRecords > 0, but also increases performance.
817
818 --- 1.3.3 2011/08/01
819
820 Fix dlpath in installed metaproxy.xml for RPM/Deb package. The
821 file was not update for libdir/metaproxy4 in version 1.3.2.
822
823 --- 1.3.2 2011/08/01
824
825 Change location of Metaproxy modules from libdir/metaproxy to
826 libdir/metaproxy4. Directory libdir/metaproxy is also owned by 
827 libmetaproxy3 and, thus, should not be used by libmetaproxy4.
828
829 New facility to dump APDUs from zoom filter. Enabled by 
830 <log apdu="true"/> in the zoom filter configuation.
831
832 zoom filter bug fix: SRU diagnostics received from backend was
833 not properly converted to Bib-1 diagnostics.
834
835 Package metaproxy depends on libmetaproxy4, same version.
836
837 --- 1.3.1 2011/07/28
838
839 zoom: fix a bug WRT passing authentication parameters to backends.
840
841 --- 1.3.0 2011/07/27
842
843 Fixes for windows Makefile.
844
845 --- 1.2.10 2011/07/25 
846
847 Change major version of metaproxy library from 3 to 4. This in turn
848 makes new package names for Debian and RPM.
849
850 --- 1.2.9 2011/06/27
851
852 zoom: enable marc-8 encoding by default for usmarc and opac (in pz2
853 transforn mode).
854
855 zoom: configurable element sets for record transforms.
856     
857 zoom: the target profile based transform is specified by element_transform
858 in element torus of of the ZOOM filter configuration ; default value
859 is "pz2". Target profile based retrieval is specified by element_raw
860 in configuration. It will perform same steps, but omit the XSL transform.
861 Default value is "raw".
862
863 zoom: element set is omitted if not set in profile. But only if pz2
864 transform is in effect. Previously the default element set was to "F".
865
866 zoom: For non-CF targets database arguments are parsed. User may supply
867 db,user=myuser&password=mypass for non-CF targets. These values override
868 what's given the authentication from the target profile.
869
870 session_shared: fix reference to freed memory. Would occur if a search
871 response had non-surrogate diagnostics.
872
873 --- 1.2.8 2011/06/22
874
875 Route may be given for each port in frontend_net.
876
877 --- 1.2.7 2011/06/22
878
879 Documentation for zoom filter. Local target profiles may be specified.
880
881 Fixes for zoom filter.
882
883 --- 1.2.6 2011/06/15
884
885 First version with zoom filter.
886
887 --- 1.2.5 2011/05/06
888
889 Filter z3950_client may be configured to always send a close APDU
890 to backend target when connection/session is closed. This will only
891 happen if close APDU is not already sent. Enabled by configuration
892 for z3950_client (force_close).
893
894 Filter virt_db and multi: relay close APDU.
895
896 Filter virt_db and multi: relay init size parameters 
897 preferredMessageSize and maximumRecordSize.
898
899 Filter sru_z3950: increase init sz parameters from 1MB to 10 MB.
900
901 --- 1.2.4 2011/01/27
902
903 RPM package for Metaproxy works for both SLES11 and Centos 5.5.
904
905 metaproxy-config: exec_prefix, libdir, includedir. Use these variables
906 as determined by configure.
907
908 RPM: Release includes 'indexdata' name. Use indexdata in release name so
909 this package can be distinguished from other vendors.
910
911 --- 1.2.3 2010/10/04
912
913 Fix filter multi: relay idAuthentication parameters.
914
915 --- 1.2.2 2010/09/15
916
917 Add metaproxy-config for returning compiler flags, libraries.
918
919 --- 1.2.1 2010/08/18
920
921 Fix --with-boost=PREFIX .
922
923 --- 1.2.0 2010/07/09
924
925 session_shared: fix use of maintenance thread.
926
927 Introduce 'start' method for filters and routers. It gets called after
928 configure and after fork, but before processing. This changes API -
929 from libmetaproxy2 to libmetaproxy3.
930
931 --- 1.1.7 2010/06/30
932
933 session_shared: ensure backend session is closed if init rejected
934 is received.
935
936 z3950_client: fix NULL ptr reference that could occur if two clients
937 connected concurrently and if max-sockets was in effect.
938
939 --- 1.1.6 2010/06/21
940
941 Fix bug 3497 - Metaproxy unstable while stopping.
942
943 Fix bug 3495 - SEGV in SRU filter.
944
945 --- 1.1.5 2010/06/15
946
947 Filter multi throws diagnostic 'Present Out of Range' when
948 appropriate - rather than returning 0 records.
949
950 Filter virt_db: fix bad result reuse. Could happen if a result
951 was overriden and a backend did not supported named result sets.
952
953 --- 1.1.4 2010/05/11
954
955 Filter log: category access logs diagnostics even if searchStatus
956 or presentStatus is 'success'.
957
958 --- 1.1.3 2010/04/21
959
960 The SRU to Z39.50 filter does repeated Z39.50 present requests
961 to fetch all records. Needed when a Z39.50 server returns partial
962 results (due to message size limits).
963
964 --- 1.1.2 2010/03/18
965
966 Metaproxy now kills all child processes that are spawned by
967 modules (in case of fork, exec).
968
969 --- 1.1.1 2010/01/28
970
971 Debian package now installs /etc/metaproxy/metaproxy.xml which
972 includes all XML files /etc/metaproxy/filters-enabled .
973 The include facility uses YAZ' yaz_xml_include_simple (YAZ 4.0.1).
974
975 --- 1.1.0 2010/01/20
976
977 Package based on YAZ version 4 and YAZ++ 1.2.0. It now includes a
978 development package to facilitate 3rd party Metaproxy modules.
979
980 --- 1.0.23 2010/01/04
981
982 Filter virt_db: Close backend filter session when Init rejected is received
983 from it (in which case it's not really closed yet). This will ensure we don't
984 run out of resources such as FDs in this case.
985
986 sru_z3950 filter: Accept any database (including those not listed).
987
988 --- 1.0.22 2009/12/03
989
990 Prepare for 64-bit YAZ. yazproxy will still work with YAZ++ 1.1.4 or
991 later which means YAZ 3.0.47 or later.
992
993 --- 1.0.20 2009/11/19
994
995 For filter virt_db, the database is a glob pattern and the virtual
996 database sections are consulted in the order given.
997
998 --- 1.0.19 2009/07/08
999
1000 For filter multi, the target (for routing) may be given as a glob-pattern.
1001
1002 More documentation for filters virt_db and multi.
1003
1004 Update schema to allow for no database in sru_z3950 filter.
1005
1006 --- 1.0.18 2009/06/30
1007
1008 Added limit filter to put sleep (penalty) for heavy use.
1009
1010 Filter frontend_net may be configured to limit the number of new connections
1011 from same IP to some value (connect-max).
1012
1013 Fixed the load_balance filter.
1014
1015 --- 1.0.17 2009/06/16
1016
1017 Fix path for metaproxy executable for Debian init.d script.
1018
1019 --- 1.0.16 2009/06/10
1020
1021 SRU to Z39.50 filter honors x-username and x-password. If only
1022 x-username is given that translates to open authentication (Z39.50v2). If
1023 both x-username and x-password is present that translates to idPass
1024 authentication (Z39.50v3).
1025
1026 New facility to change current working directory (-w).
1027
1028 Update to upstream skeleton of init.d script. Should fix bug #2619.
1029
1030 Filter session_shared now caches records (used to only cache connections
1031 and result sets).
1032
1033 Filter session_shared now invalidates a Z39.50 session if a server
1034 returns -1 hits. This facility was also part of yazproxy and gets around
1035 a bug in Voyager-based Z39.50 servers.
1036
1037 --- 1.0.15 2008/11/18
1038
1039 Fixed reference counting bug in Z39.50 client module (could cause SEGV).
1040
1041 --- 1.0.14 2008/06/09
1042
1043 Fixed the value of SRU record schema in searchRetrieve response. It was set
1044 to a fixed value of "dc" before.
1045
1046 Serialize identical SRU requests. This is useful if HTTP client software
1047 fires identical requests against metaproxy.
1048
1049 Allow Z39.50 target to be specified for SRU requests by using SRU extra
1050 parameter x-target. Allows SRU to contact arbitrary Z39.50 targets and
1051 avoid static configuration. This facility is handled by the sru_z3950 module
1052 and the z3950_client module.
1053
1054 Allow maximum number of sockets to be used for a Z39.50 client by the
1055 use of SRU extra parameter x-max-sockets. This facility is handled by the
1056 sru_z3950 module and the z3950_client module.
1057
1058 --- 1.0.13.1 2008/02/29
1059
1060 Simplified check for Boost libraries.
1061
1062 --- 1.0.13 2008/02/29
1063
1064 First Debian package.
1065
1066 The sru_z9350 filter now recognizes SRU parameter z-target as being
1067 a ZURL of the form host/database . 
1068
1069 Mergetype may be specified for filter 'multi'.
1070
1071 --- 1.0.12 2007/09/19
1072
1073 Fixed problem in Makefile WRT library specifictions. This could produce
1074 linker errors (when they should not happen).
1075
1076 Fixed bug #1341: MetaProxy returning different results. Problem was that
1077 fix-up of record database did not normalize the database name.
1078
1079 Documentation updates for Windows compilation.
1080
1081 --- 1.0.11 2007/06/14
1082
1083 Fixed problem with logfile being truncated.
1084
1085 --- 1.0.10 2007/05/23
1086
1087 Fixed bug #1136: Access rights not enforced.
1088
1089 Extension for log module. The log category 'access' logs more details.
1090 New category 'user-access' added which is simlar to 'access' but adds
1091 the Z39.50 user as for all entries in a session.
1092
1093 Switched to GPL v2.
1094
1095 Added support for configurable default/force target/vhost for module Z39.50
1096 client module.
1097
1098 --- 1.0.8 2007/01/25
1099
1100 Implemented filter, session_shared, which optimizes usage of Z39.50
1101 sessions and result sets.
1102
1103 New filter, record_transform, which converts MARC/XML records.
1104
1105 New filter, sru_z3950, which converts SRU to Z39.50 packages.
1106
1107 New filter, load_balance, in development.
1108
1109 New filter, zeerex_xplain.
1110
1111 XML framework for config files started.
1112
1113 Master RelaxNG Compact schema's are found in xml/schema/*.rnc,
1114 RelaxNG XML schemas and XML Schema's are generated from RNC syntax.
1115 XML config files are checked against RNG and XML Schema's.
1116
1117 XSLT transformation framework added in xml/xslt/*.xsl, consisting mainly of 
1118 LOC Marc21 stylesheets found at http://www.loc.gov/marcxml/xslt.
1119 Added stylesheet explain2cqlpqftxt.xsl which transforms a standard SRU ZeeReX 
1120 explain record to YAZ CQL-to-PQF text config file. 
1121
1122 --- 1.0.7 2006/11/07
1123
1124 Added 'timeout' setting for filter frontend_net which specifies the number
1125 of seconds a session is idle before it is closed. Default timeout is
1126 300 (5 minutes).
1127
1128 --- 1.0.6 2006/07/07
1129
1130 Database name in records returned set for virt_db/multi filters.
1131
1132 Filter session_shared now functional.
1133
1134 Log filter can be configured to write to a given file using 'filename'
1135 element. Also information category can be specified with 'category'. If
1136 filename is omitted, the log filter writes to stdout. See etc/config5.xml
1137 for example.
1138
1139 --- 1.0.5 2006/05/16
1140
1141 Fixed compilation on Windows.
1142
1143 --- 1.0.4 2006/05/16
1144
1145 Added documentation for the hidenavailable option for the multi filter.
1146
1147 --- 1.0.3 2006/05/16
1148
1149 Fixed bug #573: Hide errors for individual servers. If the element
1150 'hideunavailable' is given in the configuration, individual servers
1151 being unavailable are hidden (unless all are unavailable). 
1152
1153 Fixed bug #574: Database names are recognised case-sensitively.
1154
1155 Fixed bug #567: Fix up database name in Name-Plus-Record.
1156
1157 Fixed bug #568: Update win/makefile for VS 2005.
1158
1159 Fixed bug #569: Some options throws unknown exception.
1160
1161 --- 1.0.2 2006/04/28
1162
1163 More information about virtual hosts. The 'etc' directory is part of the
1164 distribution tar.
1165
1166 --- 1.0.1 2006/04/27
1167
1168 Build instructions for Windows. NMake makefile part of distribution tar.
1169
1170 --- 1.0.0 2006/04/24
1171
1172 More documentation.
1173
1174 Filters functional: auth_simple, backend_test, frontend_net, http_file,
1175  log, multi, query_rewrite, template, virt_db, z3950_client.
1176
1177 Filters in development: session_shared.
1178
1179 Pseudo-filters: template, dl
1180
1181 --- 0.9 2006/03/27