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