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.
10 Fix ref to freed memory in log filter 1line - MP-556
12 echoedSearchRetrieveRequest support MP-555
16 zoom: allow hostname to be given for ipauth MP-552
17 The Torus setting for that is called auth_hostname.
21 zoom: IP auth use field "ipRanges" rather than "ip" MP-551
25 session_shared: close in ~BackendInstance MP-549
26 This fixes a serious issue where some MP would leak sockets.
28 session_shared: mutex lock in BackendClass::release_backend MP-550
29 Fixes a SEGV that could occur (in rare cases).
33 zoom: Do not include ZOOM C's fake surrogate diag recs MP-547
35 zoom: fix invalid present response in some cases MP-546
37 zoom: Relay Torus HTTP error message
41 Check for proper limits before using RecordCache functions MP-544
45 Build packages for Ubuntu Trusty Tahr 14.04 LTS
47 sort: crash / invalid_read in filter sort MP-541
49 sru_z3950: facet should be stored in additionalSearchInfo MP-533
51 doc: fix missing man pages MP-542
53 cql_rpn: fix threading problem with CQL to RPN conversion MP-497
55 cql_rpn: allow conversion from RPN to CQL (reverse) MP-537
59 sru_z3950: fix facet response (memory corruption) MP-532
61 log: fix crash idPass user is omitted MP-530
65 query_rewrite: pass-thru non Type-1 queries MP-527
67 metaproxy stop (SIGTERM) kills all child processes spanwed by
68 filter (if any) before invoking filter destructors. MP-525
72 http_file: only supports HTTP GET MP-523
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.
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).
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).
86 frontend_net: fix compilation on Windows (SIGUSR1 does not exist)
90 http_rewrite: use local skiplist; fixes memory corruption. MP-520
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.
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.
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.
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
123 metaproxy-config: quote some RHS values (that might include blanks)
125 Fix leak in sru_z3950 filter - when explain is returned MP-511
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.
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
136 Package metaproxy provides virtual package metaproxy6 MP-508
137 This allows module packages to depend on a metaproxy server
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
148 zoom: sync up with Pazpar2 WRT authentication handling MP-492
150 Router: use shared_ptr rather than naked one - to avoid leak if an
151 exception is thrown in configure.
155 zoom: Add nocproxy=1 for contentConnector sessions MP-501
157 Doc: mention proper versions; fix link to Boost win binaries.
159 Windows: update for Boost 1.55
161 Windows: avoid warning when using boost::split. Done by defining
162 _SCL_SECURE_NO_WARNINGS for Visual Studio.
164 Fix LSB conformance for /etc/init.d/metaproxy MP-500
165 Debian: add support for /etc/init.d/metaproxy status
167 sort: Add const to Record less than operator in order to compile on
172 session_shared: fix element-set handling in record caching. MP-499
174 document http_rewrite. MP-468
176 http_write: Honor X-Metaproxy-SkipLink MP-479 . Filter understands and
177 respects the header (which will normally come from the cproxy filter)
181 RPM: fix dependency for libmetaproxy5-devel MP-496. The libmetaproxy5-devel
182 RPM was unsable in version 1.4.0.
184 Remove log message about "backend classes". Appeared in version 1.4.0.
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
192 sru_z3950: Fix SEGV for decoding invalid SRU requests
193 Incorrect reference to union (was explain response rather than
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.
201 --- 1.3.62 2013/09/11
203 http_rewrite: better handling of <script> content in HTML parser. MP-486
205 http_rewrite: fix threading issue with regex. MP-482
207 bounce: don't use strdup for fixed length content. Error occurred in echo
210 session_shared: expire backend class when no instances left. This
211 means memory clean up, but not really a leak fix.
213 virt_db: fix leak for naked ptr.
215 cql_rpn: use config relative path for cql2rpn file. MP-481
217 Updates for upcoming YAZ 5.
219 --- 1.3.61 2013/08/29
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
225 --- 1.3.60 2013/08/21
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
232 HTML: clean up char checks. Add ptr to HTML parse spec
234 HTML parser stops eating tag when <-char is met MP-473
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
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.
245 rewrite: Ruleset functional MP-469
247 --- 1.3.59 2013/07/12
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.
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
265 sort filter: relays RecordComposition including elementSet in use for
268 http_client: better diagnostics
270 http_client: disables HTTP redirect handling by default.
271 It can be configured with max-redirects in configuration.
273 --- 1.3.58 2013/06/12
275 Fix loading of filters cql_rpn and sru_z3950 . Was broken by 1.3.57.
277 --- 1.3.57 2013/06/12
279 Make RouterChain and RouterXML part of public API (libmetaproxy).
281 http_client: honor X-Metaproxy-Proxy as an alternative to
282 the "proxy" configuration. Allows proxy to be set per HTTP request.
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
291 --- 1.3.56 2013/05/27
293 New filter present_chunk. This filter allows splitting of present requests into smaller chunks.
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.
299 new filter http_client. Same role as z3950_client, but just for
300 HTTP. Allows Metaproxy to operate as a HTTP proxy.
302 New filter http_rewrite1, which serves as purpose on how to rewrite
303 HTTP content with Metaproxy.
305 Use libboost-system if available, because newer versions of libboost-threads
306 requires libboost-system.
308 Allow frontend_net to serve SSL/HTTPS, because we can specify a server
311 --- 1.3.55 2013/04/10
313 zoom: Torus setting: authenticationMode which may hold values "basic"
316 --- 1.3.54 2013/03/27
318 configure: check for Libxslt support in YAZ and rely on definitions
319 from yaz-config, rather than doing own xslt/xml2 checks.
321 Allow timestamp format for log lines to be given with option -m
322 for metaproxy. Similar to yaz-ztest/GFS option -m.
324 Document log category 'line' for log filter.
326 Solr configuration example in etc/config-solr.xml
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).
333 Documentation: fix id of metaproxy-config ref .
335 Documentation: update for USEMARCON support.
337 --- 1.3.53 2013/01/31
339 record_transform: allow OPACXML to OPAC conversion
341 zoom: document content-proxy
343 zoom: document db parm content-{user,password}, torus_url. Also
344 <torus auth_url="..> which makes zoom operate in authenticated mode
347 --- 1.3.52 2012/11/30
349 zoom: fix http://-check. SRU search broken in 1.3.51.
351 --- 1.3.51 2012/11/15
353 zoom: only append http:// for SRU if not already given . Makes it
354 possible to use https-URLs.
356 Use yazpp 1.4 or later due to new ABI.
358 frontend_net: allow max package size to be specified. Controlled by
359 attribute 'max_recv_bytes' of element 'port'.
361 --- 1.3.50 2012/10/29
363 For most generated diagnostics by filters, typically temporary
364 system error, augment addinfo message with filter name.
366 Add support for CentOS 6 packages.
368 sru_z3950: interpret Z39.50 diagnostics part of Init Response.
370 Add man page for metaproxy-config.
372 --- 1.3.49 2012/10/18
374 zoom: new config element passthru. This defines an element set that is
375 passed verbatim to the backend in pz2 mode.
377 auth_simple: allow both idPass and open auth. Also fix SEGV that could
380 --- 1.3.48 2012/10/08
382 z3950_client: fix string handling for init diagnostics in the case where
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.
389 --- 1.3.47 2012/10/04
391 For graceful stop (SIGUSR1), metaproxy will kill children processes.
393 Log when metaproxy is invoked in test mode (-t).
395 Log PID for each log message.
397 multi: combine both NSDs and multiple NSDs into one (diagnostics).
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.
403 multi: hideerrors also in use for present response.
405 Solr example in zoom man page.
407 Fix typo in query_rewrite config example.
409 Log at least first non surrogate diagnostic. Instead of
410 "Z_Records_multipleNSD"
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.
415 --- 1.3.46 2012/09/24
417 Yet another fix for graceful stop.
419 --- 1.3.45 2012/09/12
421 sru_z3950: relay surrogate diagnostics.
423 --- 1.3.44 2012/09/10
425 zoom: Honor extraArgs, strip # in zurl.
427 multi: fix SEGV for scan. Reported by Rustam T. Usmanov.
429 zoom: url_recipe allow %{var[reg]} substitutions.
430 It's like ${var[reg]} but does URI component encoding as well.
432 --- 1.3.43 2012/08/22
434 RPM/Deb: require yazpp 1.3.2, because it fixes a missing close of
435 non-keepalive HTTP sessions.
437 http_file: allow zero size files (bug fix)
439 Fix zoom schema: auth_url is optional
441 --- 1.3.42 2012/08/20
443 zoom: fix un-init memory (could result in SEGV at session close)
445 frontend_net: handle X-Forwarded-For. This is stored in package.origin()
446 and may be used in filters as usual.
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.
453 --- 1.3.41 2012/08/10
455 virt_db: Fix database name - first character we removed by mistake.
456 Bug introduced in 1.3.40.
458 --- 1.3.40 2012/08/06
460 virt_db: Don't use "unix path" as database for Unix sockets.
462 --- 1.3.39 2012/08/02
464 z3950_client: Don't tamper with / in zurl - fixes problems
465 using Unix sockets for backends.
467 session_shared: fix integer overflow problem with hit count.
469 session_shared: avoid long usage of cached queries.
471 zoom: New database argument , torus_url to set URL of Torus
472 record to be fetched.
474 --- 1.3.38 2012/07/04
476 Fixes for 'metaproxy reload' for RPM/Debian packages.
478 zoom: Allow rpn2cql conversion to be augmented with a properties file.
479 Element rpn2cql can be specified per-target for the zoom filter.
481 log: New category "line" which is a single-line log message with
482 most important parts of a HTTP/Z39.50 request/response.
484 --- 1.3.37 2012/06/01
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>).
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.
496 Don't display start log message when config testing (-t).
498 zoom: avoid CCL message limit of 1K in ZOOM filter.
500 --- 1.3.36 2012/05/10
502 metaproxy init script reacts to reload which does graceful stop +
503 start and is used by logrorate script.
505 --- 1.3.35 2012/05/09
507 Fixes for Windows compilation.
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.
513 Change start log message to 'metaproxy start'. Was 'Metaproxy start'
514 before. Consistent with 'metaproxy stop' message.
516 zoom: document zoom's proxy_timeout
518 z3950_client: fixup addinfo for init response
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.
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
529 --- 1.3.34 2012/04/25
531 frontend_log: extend logging (when message is given in config).
533 --- 1.3.33 2012/04/25
535 zoom: Fix check for proxy. Use diagnostic 1074 for proxy failures.
537 --- 1.3.32 2012/04/24
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.
542 --- 1.3.31 2012/04/24
544 zoom: fixes for retry/proxy failover logic. More logging.
546 --- 1.3.30 2012/04/23
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
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".
558 zoom: guess if invalid SRU response was an auth failure
560 session_shared: disable session retry by default . Can be enabled by
561 restart="true" in resultset section.
563 --- 1.3.29 2012/04/18
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.
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.
575 sru_z3950: serialize requests. This is to ensure that pipelined
576 HTTP requests are handled properly.
578 --- 1.3.28 2012/04/04
580 New class, wrbuf, that wraps YAZ' WRBUF.
582 --- 1.3.27 2012/03/30
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 .
588 --- 1.3.26 2012/03/20
590 New filter, sort, that allows sorting of XML records via Z39.50
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"/>
600 Filter multi: empty route pattern uses route as default.
602 <target route="z3950.indexdata.com">z3950.indexdata.com</route>
603 may use the shorter notation
604 <target route="z3950.indexdata.com"/>
606 Filter query_rewrite: use config path to locate XSLT.
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.
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.
621 Filter record_transform: honor piggyback searches.
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.
627 --- 1.3.25 2012/02/29
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
639 zoom: new setting timeout that specifies timeout for outgoing Z39.50/SRU
640 connections. Default value is 40 (seconds).
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.
647 multi: new setting hideerrors that makes multi only relay diagnostics
648 to a client if all backends fail.
650 --- 1.3.24 2012/02/23
652 zoom: empty ccl_map field-mappings disables CCL map.
654 zoom: fix Explain search that could return error if session was
657 --- 1.3.23 2012/02/10
659 zoom: returns Explain records for database IR-Explain---1. The
660 target profile records are converted to Explain records via XSLT.
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.
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.
671 --- 1.3.22 2012/02/02
673 zoom: fix memory leaks.
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.
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.
685 --- 1.3.21 2011/12/27
687 zoom: relay realm to cproxy parameter file.
689 Configuration: Allow filter collection element inside route. This
690 makes it possible to include multiple filters at once.
692 zoom: nocproxy also disables urlRecipe.
694 --- 1.3.20 2011/12/21
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".
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.
704 --- 1.3.19 2011/12/16
706 zoom: Multiple proxy hosts may be given for proxy rich database
707 parameter. List is comma separated.
709 http_file: decodes URI paths properly. Does not return 404: not found
710 if no prefix are matches. Instead packages are passed on.
712 --- 1.3.18 2011/12/08
714 zoom: content-{user,password,proxy} are passed on to content proxy
715 system and takes precedence over user,password,proxy .
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.
723 zoom: for x-log-enable=1, APDUs sent by ZOOM C, records as received
724 and queries as they are manipulated are logged.
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
731 zoom: default urlRecipe value is ${md-electronic-url}
733 zoom: target profile setting sruVersion is recognized.
735 --- 1.3.17 2011/11/17
737 zoom: log target profile record fetched (AKA Torus).
739 --- 1.3.16 2011/11/17
741 Change target profile parameter CfSubDb to CfSubDB.
743 --- 1.3.15 2011/11/12
745 zoom: bug fix: realm was relayed to CF targets by mistake (realm only
746 makes sense to the zoom module itself).
748 --- 1.3.14 2011/11/11
750 zoom: realm may be given as part of database.
752 --- 1.3.13 2011/10/26
754 Fix Origin class assigment method; was removd by mistake in 1.3.12.
756 --- 1.3.12 2011/10/26
758 zoom: database args x-name=value are passed through to backend database.
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.
763 zoom: fix null pointer reference which would occur for bad url parameter
764 inside "torus" or if url was not given.
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.
772 --- 1.3.10 2011/09/09
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.
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.
784 zoom: urlRecipe result is stored in <pz:metadata type="generated-url">.
786 zoom: For content proxy authentication is stored in param name
787 "auth", instead of "authentication".
791 zoom: relay schema in SRU mode. Previously recordSchema was not affected
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.
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.
804 Updates to check for Boost unit test (autoconf stuff). On MacOSX this
805 component was not detected when it should be.
809 z3950_client: mark non-surrogate diagnostics from backend.
811 zoom: a proxy may be specified for HTTP fetch of target profiles.
815 Honor piggyback. Makes some SRU targets behave that insist on
816 maximumRecords > 0, but also increases performance.
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.
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.
829 New facility to dump APDUs from zoom filter. Enabled by
830 <log apdu="true"/> in the zoom filter configuation.
832 zoom filter bug fix: SRU diagnostics received from backend was
833 not properly converted to Bib-1 diagnostics.
835 Package metaproxy depends on libmetaproxy4, same version.
839 zoom: fix a bug WRT passing authentication parameters to backends.
843 Fixes for windows Makefile.
845 --- 1.2.10 2011/07/25
847 Change major version of metaproxy library from 3 to 4. This in turn
848 makes new package names for Debian and RPM.
852 zoom: enable marc-8 encoding by default for usmarc and opac (in pz2
855 zoom: configurable element sets for record transforms.
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".
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".
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.
870 session_shared: fix reference to freed memory. Would occur if a search
871 response had non-surrogate diagnostics.
875 Route may be given for each port in frontend_net.
879 Documentation for zoom filter. Local target profiles may be specified.
881 Fixes for zoom filter.
885 First version with zoom filter.
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).
894 Filter virt_db and multi: relay close APDU.
896 Filter virt_db and multi: relay init size parameters
897 preferredMessageSize and maximumRecordSize.
899 Filter sru_z3950: increase init sz parameters from 1MB to 10 MB.
903 RPM package for Metaproxy works for both SLES11 and Centos 5.5.
905 metaproxy-config: exec_prefix, libdir, includedir. Use these variables
906 as determined by configure.
908 RPM: Release includes 'indexdata' name. Use indexdata in release name so
909 this package can be distinguished from other vendors.
913 Fix filter multi: relay idAuthentication parameters.
917 Add metaproxy-config for returning compiler flags, libraries.
921 Fix --with-boost=PREFIX .
925 session_shared: fix use of maintenance thread.
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.
933 session_shared: ensure backend session is closed if init rejected
936 z3950_client: fix NULL ptr reference that could occur if two clients
937 connected concurrently and if max-sockets was in effect.
941 Fix bug 3497 - Metaproxy unstable while stopping.
943 Fix bug 3495 - SEGV in SRU filter.
947 Filter multi throws diagnostic 'Present Out of Range' when
948 appropriate - rather than returning 0 records.
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.
955 Filter log: category access logs diagnostics even if searchStatus
956 or presentStatus is 'success'.
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).
966 Metaproxy now kills all child processes that are spawned by
967 modules (in case of fork, exec).
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).
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.
980 --- 1.0.23 2010/01/04
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.
986 sru_z3950 filter: Accept any database (including those not listed).
988 --- 1.0.22 2009/12/03
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.
993 --- 1.0.20 2009/11/19
995 For filter virt_db, the database is a glob pattern and the virtual
996 database sections are consulted in the order given.
998 --- 1.0.19 2009/07/08
1000 For filter multi, the target (for routing) may be given as a glob-pattern.
1002 More documentation for filters virt_db and multi.
1004 Update schema to allow for no database in sru_z3950 filter.
1006 --- 1.0.18 2009/06/30
1008 Added limit filter to put sleep (penalty) for heavy use.
1010 Filter frontend_net may be configured to limit the number of new connections
1011 from same IP to some value (connect-max).
1013 Fixed the load_balance filter.
1015 --- 1.0.17 2009/06/16
1017 Fix path for metaproxy executable for Debian init.d script.
1019 --- 1.0.16 2009/06/10
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).
1026 New facility to change current working directory (-w).
1028 Update to upstream skeleton of init.d script. Should fix bug #2619.
1030 Filter session_shared now caches records (used to only cache connections
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.
1037 --- 1.0.15 2008/11/18
1039 Fixed reference counting bug in Z39.50 client module (could cause SEGV).
1041 --- 1.0.14 2008/06/09
1043 Fixed the value of SRU record schema in searchRetrieve response. It was set
1044 to a fixed value of "dc" before.
1046 Serialize identical SRU requests. This is useful if HTTP client software
1047 fires identical requests against metaproxy.
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.
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.
1058 --- 1.0.13.1 2008/02/29
1060 Simplified check for Boost libraries.
1062 --- 1.0.13 2008/02/29
1064 First Debian package.
1066 The sru_z9350 filter now recognizes SRU parameter z-target as being
1067 a ZURL of the form host/database .
1069 Mergetype may be specified for filter 'multi'.
1071 --- 1.0.12 2007/09/19
1073 Fixed problem in Makefile WRT library specifictions. This could produce
1074 linker errors (when they should not happen).
1076 Fixed bug #1341: MetaProxy returning different results. Problem was that
1077 fix-up of record database did not normalize the database name.
1079 Documentation updates for Windows compilation.
1081 --- 1.0.11 2007/06/14
1083 Fixed problem with logfile being truncated.
1085 --- 1.0.10 2007/05/23
1087 Fixed bug #1136: Access rights not enforced.
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.
1095 Added support for configurable default/force target/vhost for module Z39.50
1098 --- 1.0.8 2007/01/25
1100 Implemented filter, session_shared, which optimizes usage of Z39.50
1101 sessions and result sets.
1103 New filter, record_transform, which converts MARC/XML records.
1105 New filter, sru_z3950, which converts SRU to Z39.50 packages.
1107 New filter, load_balance, in development.
1109 New filter, zeerex_xplain.
1111 XML framework for config files started.
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.
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.
1122 --- 1.0.7 2006/11/07
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
1128 --- 1.0.6 2006/07/07
1130 Database name in records returned set for virt_db/multi filters.
1132 Filter session_shared now functional.
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
1139 --- 1.0.5 2006/05/16
1141 Fixed compilation on Windows.
1143 --- 1.0.4 2006/05/16
1145 Added documentation for the hidenavailable option for the multi filter.
1147 --- 1.0.3 2006/05/16
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).
1153 Fixed bug #574: Database names are recognised case-sensitively.
1155 Fixed bug #567: Fix up database name in Name-Plus-Record.
1157 Fixed bug #568: Update win/makefile for VS 2005.
1159 Fixed bug #569: Some options throws unknown exception.
1161 --- 1.0.2 2006/04/28
1163 More information about virtual hosts. The 'etc' directory is part of the
1166 --- 1.0.1 2006/04/27
1168 Build instructions for Windows. NMake makefile part of distribution tar.
1170 --- 1.0.0 2006/04/24
1174 Filters functional: auth_simple, backend_test, frontend_net, http_file,
1175 log, multi, query_rewrite, template, virt_db, z3950_client.
1177 Filters in development: session_shared.
1179 Pseudo-filters: template, dl