[OpenSRF-GIT] OpenSRF branch rel_2_4 updated. osrf_rel_2_4_1-14-g20726cb

Evergreen Git git at git.evergreen-ils.org
Thu Feb 16 16:54:35 EST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OpenSRF".

The branch, rel_2_4 has been updated
       via  20726cb71dc77ecfd181610aca449c2cb69f1d53 (commit)
       via  0a93108dd37c57d288d613d1625a50555d3a3388 (commit)
       via  0a469559782c8e79e489e3fa003f90c7c92d51bf (commit)
       via  e72a15842c10d4c2288323ede92f38d4b4b41794 (commit)
       via  c1eae17ad8b61d62ad6795ca3cd01347c39c7903 (commit)
       via  b2ed8ef36baa1242448beae89ffe51a98f8175d1 (commit)
       via  f608444010fff1b4b6da06b5ec49df643218b005 (commit)
      from  da98d30ca754a5a9bacb09982f8cad9c053a3105 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 20726cb71dc77ecfd181610aca449c2cb69f1d53
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Thu Feb 16 15:34:49 2017 -0500

    update version number for 2.4.2
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/src/perl/lib/OpenSRF.pm b/src/perl/lib/OpenSRF.pm
index 564eb31..09f6110 100644
--- a/src/perl/lib/OpenSRF.pm
+++ b/src/perl/lib/OpenSRF.pm
@@ -16,7 +16,7 @@ Version 2.4.1
 
 =cut
 
-our $VERSION = "2.41";
+our $VERSION = "2.42";
 
 =head1 METHODS
 
diff --git a/src/python/setup.py b/src/python/setup.py
index 66ce353..cce63c8 100644
--- a/src/python/setup.py
+++ b/src/python/setup.py
@@ -3,7 +3,7 @@
 from setuptools import setup
 
 setup(name='OpenSRF',
-    version='2.4.1',
+    version='2.4.2',
     install_requires=[
         'dnspython', # required by pyxmpp
     	'python-memcached',
diff --git a/version.m4 b/version.m4
index 0a4e64a..273ddd3 100644
--- a/version.m4
+++ b/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[2.4.1]) 
+m4_define([VERSION_NUMBER],[2.4.2]) 

commit 0a93108dd37c57d288d613d1625a50555d3a3388
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Thu Feb 16 15:33:00 2017 -0500

    update changelog for OpenSRF 2.4.2
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/ChangeLog b/ChangeLog
index 56c6d89..4c04371 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,515 +1,143 @@
-ChangeLog
-=========
+commit 0a469559782c8e79e489e3fa003f90c7c92d51bf
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Thu Feb 16 15:32:13 2017 -0500
 
-OpenSRF 2.4.1
--------------
-commit d266817a76b3659fd2b2acba13e94f01389d2a14
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Jun 24 16:07:58 2015 +0000
-
-    set stage for point release notes, à la Evergreen
-    
-    Also fix a couple typos.
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-19	16	doc/RELEASE_NOTES.txt
-
-commit b1807500aa0e3854a512f5c244fef188b370ac65
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Jun 24 16:01:26 2015 +0000
-
-    increment version number for 2.4.1 release
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/perl/lib/OpenSRF.pm
-1	1	src/python/setup.py
-1	1	version.m4
-
-commit 95b24da0e8b85b20b018b35a7c7ecdec73a6968e
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Jun 3 18:35:35 2015 +0000
-
-    LP#1152272: do not log batch invocation of srfsh in .srfsh_history
-    
-    When running srfsh to process a script, do not log
-    the requests in .srfsh_history.
-    
-    To test
-    -------
-    [1] Run the following command:
-    
-        echo 'request opensrf.math opensrf.system.echo "foo"' | srfsh
-    
-    [2] Note that the last line of ~/.srfsh_history should be
-        'request opensrf.math opensrf.system.echo "foo"'
-    
-    [3] Apply the patch, compile, and run
-    
-        echo 'request opensrf.math opensrf.system.echo "bar"' | srfsh
-    
-    [4] This time, no additional line should have been added to
-        ~/.srfsh_history
-    
-    [5] Another variation to try:
-    
-        srfsh test.srfsh
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
-
-7	3	src/srfsh/srfsh.c
-
-commit f3da6d5be3e607d8f4ba4c60815cccef60cd9487
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Jun 3 17:42:06 2015 +0000
-
-    LP#1461625: ensure srfsh doesn't close STDOUT prematurely
-    
-    Ensure that when running srfsh in non-interactive mode
-    that reads commands directly from a file, (i.e.,
-    "srfsh script.srfsh" or as a shebang script), it does
-    not close STDOUT after handling the first request.
-    
-    To test
-    -------
-    [1] Create a srfsh script containing:
-    
-        request opensrf.math opensrf.system.echo "foo"
-        request opensrf.math opensrf.system.echo "bar"
-    
-    [2] Run "srfsh script.srfsh". Note that only the
-        results of the first echo request are output.
-    [3] Apply the patch and recompile, then run
-        "srfsh script.srfsh" again.  This time, the
-        output of both requests is displayed.
+    add release notes for OpenSRF 2.4.2
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
-1	1	src/srfsh/srfsh.c
+28	0	doc/RELEASE_NOTES.txt
 
-commit ab6db9fb56317a553d58d7dc8471ad9288fe0b92
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Thu Jun 18 11:52:00 2015 -0400
+commit e72a15842c10d4c2288323ede92f38d4b4b41794
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Wed Feb 15 16:58:06 2017 -0500
 
-    LP#1409055 Support specific protocols for OpenSRF gateway requests
+    LP#1652382: more improvements to cache key munging
     
-    If the user passes in a gateway hostname that contains a specific HTTP or HTTPS
-    protocol, let's just use that.
+    - teach osrfCacheRemove to clean keys
+    - fix implict declaration compilation warning
+    - account for fact that iscntrl('\0') returns true
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
 
-12	0	src/python/osrf/gateway.py
+5	2	src/libopensrf/osrf_cache.c
 
-commit 78e6fcbb637edbbec4d3996e0281a5e4d7e2663e
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Tue Mar 24 21:00:57 2015 +0000
+commit c1eae17ad8b61d62ad6795ca3cd01347c39c7903
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Wed Feb 15 14:12:34 2017 -0500
 
-    LP#1436047: make srfsh --safe act as if "! command" doesn't exist
+    LP#1652382: handle cases where supplied key is longer than 250 bytes
     
-    This patch make srfsh treat attempting to run an external
-    command via "! command" as a parsing error if --safe is
-    supplied.  It also suppress mention of "! commands" from
-    the internal help.
+    With this patch, if cache clients want to use a key longer
+    than the memcached text protocol limit of 250 bytes, the
+    key is normalized to 'shortened_' + md5_hex(normalized_key).
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
 
-10	4	src/srfsh/srfsh.c
+10	1	src/libopensrf/osrf_cache.c
+4	0	src/perl/lib/OpenSRF/Utils/Cache.pm
 
-commit c7d5810f29fd5b8f7b125af58df053abf5dbb9bf
+commit b2ed8ef36baa1242448beae89ffe51a98f8175d1
 Author: Mike Rylander <mrylander at gmail.com>
-Date:   Tue Mar 24 16:22:16 2015 -0400
+Date:   Mon Jan 30 12:54:10 2017 -0500
 
-    LP#1436047: Allow disabling of "bang commands" in srfsh
-    
-    srfsh has the ability to execute commands via system() calls using
-    the common "!command" syntax.  This is very useful, but it would
-    be nice to be able to turn that functionality off in some cases.
-    
-    This branch adds argument parsing to detect a new '--safe' command
-    line parameter, which disables the "!command" syntax.
+    LP#1652382: Make use of the clean key just created
     
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-24	12	src/srfsh/srfsh.c
-
-commit 24c230a7c90c6a7ff300ca86745998fd07ee2105
-Author: Ben Shum <bshum at biblio.org>
-Date:   Mon May 4 17:16:29 2015 -0400
-
-    Docs: Fix mailing list link for help in README
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-2	2	README
-
-commit 1d632a356086e5691605bd4b6a131769a05f4906
-Author: Josh Stompro <github at stompro.org>
-Date:   Tue Apr 21 09:50:49 2015 -0500
-
-    LP#1445503 - Updated Ejabberd setup steps for Ejabberd 14.x for Debian Jessie
-    
-    Signed-off-by: Josh Stompro <github at stompro.org>
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-29	2	README
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
 
-commit b8bef9320b13dd5a87f34072b71af70bb1714e4a
-Author: Ben Shum <bshum at biblio.org>
-Date:   Mon May 4 17:01:23 2015 -0400
+1	1	src/libopensrf/osrf_cache.c
 
-    Docs: Emphasize variables and paths consistently in README
-    
-    Some variables and paths were not emphasized when the instructions for
-    websockets was added. Maintain consistency in the document and emphasize
-    them.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-6	6	README
-
-commit 0be401fa0b5e3db89db73e5daf5652e69a8947bb
-Author: Ben Shum <bshum at biblio.org>
-Date:   Mon May 4 16:57:38 2015 -0400
-
-    Docs: Add [source, bash] to code blocks that were not defined in README
-    
-    For consistency, add [source, bash] to all the blocks of code or script
-    commands in the README
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-6	0	README
-
-commit 30a5a2d9b13c4aa0636f2885f0953a840b291033
-Author: Ben Shum <bshum at biblio.org>
-Date:   Mon May 4 16:49:08 2015 -0400
-
-    Docs: Keep all source syntax consistent in README
-    
-    Change occurrences of [source,bash] to [source, bash] for consistency
-    throughout README.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-11	11	README
-
-commit d59acb614910808b5773c377df4e9806f76546dc
-Author: Bill Erickson <berickxx at gmail.com>
-Date:   Thu Feb 5 10:34:40 2015 -0500
+commit f608444010fff1b4b6da06b5ec49df643218b005
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 27 15:25:05 2017 -0500
 
-    LP#1418613 per-tab websocket send() JS thinko repair
+    LP#1652382: normalization of memcache keys in C code
     
-    Avoid referencing variable defined somewhere outside the send_ws()
-    function.  Doing so happened to result in re-sending the same message
-    twice in some cases.
+    Memcache does not allow spaces in keys, so here we will actively strip them
+    from any key we get from a caller.  Some callers are not very proactive about
+    sending clean keys, and this patch prevents issues that can poison C-based
+    OpenSRF service backends.
     
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
 
-1	1	src/javascript/opensrf.js
-
-OpenSRF 2.4.0
--------------
-
-commit df5aa177d80b40fe1e318a103a48222378af1587
-Author: Bill Erickson <berickxx at gmail.com>
-Date:   Fri Oct 17 17:07:53 2014 -0400
-
-    LP#1383828 Jessie/Trusty installer Apache "mpm" repairs
-    
-    Disable the default Apache mpm_event module and enable mpm_prefork for
-    Debian Jessie and Ubuntu Trusty.
-    
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-
-8	2	src/extras/Makefile.install
-
-commit b199a9a84aa815dbcbc4c98e3269c192fecdb238
-Author: Ben Shum <bshum at biblio.org>
-Date:   Mon Nov 10 12:20:31 2014 -0500
-
-    LP#1391248: Fix NameVirtualHost warnings in websockets apache2.conf
-    
-    For the websockets configuration, the sample apache2.conf for Apache 2.4 (i.e.
-    Ubuntu 14.04, etc.) contains NameVirtualHost entries that are no longer
-    needed.
-    
-    When starting apache2-websockets, you may see warnings like:
-    
-    AH00548: NameVirtualHost has no effect and will be removed in the next
-    release /etc/apache2-websockets/apache2.conf:53
-    
-    Remove the NameVirtualHost entries and these warnings go away.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-0	2	examples/apache_24/websockets/apache2.conf
-
-commit 3c268142659852c6b09a8709a84029702698d2ea
-Author: Ben Shum <bshum at biblio.org>
-Date:   Fri Oct 31 23:53:58 2014 -0400
-
-    LP#1369169: Remove hardcoded paths for OpenSRF directory
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-2	2	README
-
-commit 8bcfe29874dc2aeb2fdc07b16660a0350d377cee
-Author: Ben Shum <bshum at biblio.org>
-Date:   Sat Sep 13 18:23:46 2014 -0400
-
-    LP#1369169: Mention the requirement for valid SSL certificate
-    
-    The apache2-websockets instance will not start without a valid SSL certificate
-    in /etc/apache2/ssl.  Include a mention of this in the README with the extra
-    stipulation that it is still possible to use a self-signed SSL certificate for
-    testing purposes, but this is not recommended for live installations.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-7	1	README
-
-commit 25d0b0d6abe90612430b74f3c9bcf9c75c0a972e
-Author: Ben Shum <bshum at biblio.org>
-Date:   Fri Sep 12 17:58:11 2014 -0400
-
-    LP#1369169: Add websockets section to the OpenSRF README
-    
-    Remove the separate README.websockets and move the contents into the primary
-    OpenSRF README document so that all steps are in one place.
-    
-    Additional edits to the websockets instructions to detail differences made
-    between Ubuntu 14.04 Trusty and Debian / Ubuntu 12.04 Precise. More edits
-    may be necessary for Debian Jessie later?
-    
-    Also, create a separate config file for Apache 2.4 that is copied into place
-    for Ubuntu Trusty and potentially other systems that will need it.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-93	0	README
-0	53	README.websockets
- delete mode 100644 README.websockets
-
-commit c6e0150be2b0d3c010d4ea6c34a81f69cec3004b
-Author: Ben Shum <bshum at biblio.org>
-Date:   Sat Sep 13 18:04:54 2014 -0400
-
-    LP#1369169: Add Apache 2.4 specific configuration file for websockets
-    
-    For Apache 2.4, there were some necessary modifications for running the
-    websockets code properly. Similar to how we do things in Evergreen, we
-    added a new directory for apache_24 which contains the modified apache2.conf
-    file.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-80	0	examples/apache_24/websockets/apache2.conf
- create mode 100644 examples/apache_24/websockets/apache2.conf
-
-commit 92e8a5f7d6040bda312317ce339e459d5549d3eb
-Author: Ben Shum <bshum at biblio.org>
-Date:   Sat Sep 13 18:07:47 2014 -0400
-
-    LP#1369169: Remove trailing whitespace from apache2.conf
-    
-    For some reason, there was a lot of trailing whitespace in this apache2.conf
-    file for websockets. Removing them.
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-19	19	examples/apache2/websockets/apache2.conf
+20	2	src/libopensrf/osrf_cache.c
 
-commit 1b0252065496be18b8c4eb3991d1057928dd7784
-Author: Ben Shum <bshum at biblio.org>
-Date:   Sat Sep 13 17:03:19 2014 -0400
-
-    LP#1369169: Standardize styling of root linux account for README
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-3	3	README
-
-commit 10b9f9eeac545cf46387e45b8cbd06e2a556baf3
-Author: Ben Shum <bshum at biblio.org>
-Date:   Sat Sep 13 17:38:54 2014 -0400
-
-    LP#1369169: Add generated README.html to the .gitignore file for OpenSRF
-    
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-
-1	0	.gitignore
-
-commit 2bceabc55f8b1ccb13089298bfdb6a220c5735d6
+commit da98d30ca754a5a9bacb09982f8cad9c053a3105
 Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 16:52:10 2014 -0700
+Date:   Thu Dec 22 15:53:12 2016 +0500
 
-    fix typo in release notes
+    LP#1652122: fix infinite recursion in opensrf.system.method.all
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	doc/RELEASE_NOTES.txt
-
-commit e5eab9073e25b82914986326a5e97e7feecb5dfb
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 16:33:11 2014 -0700
-
-    bump up version number for OpenSRF 2.4.0-alpha
+    Under certain circumstances, calling opensrf.system.method.all on a
+    Perl service can result in an infinite recursion when attempting to
+    serialize an OpenSRF::Application object to JSON.  In particular,
+    this was observed to happen when doing an introspection of
+    the opensrf.settings service.
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	2	src/perl/lib/OpenSRF.pm
-1	1	src/python/setup.py
-1	1	version.m4
-
-commit b929dd7080b91e1f7c938778580ac6957835e666
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 16:30:58 2014 -0700
-
-    update ChangeLog for OpenSRF 2.4.0-alpha
+    This patch avoids the infinite recursion (and consequent memory
+    leak) by ensuring that the 'session' key is slated for exclusion
+    from serialization from OpenSRF::Application objects during
+    bootstrapping.
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-582	1004	ChangeLog
-
-commit 4426a8a503baec5171ae4245eccd595444815358
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 16:30:05 2014 -0700
-
-    release notes for OpenSRF 2.4.0-alpha
+    Note that the problem does not affect all Perl services; if a
+    Perl service declares at least one streaming method, the auto-registration
+    of the .atomic method will result in 'session'-stripping.
     
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-121	0	doc/RELEASE_NOTES.txt
- create mode 100644 doc/RELEASE_NOTES.txt
-
-commit e8f78636586aeca15632bcfbf0cae20beb2d66a6
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 10:02:14 2014 -0700
-
-    LP#1002028: set Access-Control-Expose-Headers
+    This patch fixes a regression introduced in bug 1350457.
     
-    This allows the OpenSRF JavaScript client library (or
-    to be precise, one that has been modified to direct
-    requests at a different domain) to take advantage of CORS
-    support.
+    To test
+    -------
+    [1] Run 'introspect opensrf.settings' via srfsh; observe
+        that it never returns and that the opensrf.settings drone
+        will grow in memory sized until killed.
+    [2] Apply the patch, then repeat step 1. This time, the
+        request should succeed.
     
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
 
-1	0	src/gateway/apachetools.c
+1	1	src/perl/lib/OpenSRF/System.pm
 
-commit bc914bf1933cc7a9272134fd4bbeb7601d233903
+commit 5bd88d39d7d22e6deee85952f1dc827c138095c4
 Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 09:13:23 2014 -0700
-
-    LP#1002028: support CORS for HTTPS
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	0	src/gateway/apachetools.c
+Date:   Fri Mar 18 10:59:11 2016 -0400
 
-commit d8dbf0c4e44cf45f00ffe2785d0778658029b825
-Author: Bennett Goble <nivardus at gmail.com>
-Date:   Tue May 22 11:57:56 2012 -0400
-
-    LP#1002028: Cross Origin Resource Sharing for OpenSRF
-    
-    Background
-    ----------
-    Browsers' same-origin policy currently restricts requests to the current
-    website's domain to prevent various nefarious scenarios. However,
-    because APIs and other web resources need to remain open to cross-site
-    use Cross Origin Resource Sharing (CORS) was created to allow services
-    to formally authorize cross-origin requests. CORS makes it simple to use
-    OpenSRF's HTTP translator and gateway APIs on websites using separate
-    domains.
+    LP#1559121: remove Debian Squeeze support
     
-    Example Scenarios
-    -----------------
-    1) A library would like an AJAX-driven "quicksearch" box on their main
-    site, which is hosted on a different domain than their catalog.
-    2) A developer wants to create new web applications and services that
-    tie into Evergreen, but does not wish to install EG locally or
-    configure a proxy.
+    Now that Debian Squeeze's LTS (long-term support) period
+    has ended, Evergreen no longer offers community support
+    for that distribution. This patch removes references
+    to Squeeze from the installation scripts and documentation.
     
-    Implementation
-    --------------
-    The function crossOriginHeaders() has been added to apachetools.c.
-    Incoming requests are checked to see if they have an Origin header. The
-    value of the Origin header is checked against a whitelist defined in
-    opensrf_core.xml config (XPath: /config/gateway/cross_origin/origin).
-    The function returns 1 if CORS headers have been added to the response.
+    To test:
     
-    Notes
-    -----
-    * The OpenSRF Javascript client library (opensrf.js) defaults to the root
-    of the current web host "/osrf-http-translator." In addition, synchronous
-    requests are presumed in some situations: resulting in the oncomplete
-    method never returning (Blocking requests are not possible with cross-
-    domain XHR.)
-    * It is also possible to enable CORS with the Apache "set header"
-    configuration directive. However, this means that the necessary headers
-    would be appended to every response.
+    [1] Verify that Debian Squeeze is no longer referenced in
+        the installation documentation.
     
-    Links
-    -----
-    Specification - http://www.w3.org/TR/cors/
-    Wikipedia Article - http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
-    
-    Signed-off-by: Bennett Goble <nivardus at gmail.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-8	0	examples/opensrf_core.xml.example
-36	0	src/gateway/apachetools.c
-5	0	src/gateway/apachetools.h
-5	0	src/gateway/osrf_http_translator.c
-5	0	src/gateway/osrf_json_gateway.c
+0	1	README
+1	14	src/extras/Makefile.install
 
-commit 6ed6f2bc6bf56d0834ae43f00c193bce5a3867a1
+commit 65ed54c4dc713919756644d3873f8fa7d851b427
 Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Thu Aug 21 08:58:18 2014 -0700
-
-    Revert "LP#1350457: Pass caller's session to subrequests called via method_lookup"
-    
-    This reverts commit 96917538c6b6fad688dd40c2a8f0cc9127053b24.
-
-3	3	src/perl/lib/OpenSRF/Application.pm
-
-commit f0c02bf3cc4e8e2c1049fd2ba0fd24079b5aeba6
-Author: Josh Stompro <Stomproj at larl.org>
-Date:   Wed May 21 08:26:53 2014 -0500
+Date:   Thu Feb 4 13:09:48 2016 -0500
 
-    (doc) Reorder changes to ejabberd.cfg in install instructions
+    LP#1350457: add test case for perl2JSONObject change
     
-    I found it annoying that the list of changes to make to ejabberd.cfg
-    didn't follow the order that the options showed up in the default
-    Debian ejabberd.cfg.  I reordered them so after you finish changing one
-    option, you can search forward in the document for the next term.
-    
-    (From Github pull request #3.)
-    
-    Signed-off-by: Josh Stompro <Stomproj at larl.org>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-4	4	README
+4	1	src/perl/t/09-Utils-JSON.t
 
-commit 96917538c6b6fad688dd40c2a8f0cc9127053b24
+commit 675c7a693d9a5d4f228d7b7ca5fe3b3f7fd62214
 Author: Mike Rylander <mrylander at gmail.com>
 Date:   Wed Jul 30 13:29:46 2014 -0400
 
@@ -520,767 +148,79 @@ Date:   Wed Jul 30 13:29:46 2014 -0400
     because then the subrequest can't look up the proper locale, among other
     things. The forthcoming branch passes the caller's session to the subrequest.
     
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-3	3	src/perl/lib/OpenSRF/Application.pm
-
-commit 6cdd5251ac64651534e579f7e02a70a665f60283
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jul 17 11:37:53 2014 -0400
-
-    LP#1341687 listeners log/drop XMPP error msgs
-    
-    The most common form of XMPP error messages are "bounced" messages, i.e.
-    those where the recipient is not available.  Instead of passing these
-    useless and confusing messages down to a drone for processing, log the
-    error in the listener and drop the message.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-9	0	src/libopensrf/osrf_prefork.c
-5	1	src/perl/lib/OpenSRF/Server.pm
-
-commit 54da75bd2f045dbd2225317f74dc5fe38f415fe5
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Aug 20 14:00:17 2014 -0700
-
-    LP#1343578: document <logtag> in the example opensrf_core.xml
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-12	0	examples/opensrf_core.xml.example
-
-commit 2f4ed86a136cfb7547f7e8c3e2109f4473139276
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jul 17 15:10:35 2014 -0400
-
-    LP#1343578: Perl/C syslog "logtag" additions.
-    
-     * Honor logtag value when applying a default appname for Perl and C
-     * Extract / apply logtag in the router
-     * Minor repair: avoid redundant strdup
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/libopensrf/log.c
-1	1	src/libopensrf/osrf_system.c
-5	2	src/perl/lib/OpenSRF/Utils/Logger.pm
-2	0	src/router/osrf_router_main.c
-
-commit 512f77b4652d6c793c21c7b6955480e6b9ada195
-Author: Mike Rylander <mrylander at gmail.com>
-Date:   Fri Jun 20 15:52:47 2014 -0400
-
-    LP#1343578: Add support for log tagging
-    
-    The ability to provide instance-specific log tagging via syslog
-    would make running multiple instances much easier to manage.  So
-    this branch does that.
+    This patch also teaches OpenSRF object registration how to strip certain
+    object members -- in particular, the session -- so that introspection
+    continues to work.
     
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-2	0	include/opensrf/log.h
-26	1	src/libopensrf/log.c
-3	0	src/libopensrf/osrf_system.c
-4	0	src/perl/lib/OpenSRF/Utils/Logger.pm
-
-commit 6c3b1001c6183b2f633d0f43ccd3d28071c0c48d
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon May 5 13:40:46 2014 -0400
-
-    LP#1316245: JS now uses browser-native JSON routines
-    
-    * Replace JSON2jsRaw() with JSON.parse()
-    
-    * Replace js2JSONRaw() with JSON.stringify()
-    
-    * Removed unit tests for JSON2jsRaw() and js2JSONRaw()
-    
-    * Removed jsonPretty() pretty-printing routine.  Use
-      JSON.stringify(json, null, <spaces>) instead.
-    
-    See also:
-    
-    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_native_JSON
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	94	src/javascript/JSON_v1.js
-0	60	src/javascript/tests/testJSON_v1.js
-
-commit 2677f8e815a61f9b808bb57647f6ec9d448f0268
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Aug 4 14:26:36 2014 -0400
-
-    LP#1268619: disable shared workers pending browser issues
-    
-    There appears to be a bug in Chromium where loading the same page
-    multiple times (without a refresh or cache clear) causes the
-    SharedWorker to fail to instantiate on every other page load.
-    Further research pending.  Disabling SharedWorker's entirely for
-    now.
-    
-    Note, to replicate, load a page using shared workers, focus the
-    browser address bar, hit Enter to load the page again.  The shared
-    worker will fail to load on every other page load, though it will
-    appear to the SharedWorker caller (opensrf.js) that the port is open.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-6	1	src/javascript/opensrf.js
-
-commit 755a58642281246df280877f7ad480503b1ddc4b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Wed Jul 30 12:05:36 2014 -0400
-
-    LP#1268619: update JS/WS/SSL code comment
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	4	src/javascript/opensrf_ws_shared.js
-
-commit c65c6d9f91c5372360619004c8602d2a262dfb8b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jul 10 11:29:49 2014 -0400
-
-    LP#1268619: JS status codes can come across as numbers; stringify for match
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/javascript/opensrf.js
-
-commit 17ae5ca5e6db6700dc4b61599c4394f80e727711
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Jul 8 09:41:12 2014 -0400
-
-    LP#1268619: JS libs capture all method errors
-    
-    Instead of selecting specific errors to report as method errors, report
-    all API calls which return 400 or 500-series errors as method errors.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	1	src/javascript/opensrf.js
-
-commit 9fdef970f3785e958090f8edf4ad37ece4459343
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Sun May 4 15:58:17 2014 -0400
-
-    LP#1268619: websocket: avoid sharedworker for firefox 29
-    
-    https://bugzilla.mozilla.org/show_bug.cgi?id=504553#c73
-    
-    Avoid using SharedWorkers when useragent match "Firefox".  FF supports
-    shared workers, but it does not yet support WebSockets within shared
-    workers.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-8	3	src/javascript/opensrf.js
+9	4	src/perl/lib/OpenSRF/Application.pm
+8	1	src/perl/lib/OpenSRF/Utils/JSON.pm
 
-commit f43286bf11119c731ee0dbe9b5b740d8715ace66
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Apr 10 08:50:13 2014 -0400
+commit b484a31c413a017c6b7409f3f101636f68c08c9a
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Tue Jul 14 14:54:27 2015 -0400
 
-    LP#1268619: websockets: detect connectedness of JS default sockets
+    LP#1474507: fix interval_to_seconds for weeks and seconds
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-18	2	src/javascript/opensrf.js
-10	1	src/javascript/opensrf_ws.js
-3	1	src/javascript/opensrf_ws_shared.js
-
-commit 0cf0a8a5fe61228995f75d0f0c6e4f4731888c40
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Apr 7 12:04:33 2014 -0400
-
-    LP#1268619: websockets: auto-upgrade to shared workers; SSL-always
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-42	4	src/javascript/opensrf.js
-95	0	src/javascript/opensrf_ws.js
-4	4	src/javascript/opensrf_ws_shared.js
- create mode 100644 src/javascript/opensrf_ws.js
-
-commit 8120314b86d2b6cafe2f5fd968b4475cc187acfb
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Mar 11 17:25:19 2014 -0400
-
-    LP#1268619: websockets: gateway code repairs & confing options
-    
-    * avoid unneccessary and wrong incantation of apr_thread_exit.  The two
-      sub-threads now both live for the duration of the process.
-    * to be safe, create thread mutex before threads
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-8	1	README.websockets
-252	206	src/gateway/osrf_websocket_translator.c
-
-commit 4ce075beeb5f81b8eb4c2cb2669b3a99ebab40ba
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 10 15:55:24 2014 -0400
-
-    LP#1268619: websockets: apply syslog name in gateway
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	0	src/gateway/osrf_websocket_translator.c
-
-commit 77c7f5889e8f31038cd732feb3e6057a0d3788b5
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 10 08:41:45 2014 -0400
-
-    LP#1268619: websockets: README typo repairs
-    
-    Patch from Warren Layton to repair path to 'envvars' and clarify some
-    text.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	2	README.websockets
-
-commit bb424c1424193e4db340e3f6e17a939dc1dd821a
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Mar 6 15:47:36 2014 -0500
-
-    LP#1268619: websockets : additional apache config docs
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-20	40	README.websockets
-0	43	examples/apache2/websockets.conf
-73	0	examples/apache2/websockets/apache2.conf
- delete mode 100644 examples/apache2/websockets.conf
- create mode 100644 examples/apache2/websockets/apache2.conf
-
-commit 9f2d35e6f6b6ec5a3db109adb518cf270d49c683
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Mar 6 15:05:12 2014 -0500
-
-    LP#1268619: websockets: apache conf -> info logging
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	examples/apache2/websockets.conf
-
-commit b1b3bf60f613b94d1455afb54dff4ad4a7e95ddd
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Wed Mar 5 08:40:05 2014 -0500
-
-    LP#1268619: websockets: remove single-tab JS WS implementation
-    
-    It was falling behind the shared lib in bug fixes and features.  A
-    per-tab WS implementation is (maybe) a dangerous thing to have around,
-    as well, since it encourages /many/ connections.  Can resurrect later if
-    needed.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-0	165	src/javascript/opensrf_ws.js
- delete mode 100644 src/javascript/opensrf_ws.js
-
-commit 6765c6395b0fb2a1c501f7c94a04cfacc7d460db
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Mar 4 14:10:59 2014 -0500
-
-    LP#1268619: websockets: shared worker path; JS api_level
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-25	8	src/javascript/opensrf.js
-
-commit f5ada2850552560a24e473e02532e75870ab7307
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 16:23:44 2014 -0500
-
-    LP#1268619: websockets: initial C libs api_level support
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-4	1	src/libopensrf/osrf_message.c
-
-commit 2bcead2d3e1c560a30c5b9beba6d1cbfe58778ed
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 16:01:58 2014 -0500
-
-    LP#1268619: websockets : gateway log inbound messages at internal
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-7	0	src/gateway/osrf_websocket_translator.c
-
-commit 5631bbdfa0f9a4fe2ea1b238c5e2ffee4b606dc1
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 12:06:12 2014 -0500
-
-    LP#1268619: websocket : add JS lib to makefile
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/Makefile.am
-
-commit 0054ea6684a933037af1cc3bc6358c7096dc051c
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 10:29:23 2014 -0500
-
-    LP#1268619: websocket: avoid module auto configuration
-    
-    We don't want osrf_websocket_translator to be directly loaded as a
-    module, since it is not an apache module, but a shared library loaded by
-    an apache module (mod_websockets).  This is especially true of the default
-    apache instance.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/gateway/Makefile.am
-
-commit e375a1e31b87a3d645b6da05e83f2a29f885f1fc
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 10:05:26 2014 -0500
-
-    LP#1268619: websocket : apache gateway minor fixes
-    
-    Replace remaining remote_ip calls with a get_client_ip() function which
-    operates for apache2 and apache4.
-    
-    Make log functions for applying a log trace value accept const char*'s
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-2	2	include/opensrf/log.h
-11	16	src/gateway/osrf_websocket_translator.c
-2	2	src/libopensrf/log.c
-
-commit 0a0d3f616c9531c7931c365e1912cbcf6358441b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Mar 3 09:42:03 2014 -0500
-
-    LP#1268619: websocket : more JS api docs
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-83	20	src/javascript/opensrf_ws_shared.js
-
-commit aa1c088bd45a254290ad202875eb87c4bd4eeb2a
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jan 16 11:41:01 2014 -0500
-
-    LP#1268619: websockets : added config docs to install readme
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-19	0	README.websockets
-1	1	src/gateway/osrf_websocket_translator.c
-
-commit a64f10c4183a495ec3912458c9b6268856e8fe47
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Jan 14 16:25:20 2014 -0500
-
-    LP#1268619: websocket JS libs: reconnect and auto-connect
-    
-    JS clients no longer need to explicitly call the shared WS setup
-    routine.  It happens under the covers now.
-    
-    JS client detects disconnects and reconnects when the next message send
-    attempt occurs.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-4	6	src/javascript/opensrf.js
-55	45	src/javascript/opensrf_ws_shared.js
-
-commit a02360aadfcd113cbec88d9c2455e42fdd74e536
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Jan 14 16:22:23 2014 -0500
-
-    LP#1268619: websocket translator idle timeout / graceful shutdown
-    
-    Added support for an idle timeout and idle check interval configuration
-    variables.  These allow each websocket apache process to kick off
-    clients that have been connected and are idle for too long, thus hogging
-    a process unnecessarily.
-    
-    Added a SIGUSR1 signal handler which forces the idle timeout to be very
-    low and a short re-check period so that the client can be kicked as soon
-    as there are no open conversations.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-263	25	src/gateway/osrf_websocket_translator.c
-
-commit bef394a7c24df54f1e63fc3e83cd473195a46c3a
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Jan 10 11:57:29 2014 -0500
-
-    LP#1268619: websockets: support WS via shared web workers
-    
-    This allows mutiple browser tabs to share the same websocket connection.
-    
-    TODO: add tab (port) disconnect handler
-    TODO: more docs / examples
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-55	0	src/javascript/opensrf.js
-176	0	src/javascript/opensrf_ws_shared.js
- create mode 100644 src/javascript/opensrf_ws_shared.js
-
-commit fdb255a92f9fa687a50bed05ef918523cf902d8b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jan 9 15:00:03 2014 -0500
-
-    LP#1268619: websocket: do not disconnect ws() on osrf disconnect message
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-0	5	src/javascript/opensrf.js
-
-commit d546d7eacb183ba2ddd0c0ba5dc281dc5086ae81
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Feb 5 10:22:34 2013 -0500
-
-    LP#1268619: temporary websocket installer README
+    This patch fixes an issue where OpenSRF::Utils::interval_to_seconds()
+    was not recognizing intervals expressed as seconds or weeks.
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-47	0	README.websockets
- create mode 100644 README.websockets
+2	2	src/perl/lib/OpenSRF/Utils.pm
 
-commit e4ef36f385c4f3b83ac4b49f2b07ee19c3166ff0
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Feb 5 09:52:57 2013 -0500
+commit 61e6732111db9389038bce1b1f6f655b619fdc86
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Tue Jul 14 15:10:15 2015 -0400
 
-    LP#1268619: Sample Websocket translator Apache 2.2 configuration
+    LP#1474507: tests for interval_to_seconds
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-43	0	examples/apache2/websockets.conf
- create mode 100644 examples/apache2/websockets.conf
+16	0	src/perl/t/09-Utils-interval_to_seconds.t
+ create mode 100644 src/perl/t/09-Utils-interval_to_seconds.t
 
-commit 32ab4b133c9c96780e8b202ab1efe46bbf321c3b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Jan 25 12:38:13 2013 -0500
-
-    LP#1268619: websocket gateway: improved memory mgt; logging
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	src/gateway/Makefile.am
-18	23	src/gateway/osrf_websocket_translator.c
-2	2	src/javascript/opensrf_ws.js
-
-commit 0f3aa6480d2fbc9645571e057dac3f3be08709d1
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Jan 21 11:34:57 2013 -0500
-
-    LP#1268619: websockets; free temporary osrf msgs; minor comment change
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-11	2	src/gateway/osrf_websocket_translator.c
-
-commit de238b740f3a54dacd07610d8e187f417bf5b677
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Dec 10 14:33:14 2012 -0500
-
-    LP#1268619: websocket; docs, more memory mgmt
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-79	34	src/gateway/osrf_websocket_translator.c
-
-commit f990a29db95d9b1c06efa22c1b3f4fbc43206571
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Nov 12 16:46:19 2012 -0500
-
-    LP#1268619: websocket translator
-    
-    * starting packet inspection
-    * activity log; recipient removal
-    * only cache connected recipients; use request_rec pool for session_pool parent
-    * wrap all thread work in mutex
-    * session memory goodness
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-278	72	src/gateway/osrf_websocket_translator.c
-
-commit 27707398e955b8a8a2df1a5311aebc19b8eb1708
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Nov 8 12:36:16 2012 -0500
-
-    LP#1268619: websocket JS additions
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-51	50	src/javascript/opensrf.js
-124	63	src/javascript/opensrf_ws.js
-
-commit cc42cb62c47edabd693e491ad0d939970d7dbc53
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Oct 30 15:51:18 2012 -0400
-
-    LP#1268619: track websocket_plugin.h locally until replaced by makefile.install process
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-130	0	src/gateway/websocket_plugin.h
- create mode 100644 src/gateway/websocket_plugin.h
-
-commit 9e455c227be32bed4a16e6dab7045b6424e2ba15
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Oct 29 17:27:44 2012 -0400
-
-    LP#1268619: websocket gateway repairs and cleanup
-    
-    * use jsonObjectFree() on jsonObjets, not free();
-    * removed some debugging logs
-    * accommodate API changes for Apache 2.4
-    * safer logging:
-    
-      Avoid using ap_log_rerror, in particular referencing server->request
-      from the responder thread, since the request_rec will be invalid after
-      on_disconnect is called.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-61	66	src/gateway/osrf_websocket_translator.c
-
-commit a77eb22c27183d23fb08ed40bc75469d8c54b884
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Oct 26 15:06:13 2012 -0400
-
-    LP#1268619: Apache websocket translator module
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-6	2	src/gateway/Makefile.am
-427	0	src/gateway/osrf_websocket_translator.c
- create mode 100644 src/gateway/osrf_websocket_translator.c
-
-commit 1dafbe7512f086a58212fcc66c07e348647f31ad
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Sep 20 15:55:04 2012 -0400
-
-    LP#1268619: OpenSRF JS websockets plugin
-    
-    Adds an opensrf_ws.js handler.  Requries some small modifications to
-    opensrf.js.  Load opensrf_ws.js in DojoSRF.
-    
-    For now, to use, add to script:
-    
-    OpenSRF.Session.transport = OSRF_TRANSPORT_TYPE_WS;
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	0	src/javascript/DojoSRF.js
-53	15	src/javascript/opensrf.js
-104	0	src/javascript/opensrf_ws.js
- create mode 100644 src/javascript/opensrf_ws.js
-
-commit cb56fd32eb43f037c4126e1398b0e9cd546d9f19
+commit 8f6923efc2c632548f860a9aaabd92fdf2545437
 Author: Mike Rylander <mrylander at gmail.com>
-Date:   Fri Jun 20 16:48:51 2014 -0400
+Date:   Thu Sep 10 16:56:13 2015 -0400
 
-    LP#1337401: Only care about our own processes
+    LP#1494486: Limit damage caused by dropped drone XMPP sockets
     
-    OpenSRF can run mutiple times, as different users, on one host.
-    Right now we look for all service processes, but we should only
-    look for our own. This patch does that.
+    It is apparently possible for drones to get into a state where their XMPP
+    socket is closed but they don't notice. This is bad because the drone can
+    continue to receive requests from its listener but can no longer respond
+    to them. To limit the pain this can cause, we should kill the drone as soon
+    as we notice this condition.
     
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-5	5	bin/opensrf-perl.pl.in
-
-commit 65ce998b02d0778541b3101379013448cba606d2
-Author: Ben Shum <bshum at biblio.org>
-Date:   Fri Apr 18 16:36:38 2014 -0400
-
-    LP#1315525: Add trusty target and remove lucid from README
+    To avoid overhead, this commit notices when the socket returns an error (or
+    raises a signal, in Perl) upon write, and exits immediately.  One message
+    will be lost, but the drone will no longer be a black hole that does nothing
+    but absorb requests it can never fill.
     
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	1	README
-
-commit be5c3d82ecba066b1f4b811af9a32a85eb1c6d70
-Author: Chris Sharp <csharp at georgialibraries.org>
-Date:   Sun Jan 26 10:41:31 2014 -0500
-
-    LP#1315525: Updating Makefile.install for Ubuntu 14.04. Removing lucid support.
-    
-    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
-    Signed-off-by: Ben Shum <bshum at biblio.org>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-12	11	src/extras/Makefile.install
-
-commit 339ac28d47a466d2fd0009c24fe0385cb5326479
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Fri Feb 28 09:33:19 2014 -0800
-
-    LP#1286248: remove osrf_ctl.sh
-    
-    As osrf_ctl.sh was deprecated in favor of osrf_control, this patch
-    removes the deprecated script entirely.
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-
-0	1	.gitignore
-0	102	bin/osrf_ctl.sh.in
-1	2	configure.ac
-1	1	src/Makefile.am
- delete mode 100755 bin/osrf_ctl.sh.in
-
-commit 8fb4405a2768dd752743dab71d6e2e8a50ee6cd5
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Apr 2 15:24:06 2014 -0700
-
-    LP#1285915: document that perl2JSON doesn't order hash keys
-    
-    This patch documents that JSON strings returned by
-    OpenSRF::Utils::JSON->perl2JSON() should not be expected to have
-    hash keys sorted in any particular order.  It also adjusts a
-    corresponding test case to consistently pass under Perl 5.18, which
-    introduces hash order randomization.
-    
-    Forcing JSON output to be in canonical form is another option, and
-    easily done by JSON::XS, but would add overhead.
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-
-2	1	src/perl/lib/OpenSRF/Utils/JSON.pm
-5	1	src/perl/t/09-Utils-JSON.t
-
-commit 8a8b4cbbae62d3e927b24541f31fec93949b1752
-Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Wed Apr 2 16:05:33 2014 -0700
-
-    LP#1234816: improve const-correctness of osrfCachePutString and osrfCachePutObject
-    
-    Since the cache key is not modified by osrfCachePutString and
-    osrfCachePutObject, this patch changes the key parameter of those
-    two functions from char* to const char*.  It also updates one
-    caller osrfCachePutObject to not cast away const-ness.
-    
-    This patch has no functional impact, but enables future callers
-    of osrfCachePut* to pass constant strings without having to
-    cast away the const-ness.
-    
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-
-2	2	include/opensrf/osrf_cache.h
-1	1	src/gateway/osrf_http_translator.c
-2	2	src/libopensrf/osrf_cache.c
-
-commit 0d2c6d74cf60e000646e534a7682b508c84ea55a
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Apr 10 13:27:34 2014 -0400
-
-    LP#1306044 Removing deprecated jabber register script
-    
-    This script is no longer user, since ejabberdctrl is used instead.
-    What's more, this script uses a Perl package (libnet-jabber-perl) which
-    is no longer available in Debian (Jessie).
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-0	1	Makefile.am
-0	50	examples/register.pl
- delete mode 100755 examples/register.pl
-
-commit a53e3878ae172477582ae3cfe3ebd8ec9be14e65
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Apr 10 12:05:08 2014 -0400
-
-    LP#1306044 Debian Jessie Makefile.install target
-    
-    * Removes Perl Net::Jabber as a dependency.  There is no Jessie package
-      for this and OpenSRF hasn't used it in a long time.
-    
-    * Leaving Debian Squeeze in place for now
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	0	README
-15	3	src/extras/Makefile.install
-
-commit 2e919d795f0d6c5c17218fef68e894903b168a48
-Author: Mike Rylander <mrylander at gmail.com>
-Date:   Thu Mar 13 16:55:19 2014 -0400
-
-    LP#1292214: Improve docgen output
-    
-    Docgen output would be a bit more useful if it respected the formatting
-    (such as it is) of the signature content provided by the developer. So,
-    let's make that happen.
+    To test
+    -------
+    [1] Start an OpenSRF stack and look for a drone process.
+    [2] Use lsof to identify which socket that drone is using
+        to talk to XMPP.
+    [3] Use gdb to attach to the process and close the socket, e.g.,
+    
+        $ gdb -p $PID
+        (gdb) p close(11) # or whatever the socket number was
+        (gdb) c
+    
+    [4] Use srfsh to make requests of that service. Eventually, one
+        of them will hit the drone.
+    [5] Sans patch, the request will get handled by the drone, but
+        the results will never get sent, and the drone will remain
+        available to handle other requests.
+    [6] With the patch, the drone will exit when it discovers that it
+        can no longer write to the XMPP socket.
     
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1	1	src/extras/docgen.xsl
-
-commit 951d97a32db426874c4bb6314e473660d765f302
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon May 13 16:19:51 2013 -0400
-
-    LP#1179660: remove OpenSRF.pm AUTOLOAD
-    
-    Instead of simply producing an error message in the OpenSRF logs, calls
-    to nonexistent subroutines are now fatal errors which will stop code
-    execution.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-
-1	40	src/perl/lib/OpenSRF.pm
+4	2	src/libopensrf/osrf_app_session.c
+5	0	src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm

commit 0a469559782c8e79e489e3fa003f90c7c92d51bf
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Thu Feb 16 15:32:13 2017 -0500

    add release notes for OpenSRF 2.4.2
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/doc/RELEASE_NOTES.txt b/doc/RELEASE_NOTES.txt
index 720c8ff..2819848 100644
--- a/doc/RELEASE_NOTES.txt
+++ b/doc/RELEASE_NOTES.txt
@@ -9,6 +9,34 @@ The following Linux distributions are supported:
   * Fedora 17, 18
   * Ubuntu 12.04 LTS (Precise Pangolin) and 14.04 (Trusty Tahr)
 
+OpenSRF 2.4.2
+-------------
+OpenSRF 2.4.2 is a security release. Users of 2.4.1 and earlier are strongly
+urged to upgrade as soon as possible.
+
+Bugfixes in 2.4.2
+~~~~~~~~~~~~~~~~~
+
+* LP#1652382: improve normalization of memcache keys to avoid potential
+denial of service and privilege escalation attacks.
+* LP#1652122: fix an infinite recursion bug in opensrf.system.method.all.
+* LP#1655449: propagate bundling/chunking limits to subrequests.
+* LP#1559121: remove support for Debian Squeeze
+* LP#1350457: pass caller's session to subrequests called via method_lookup
+* LP#1494486: limit damage caused by dropped drone XMPP socket
+* LP#1474507: fix interval_to_seconds for weeks and seconds
+
+Acknowledgments
+~~~~~~~~~~~~~~
+We would like to acknowledge the following people who contributed to
+OpenSRF 2.4.2:
+
+* Galen Charlton
+* Jason Etheridge
+* Jeff Davis
+* Kathy Lussier
+* Mike Rylander
+
 OpenSRF 2.4.1
 -------------
 

commit e72a15842c10d4c2288323ede92f38d4b4b41794
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Wed Feb 15 16:58:06 2017 -0500

    LP#1652382: more improvements to cache key munging
    
    - teach osrfCacheRemove to clean keys
    - fix implict declaration compilation warning
    - account for fact that iscntrl('\0') returns true
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>

diff --git a/src/libopensrf/osrf_cache.c b/src/libopensrf/osrf_cache.c
index dd489e1..2f829cc 100644
--- a/src/libopensrf/osrf_cache.c
+++ b/src/libopensrf/osrf_cache.c
@@ -14,6 +14,7 @@ GNU General Public License for more details.
 */
 
 #include <opensrf/osrf_cache.h>
+#include <ctype.h>
 
 #define MAX_KEY_LEN 250
 
@@ -59,7 +60,7 @@ char* _clean_key( const char* key ) {
     char* clean_key = (char*)strdup(key);
     char* d = clean_key;
     char* s = clean_key;
-    do while(isspace(*s) || iscntrl(*s)) s++; while(*d++ = *s++);
+    do while(isspace(*s) || ((*s != '\0') && iscntrl(*s))) s++; while(*d++ = *s++);
     if (strlen(clean_key) > MAX_KEY_LEN) {
         char *hashed = md5sum(clean_key);
         clean_key[0] = '\0';
@@ -138,7 +139,9 @@ int osrfCacheRemove( const char* key, ... ) {
 	memcached_return rc;
 	if( key ) {
 		VA_LIST_TO_STRING(key);
-		rc = memcached_delete(_osrfCache, VA_BUF, strlen(VA_BUF), 0 );
+		char* clean_key = _clean_key( VA_BUF );
+		rc = memcached_delete(_osrfCache, clean_key, strlen(clean_key), 0 );
+		free(clean_key);
 		if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_BUFFERED) {
 			osrfLogDebug(OSRF_LOG_MARK, "Failed to delete key [%s] - %s",
 				VA_BUF, memcached_strerror(_osrfCache, rc));

commit c1eae17ad8b61d62ad6795ca3cd01347c39c7903
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Wed Feb 15 14:12:34 2017 -0500

    LP#1652382: handle cases where supplied key is longer than 250 bytes
    
    With this patch, if cache clients want to use a key longer
    than the memcached text protocol limit of 250 bytes, the
    key is normalized to 'shortened_' + md5_hex(normalized_key).
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>

diff --git a/src/libopensrf/osrf_cache.c b/src/libopensrf/osrf_cache.c
index 4fccfd0..dd489e1 100644
--- a/src/libopensrf/osrf_cache.c
+++ b/src/libopensrf/osrf_cache.c
@@ -15,6 +15,8 @@ GNU General Public License for more details.
 
 #include <opensrf/osrf_cache.h>
 
+#define MAX_KEY_LEN 250
+
 static struct memcached_st* _osrfCache = NULL;
 static time_t _osrfCacheMaxSeconds = -1;
 static char* _clean_key( const char* );
@@ -57,7 +59,14 @@ char* _clean_key( const char* key ) {
     char* clean_key = (char*)strdup(key);
     char* d = clean_key;
     char* s = clean_key;
-    do while(isspace(*s)) s++; while(*d++ = *s++);
+    do while(isspace(*s) || iscntrl(*s)) s++; while(*d++ = *s++);
+    if (strlen(clean_key) > MAX_KEY_LEN) {
+        char *hashed = md5sum(clean_key);
+        clean_key[0] = '\0';
+        strncat(clean_key, "shortened_", 11);
+        strncat(clean_key, hashed, MAX_KEY_LEN);
+        free(hashed);
+    }
     return clean_key;
 }
 
diff --git a/src/perl/lib/OpenSRF/Utils/Cache.pm b/src/perl/lib/OpenSRF/Utils/Cache.pm
index ba9f1a1..36721d9 100644
--- a/src/perl/lib/OpenSRF/Utils/Cache.pm
+++ b/src/perl/lib/OpenSRF/Utils/Cache.pm
@@ -2,6 +2,7 @@ package OpenSRF::Utils::Cache;
 use strict; use warnings;
 use base qw/OpenSRF/;
 use Cache::Memcached;
+use Digest::MD5 qw(md5_hex);
 use OpenSRF::Utils::Logger qw/:level/;
 use OpenSRF::Utils::Config;
 use OpenSRF::Utils::SettingsClient;
@@ -281,6 +282,9 @@ sub _clean_cache_key {
     my $key = shift;
 
     $key =~ s{(\p{Cntrl}|\s)}{}g;
+    if (length($key) > 250) { # max length of memcahed key
+        $key = 'shortened_' . md5_hex($key);
+    }
 
     return $key;
 }

commit b2ed8ef36baa1242448beae89ffe51a98f8175d1
Author: Mike Rylander <mrylander at gmail.com>
Date:   Mon Jan 30 12:54:10 2017 -0500

    LP#1652382: Make use of the clean key just created
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>

diff --git a/src/libopensrf/osrf_cache.c b/src/libopensrf/osrf_cache.c
index 7574b95..4fccfd0 100644
--- a/src/libopensrf/osrf_cache.c
+++ b/src/libopensrf/osrf_cache.c
@@ -111,7 +111,7 @@ char* osrfCacheGetString( const char* key, ... ) {
 	if( key ) {
 		VA_LIST_TO_STRING(key);
 		char* clean_key = _clean_key( VA_BUF );
-		char* data = (char*) memcached_get(_osrfCache, VA_BUF, strlen(VA_BUF), &val_len, &flags, &rc);
+		char* data = (char*) memcached_get(_osrfCache, clean_key, strlen(clean_key), &val_len, &flags, &rc);
 		free(clean_key);
 		if (rc != MEMCACHED_SUCCESS) {
 			osrfLogDebug(OSRF_LOG_MARK, "Failed to get key [%s] - %s",

commit f608444010fff1b4b6da06b5ec49df643218b005
Author: Mike Rylander <mrylander at gmail.com>
Date:   Fri Jan 27 15:25:05 2017 -0500

    LP#1652382: normalization of memcache keys in C code
    
    Memcache does not allow spaces in keys, so here we will actively strip them
    from any key we get from a caller.  Some callers are not very proactive about
    sending clean keys, and this patch prevents issues that can poison C-based
    OpenSRF service backends.
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>

diff --git a/src/libopensrf/osrf_cache.c b/src/libopensrf/osrf_cache.c
index fc4d488..7574b95 100644
--- a/src/libopensrf/osrf_cache.c
+++ b/src/libopensrf/osrf_cache.c
@@ -17,6 +17,7 @@ GNU General Public License for more details.
 
 static struct memcached_st* _osrfCache = NULL;
 static time_t _osrfCacheMaxSeconds = -1;
+static char* _clean_key( const char* );
 
 int osrfCacheInit( const char* serverStrings[], int size, time_t maxCacheSeconds ) {
 	memcached_server_st *server_pool;
@@ -52,17 +53,30 @@ int osrfCachePutObject( const char* key, const jsonObject* obj, time_t seconds )
 	return 0;
 }
 
+char* _clean_key( const char* key ) {
+    char* clean_key = (char*)strdup(key);
+    char* d = clean_key;
+    char* s = clean_key;
+    do while(isspace(*s)) s++; while(*d++ = *s++);
+    return clean_key;
+}
+
 int osrfCachePutString( const char* key, const char* value, time_t seconds ) {
 	memcached_return rc;
 	if( !(key && value) ) return -1;
 	seconds = (seconds <= 0 || seconds > _osrfCacheMaxSeconds) ? _osrfCacheMaxSeconds : seconds;
 	osrfLogInternal( OSRF_LOG_MARK, "osrfCachePutString(): Putting string (key=%s): %s", key, value);
+
+	char* clean_key = _clean_key( key );
+
 	/* add or overwrite existing key:value pair */
-	rc = memcached_set(_osrfCache, key, strlen(key), value, strlen(value), seconds, 0);
+	rc = memcached_set(_osrfCache, clean_key, strlen(clean_key), value, strlen(value), seconds, 0);
 	if (rc != MEMCACHED_SUCCESS) {
 		osrfLogError(OSRF_LOG_MARK, "Failed to cache key:value [%s]:[%s] - %s",
 			key, value, memcached_strerror(_osrfCache, rc));
 	}
+
+	free(clean_key);
 	return 0;
 }
 
@@ -73,7 +87,9 @@ jsonObject* osrfCacheGetObject( const char* key, ... ) {
 	jsonObject* obj = NULL;
 	if( key ) {
 		VA_LIST_TO_STRING(key);
-		const char* data = (const char*) memcached_get(_osrfCache, VA_BUF, strlen(VA_BUF), &val_len, &flags, &rc);
+		char* clean_key = _clean_key( VA_BUF );
+		const char* data = (const char*) memcached_get(_osrfCache, clean_key, strlen(clean_key), &val_len, &flags, &rc);
+		free(clean_key);
 		if (rc != MEMCACHED_SUCCESS) {
 			osrfLogDebug(OSRF_LOG_MARK, "Failed to get key [%s] - %s",
 				VA_BUF, memcached_strerror(_osrfCache, rc));
@@ -94,7 +110,9 @@ char* osrfCacheGetString( const char* key, ... ) {
 	memcached_return rc;
 	if( key ) {
 		VA_LIST_TO_STRING(key);
+		char* clean_key = _clean_key( VA_BUF );
 		char* data = (char*) memcached_get(_osrfCache, VA_BUF, strlen(VA_BUF), &val_len, &flags, &rc);
+		free(clean_key);
 		if (rc != MEMCACHED_SUCCESS) {
 			osrfLogDebug(OSRF_LOG_MARK, "Failed to get key [%s] - %s",
 				VA_BUF, memcached_strerror(_osrfCache, rc));

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                           | 1338 ++++-------------------------------
 doc/RELEASE_NOTES.txt               |   28 +
 src/libopensrf/osrf_cache.c         |   38 +-
 src/perl/lib/OpenSRF.pm             |    2 +-
 src/perl/lib/OpenSRF/Utils/Cache.pm |    4 +
 src/python/setup.py                 |    2 +-
 version.m4                          |    2 +-
 7 files changed, 208 insertions(+), 1206 deletions(-)


hooks/post-receive
-- 
OpenSRF


More information about the opensrf-commits mailing list