ChangeLog ========= OpenSRF 2.1.2 ------------- commit b0dd15b964f5856059d0fd40981f8985ef8ea56f Author: Dan Scott Date: Sun Nov 18 07:41:46 2012 -0500 Bump version numbers for 2.1.2 Signed-off-by: Dan Scott 2 2 src/perl/lib/OpenSRF.pm 1 1 version.m4 commit 07ab6dd958a905cb439f9cded9ae2828b7888a2f Author: Dan Scott Date: Fri Nov 16 10:36:28 2012 -0500 Whitespace in OpenSRF/System.pm Spaces not tabs. Signed-off-by: Dan Scott 21 21 src/perl/lib/OpenSRF/System.pm commit 5efbb97cbeb87d37b4f64bcef8babeab5e5c54b1 Author: Jason Stephenson Date: Thu Nov 15 12:20:11 2012 -0500 Move setting of OpenSRF::Application::shared_conf to load_bootstrap_config. shared_conf was not available and broke clients that were not in a service, such as the Evergreen CStoreEditor. Signed-off-by: Jason Stephenson Signed-off-by: Dan Scott 8 9 src/perl/lib/OpenSRF/System.pm commit 2cb5313d0d5bf3e2b912ebbcc653cedcac22336d Author: Dan Scott Date: Tue Oct 30 23:39:25 2012 -0400 Bump release numbers, create 2.1.1 change log Signed-off-by: Dan Scott Conflicts: ChangeLog 1243 1 ChangeLog 2 2 src/perl/lib/OpenSRF.pm 1 1 version.m4 commit 42e369b2efcbbc31447c43b5fbaa3999ad88cf30 Author: Bill Erickson Date: Mon May 21 16:42:12 2012 -0400 ChopChop is dead, long live ChopChop. It was never fully baked, nor was it secure, nor does it compile cleanly with -Wall, nor does it provide any useful examples for working with opensrf, etc. Time to clear out. So long, chopchop. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 0 6 Makefile.am 0 21 configure.ac 0 13 examples/opensrf_core.xml.example 0 4 src/Makefile.am 0 23 src/jserver/Makefile.am 0 1082 src/jserver/osrf_chat.c 0 45 src/jserver/osrf_chat.h 0 92 src/jserver/osrf_chat_main.c delete mode 100644 src/jserver/Makefile.am delete mode 100644 src/jserver/osrf_chat.c delete mode 100644 src/jserver/osrf_chat.h delete mode 100644 src/jserver/osrf_chat_main.c OpenSRF 2.1.1 ------------- commit e93c7c932b144aac2633fe5d058f298a29909f02 Author: Dan Scott Date: Tue Oct 30 23:34:04 2012 -0400 Release notes for 2.1.1: input log redaction Signed-off-by: Dan Scott 12 3 doc/RELEASE_NOTES.txt commit fd367d0a978cd85d2726a1ea2bd0412abf57fb12 Author: Dan Scott Date: Tue Oct 30 23:27:34 2012 -0400 Purge the wildly out-of-date Roadmap document Signed-off-by: Dan Scott 0 51 doc/Roadmap.txt delete mode 100644 doc/Roadmap.txt commit 97a520bce382c8806ad1772f98e1e9169a2297b9 Author: Dan Scott Date: Tue Nov 6 12:32:48 2012 -0500 Bump libopensrf version-info revision and age The log redaction functionality changed the source files (thus 'age' gets bumped) and is backwards-compatible (thus 'revision' gets bumped) but maintains the same interface (thus 'current' stays the same). Signed-off-by: Dan Scott 1 1 src/libopensrf/Makefile.am commit b81a8c2ada734fe8c47e758c681e2bb952f29c39 Author: Dan Wells Date: Wed Oct 31 10:21:14 2012 -0400 Protect against empty/invalid log_protect sections Connectivity would fail if the log_protect section of opensrf_core.xml was empty, or contained only comments, as it does in the default example. Add a simple guard against this potential problem. This fix will also protect against cases where the 'log_protect' section contains text rather than separate configuration elements. Credit to Dan Scott for finding the bug and working out how to fix it. Signed-off-by: Dan Wells Signed-off-by: Dan Scott 6 4 src/perl/lib/OpenSRF/Application.pm commit a2a286ef7fbf70e695ab23289fe9f131a9037922 Author: Bill Erickson Date: Wed Oct 17 15:57:14 2012 -0400 Consolidate duplicate osrfMethodVerifyContext handler Log redaction was not occuring in some cases because the code was using the OSRF_METHOD_VERIFY_CONTEXT macro instead of the similarly named function which does the same thing. This change points the macro at the function so that all code uses the same underlying code. Note this change turns on CALL param logging unconditionally, whereas users of the macro would previously have been able to avoid CALL logging via the OSRF_LOG_PARAMS variable. In practice, little code uses the macro and all code enables OSRF_LOG_PARAMS. If we need to add this control back, it can be added directly to osrfMethodVerifyContext(). For now, it's one less env variable we need to define. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 2 36 include/opensrf/osrf_application.h commit 157ad5d6553b29585afd4b2180db91e2d13b5961 Author: Dan Wells Date: Fri Oct 12 09:45:35 2012 -0400 Log redaction for sensitive input values, Perl side This commit attempts to do the same as the C log redaction fix, but now at the Perl level. The Perl configuration code was a little more crufty than the C side, so an additional feature was added to Config.pm to support the new 'shared' section. At some point we should consider a ground-up rewrite of Config.pm, as the code seems to suffer some from its INI file roots. Signed-off-by: Dan Wells Signed-off-by: Dan Scott 3 3 examples/opensrf_core.xml.example 21 1 src/perl/lib/OpenSRF/Application.pm 9 0 src/perl/lib/OpenSRF/System.pm 48 12 src/perl/lib/OpenSRF/Utils/Config.pm commit fe9617eda262cc3a3890d068e938ef0ffb99d07a Author: Dan Wells Date: Wed Oct 10 17:28:07 2012 -0400 Log redaction for sensitive input values, C side Some service/methods deal with sensitive information (passwords, financial, etc.). All input values (e.g. gateway method params) are currently logged in the activity log regardless of your log level. This commit will allow you to redact the params of any method which matches a configurable set of left-anchored string values. This commit adds the initial config, and covers redaction of method parameters sent through the gateway, the translator, and more general OpenSRF C applications. Signed-off-by: Dan Wells Signed-off-by: Dan Scott 12 0 examples/opensrf_core.xml.example 1 0 include/opensrf/osrf_application.h 2 0 include/opensrf/osrf_system.h 25 10 src/gateway/osrf_http_translator.c 22 7 src/gateway/osrf_json_gateway.c 23 4 src/libopensrf/osrf_application.c 6 0 src/libopensrf/osrf_system.c commit cd24bb1c94c95027310f63909b692e4dbb05507f Author: Dan Scott Date: Mon Oct 22 11:50:21 2012 -0400 Use apt-get instead of aptitude on Debian / Ubuntu Reports from the field state that aptitude is not installed by default on Ubuntu any longer; thus go with the sure thing. Signed-off-by: Dan Scott 1 1 README 1 1 src/extras/Makefile.install commit 20a115a421c56b56968accc27b63da7656a70ee8 Author: Dan Scott Date: Mon Oct 22 11:53:24 2012 -0400 Remove the reference to Evergreen in the README Stephen Wills reported problems installing Evergreen because of missing dependencies, and reading the OpenSRF README shows that it refers to the Evergreen prerequisite installer in a confusing way that might lead to users using only the Evergreen Makefile.install, rather than using the OpenSRF Makefile.install. In addition, Fedora 16 is going to be out of support soon, and Fedora 17 and 18 are well-tested targets now. Signed-off-by: Dan Scott 2 2 README commit 83dd58abfca26418f8bdaecb73dbd2c177cc0093 Author: Jason Stephenson Date: Tue Nov 6 09:16:18 2012 -0500 Fix installation on Ubuntu Precise. Remove libreadline5-dev and replace with libreadline-dev for Ubuntu and Debian. This installs libreadline6, but everything still works since there's nothing version specific in our use of libreadline. Signed-off-by: Jason Stephenson Signed-off-by: Dan Scott 2 3 src/extras/Makefile.install OpenSRF 2.1.0 ------------- commit 79694c390e0350a199be409ceadb19945ddf2b5c Author: Dan Scott Date: Wed May 30 23:12:32 2012 -0400 No, Ubuntu Hardy is not well-tested for 2.1.0 One more reference to Ubuntu Hardy that we can remove from the README/INSTALL. Signed-off-by: Dan Scott 0 1 README commit 885a4d87cd06f31071ff9b2f728fd7aa1c83d7be Author: Dan Scott Date: Wed May 30 23:11:14 2012 -0400 Generate ChangeLog for 2.1.0 release Signed-off-by: Dan Scott 821 59 ChangeLog commit 3eb7c54a734369a7bffc4a3c30bef2e65573be52 Author: Dan Scott Date: Sun May 27 22:52:23 2012 -0400 2.1.0 release notes A summary of some of the highlights of the new release, for functionality that has been added and deleted. Does not address bug fixes such as the much more robust Perl child handling; perhaps we should focus on those as well? Signed-off-by: Dan Scott 89 0 doc/RELEASE_NOTES.txt create mode 100644 doc/RELEASE_NOTES.txt commit cdd0816c624ff0843ee5ab201346521ae91f474a Author: Dan Scott Date: Wed May 30 22:33:17 2012 -0400 Bump version numbers to help with library compatibility By bumping the OpenSRF version numbers for Perl libs, Python libraries, and the libtool versioning for the libopensrf library, projects that build on OpenSRF will be able to flag the minimum required version and bail out early if an older version of OpenSRF has been installed. Signed-off-by: Dan Scott 2 2 src/libopensrf/Makefile.am 1 1 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit ee2c79929aa63ff8d6749da7d10c15ab967d9fd5 Author: Dan Scott Date: Tue May 22 16:45:33 2012 -0400 Add "tar" to base prereqs to appease autotools On a minimal install of Fedora 17, I was running into the perplexing error message whilst running 'autoreconf -i': libtoolize: can not copy `/usr/share/libtool/config/ltmain.sh' to `./' This was confusing because a manual copy would, in fact, copy the file just fine. http://lists.gnu.org/archive/html/libtool/2009-07/msg00030.html finally lead to enlightenment: autotools uses "tar" to copy files, not "cp". Thus, to avoid similar head-scratching install problems in the future, add "tar" to the base prerequisites for building OpenSRF (both to the DEBs list and the RPMs list). Signed-off-by: Dan Scott 3 1 src/extras/Makefile.install commit 788a396a2b380c5950c09368f85e8d4a79ec2ca8 Author: Dan Scott Date: Tue May 22 02:26:04 2012 -0400 Update OS support in README / Makefile.install Kick Debian Lenny, Ubuntu Hardy, and RHEL 5 / CentOS 5 to the curb. Also change the name of the README to the more generic & instructive "Installing OpenSRF" rather than "README for OpenSRF #.#.#". Signed-off-by: Dan Scott Conflicts: README Signed-off-by: Dan Scott 3 9 README 3 243 src/extras/Makefile.install commit 3dd57f268b8b5d39f85139e4c4e5246bd9e2cda5 Author: Thomas Berezansky Date: Wed May 23 10:13:41 2012 -0400 Nagios Example Plugin for monitoring services Does not check that all drones in a brick are fully up, just that the entire brick will respond to each service, even if only one drone happens to be running the listener properly (and said listener is responding). Signed-off-by: Thomas Berezansky Signed-off-by: Dan Scott 219 0 examples/nagios/check_osrf_services create mode 100755 examples/nagios/check_osrf_services commit e7431d6fa114c35d3dc5b430fbb4bdae99edaa88 Author: Bill Erickson Date: Mon Apr 2 14:55:56 2012 -0400 Detect and repair multipart/mixed message delivery errors For unknown reasons, the Content-Type header will occasionally be included in the XHR.responseText for multipart/mixed messages. When this happens, strip the header and newlines from the message body and re-parse. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 33 1 src/javascript/opensrf.js commit 832f166b38acc9c68c9c1fcea1432d2ca881316b Author: Galen Charlton Date: Mon May 21 17:29:05 2012 -0400 fix up index/position type for calls of various osrfList* functions osrfListSet, osrfListRemove, osrfListGetIndex, and osrfListExtract all expect unsigned ints for the index/position parameter. src/jserver is ignored by this commit as its removal is pending. Signed-off-by: Galen Charlton Signed-off-by: Dan Scott 1 1 src/gateway/osrf_http_translator.c 2 2 src/libopensrf/osrf_json_tools.c 1 1 src/libopensrf/osrf_list.c 1 1 src/libopensrf/string_array.c 1 1 src/router/osrf_router.c commit bdc4cfe354051e4132d6ffa2da3e0942acb3f780 Author: Dan Scott Date: Sat May 5 01:58:22 2012 -0400 Remove comparisons that can never evaluate to true Using clang as the compiler results in 4 warnings like the following: osrf_list.c:106:23: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if(!list || position < 0) return NULL; ~~~~~~~~ ^ ~ (Explanation: "position" is an unsigned int; thus the comparison to < 0 can never evaluate to true). Signed-off-by: Dan Scott Signed-off-by: Galen Charlton 4 4 src/libopensrf/osrf_list.c commit 3aabf1932f93bc6e1e6693001734a1f1bcdbdce0 Author: Dan Scott Date: Sat May 5 01:32:25 2012 -0400 LP954059: Silence uninitialized var warning Compiling osrf_utf8.c generates the following warning: osrf_utf8.c:510:29: warning: utf8_char may be used uninitialized in this function [-Wuninitialized] So... initialize utf8_char when we declare it, and make the compiler happy. Signed-off-by: Dan Scott Signed-off-by: Galen Charlton 1 1 src/libopensrf/osrf_utf8.c commit 4fe1fdc7d4561e04212444786fd61d95eae69eb0 Author: Galen Charlton Date: Mon May 21 17:02:34 2012 -0400 LP# 953299 - defend against null and zero-length cache keys Ignore undefined and zero-length (after key normalization) cache keys. Signed-off-by: Galen Charlton Signed-off-by: Dan Scott 9 2 src/perl/lib/OpenSRF/Utils/Cache.pm commit 3e97b0f69be04957eefa149d06e05111f3ad4291 Author: Dan Scott Date: Mon May 21 12:18:41 2012 -0400 LP# 953299 - Prevent get/set of invalid cache keys Clients of OpenSRF::Utils::Cache occasionally request cache keys that contain invalid characters (a particular case is ISBNs that contain spaces), so strip those out of incoming get/set requests to avoid ugly memcached errors. Signed-off-by: Dan Scott Signed-off-by: Galen Charlton 25 0 src/perl/lib/OpenSRF/Utils/Cache.pm 3 1 src/perl/t/09-Utils-Cache.t commit c6cf4d9b6530f5b8b6bdf95c26db9986656fcce8 Author: Dan Scott Date: Mon May 21 12:41:25 2012 -0400 .gitignore - ignore more built stuff in fewer lines Use the power of glob to catch more built files that we want to ignore, while simplifying the .gitignore file significantly. Signed-off-by: Dan Scott 23 108 .gitignore commit 2c0fb3a9f6aeea9c93846c573ced8d235ec03c7c Author: Dan Scott Date: Mon May 21 11:48:26 2012 -0400 Revert inadvertently introduced debugging code In commit 91b8790c, several debugging lines were accidentally committed to the OpenSRF caching utility. Revert that change. Signed-off-by: Dan Scott 0 3 src/perl/lib/OpenSRF/Utils/Cache.pm commit f6d38086a42cd6a60d7ed45461d99076cf4d9e5e Author: Dan Scott Date: Tue May 1 22:11:00 2012 -0400 Minor cleanups to Java dependency build process While configure.ac still hardcodes the expected location of the Java dependencies (JSON and Memcached classes), we can clean up some of the lower-level challenges with the Java build. * StAX and WSTX were rolled into the core Java environment long ago, so there's no need to download them and even less need to verify that the downloaded version exist. * The Memcached class is now up to 2.0.1, per deps.sh, but the deps.inc file was pointing at 1.5.1. * Speaking of the deps.inc file, nothing seems to use it; delete it. * The Makefile was dying because the variables for the Memcached and JSON classes weren't defined. Define those at the top of the Makefile. Signed-off-by: Dan Scott 4 3 src/java/Makefile.am 0 5 src/java/deps.inc delete mode 100644 src/java/deps.inc commit d9487c42a1e3432be9fa3da9b2fad2b42d24a645 Author: Dan Scott Date: Tue May 1 22:08:23 2012 -0400 Clean up root directory: INSTALL, .gitignore, autoreconf * Update the README to avoid running autoreconf with the "-f" flag. * Make the INSTALL file a symbolic link to the README to avoid creating a generic INSTALL file each time autoreconf is run. * Add a .gitignore file that ignores all of the built files. Signed-off-by: Dan Scott 181 0 .gitignore 1 0 INSTALL 1 1 README create mode 100644 .gitignore create mode 120000 INSTALL commit c4c2d62cdf47ee7e5d02fac44cce5515a77c362c Author: Dan Scott Date: Tue May 1 21:31:38 2012 -0400 Change Java deps.sh to include . in CLASSPATH Following the directions given by running deps.sh was a little bit frustrating; we need to work in some documentation on how to use the Java bits of OpenSRF - and perhaps look at a more standard option like maven for dependencies. Signed-off-by: Dan Scott 1 1 src/java/deps.sh commit d7d8923e98a91c070668a529957d7ee7033529a7 Author: Bill Erickson Date: Fri Mar 16 09:56:13 2012 -0400 Java Gateway interface improved exception handling Handle any exceptions that should not reasonably occur in normal operation under the covers. Bubble the rest up. Update test code with examples. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 57 51 src/java/org/opensrf/net/http/GatewayRequest.java 16 8 src/java/org/opensrf/net/http/HttpConnection.java 41 12 src/java/org/opensrf/net/http/HttpRequest.java 5 2 src/java/org/opensrf/net/http/HttpRequestHandler.java 50 30 src/java/org/opensrf/test/TestGateway.java commit ad253eb0d67098b69c71141061563b1802f33f97 Author: Bill Erickson Date: Thu Mar 15 17:26:16 2012 -0400 Java gateway interface test class Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 58 0 src/java/org/opensrf/test/TestGateway.java create mode 100644 src/java/org/opensrf/test/TestGateway.java commit 5b5e28f16be77d9b23a98579d10173103dd907ed Author: Bill Erickson Date: Mon Feb 27 18:05:07 2012 -0500 Java HTTP gateway interface Supports sync and async requests. Async requests support onResponse, onComplete, and onError handlers. Supports a max-threads value to limit the number of activately communicating threads over any connection. When max-threads is reached, requests are queued and delivered as soon as there is room. Note that since this is talking to the OpenSRF gateway and not the translater, responses are simply collected and passed one at a time to onResponse. They are not streamed. The goal of supporting onResponse is to provide the same client API for both the gateway and translator. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 129 0 src/java/org/opensrf/net/http/GatewayRequest.java 97 0 src/java/org/opensrf/net/http/HttpConnection.java 66 0 src/java/org/opensrf/net/http/HttpRequest.java 25 0 src/java/org/opensrf/net/http/HttpRequestHandler.java create mode 100644 src/java/org/opensrf/net/http/GatewayRequest.java create mode 100644 src/java/org/opensrf/net/http/HttpConnection.java create mode 100644 src/java/org/opensrf/net/http/HttpRequest.java create mode 100644 src/java/org/opensrf/net/http/HttpRequestHandler.java commit 85830ce301654e2dfefcd186a2bd63bd3785a967 Author: Dan Scott Date: Mon Apr 23 14:17:35 2012 -0400 Remove GNU default INSTALL file GNU autotools generate an INSTALL file that is generic and which conflicts with the instructions given in the README. Installation is already hard enough without conflicting instructions, so delete the INSTALL file. Signed-off-by: Dan Scott 0 237 INSTALL delete mode 100644 INSTALL commit bc36b120e78f9fa995856a144b9054e2a0ab1f3e Author: Dan Scott Date: Mon Apr 23 14:13:37 2012 -0400 autotools - do not explicitly include m4 directory Some versions of autotools complain bitterly if an m4 include directory is specified that does not exist. Signed-off-by: Dan Scott 0 2 Makefile.am 0 1 configure.ac commit 2bdd580e2bcc6660b073b6853dc1544d5c68a6fd Author: Dan Scott Date: Mon Apr 23 13:45:14 2012 -0400 Name the bootstrapping steps in buildbot Signed-off-by: Dan Scott 10 6 examples/buildbot.cfg commit f21b0a5aa647e7303cc0d6d3fb70cadf0e8fc812 Author: Dan Scott Date: Mon Apr 23 13:16:25 2012 -0400 Fix buildbot configuration Need to define our tests before they're called; also, can't blindly invoke a step out of the proper scope. Duh. Signed-off-by: Dan Scott Conflicts: examples/buildbot.cfg 55 18 examples/buildbot.cfg commit 4d58c3d24b65f96e0648e37a3f4da82051a58917 Author: Dan Scott Date: Mon Apr 23 12:52:57 2012 -0400 Switch to autoreconf instead of autogen.sh Update the buildbot config accordingly to avoid erroneous errors of erroneosity. Signed-off-by: Dan Scott 1 1 README 0 43 autogen.sh 12 4 examples/buildbot.cfg delete mode 100755 autogen.sh commit 5849a119bd363b152b41ed7a39c787f009412572 Author: Dan Scott Date: Mon Apr 2 16:48:15 2012 -0400 Bump version numbers for 2.1.0-RC1 release Also update the ChangeLog with relevant entries. Signed-off-by: Dan Scott 21 0 ChangeLog 1 1 src/perl/lib/OpenSRF.pm 1 1 version.m4 commit 0ed34101e67dc04292f906945dd5752c73985412 Author: Dan Scott Date: Fri Mar 23 13:05:31 2012 -0400 Add trailing period, "localhost" to ejabberd.cfg example Thanks to Yamil Suarez for noticing a discrepancy between the older wiki instructions and the README. Signed-off-by: Dan Scott 1 1 README commit cf4d4798c5949abaf6bc9a4c3a62bf9a6533977b Author: Bill Erickson Date: Wed Mar 14 11:38:18 2012 -0400 Prevent undef warnings on perl socket read nbytes test Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 1 1 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit fff96812ff55cc50374d5a16e7c803fac2c2f2a5 Author: Dan Scott Date: Sun Mar 11 11:22:14 2012 -0400 Prepare 2.1.0-alpha1 for release Signed-off-by: Dan Scott 555 0 ChangeLog 2 2 README 2 2 src/perl/lib/OpenSRF.pm 1 1 version.m4 commit f470b55b86fd59f31dd142d8cb55fe812265892e Author: Bill Erickson Date: Mon Feb 20 14:40:30 2012 -0500 Detect remote disconnect in Perl XMPP reader When the jabber server severs the connection, it leaves the Perl libs with a socket that perpetually appears ready for reading, but always returns 0 bytes. This produces a loop in the client code. This change detects this situation, logs an error, and throws an exception. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 13 2 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit 974d3a0dd4ddd134033b16bcd9e2fde34302ffd5 Author: Dan Wells Date: Tue Mar 6 15:08:33 2012 -0500 Protect gateway from format-string crashes in data As a common security measure, printf-style formatting codes are not allowed to be directly interpreted from a writable segment. The gateway code currently has the following function call: osrfLogActivity( OSRF_LOG_MARK, act->buf ); This is a variadic function which expects the 'act->buf' position to contain a format string and any trailing arguments to be the values passed to the formatter. Since act->buf is the value of what we passed in, some data inadvertantly contains format strings, and since it is a writable segment, the program crashes. Here is an example of a crash-causing call: http://localhost/osrf-gateway-v1?service=test&method=test¶m=%22%251n%22 The param is interpreted as "%1n" and abruptly fails. The simple solution is to include a formatter so that our param gets demoted to being mere data, i.e.: osrfLogActivity( OSRF_LOG_MARK, "%s", act->buf ); Signed-off-by: Dan Wells Signed-off-by: Dan Scott 1 1 src/gateway/osrf_json_gateway.c commit fd92a859e2ba3eeeaafe4904cd04973eb8cd572b Author: Thomas Berezansky Date: Wed Mar 7 16:42:21 2012 -0500 Stop warning about missing parentheses... ...by adding them. Signed-off-by: Thomas Berezansky 1 1 src/perl/lib/OpenSRF/Application/Validator.pm commit 8cfa0ae50935176a1574e8f233c8d4d88442c0ad Author: Bill Erickson Date: Thu Feb 16 17:31:29 2012 -0500 Refresh child file handles on status read If a child process dies while the parent is attempting to read status information from the child, the pipe connecting the two will be cleaned up. The parent mustn't attempt to read from the dead pipe or it will result in a bad file descriptor error, culminating in a high-cpu infinite loop on the parent (Listener) process. Signed-off-by: Bill Erickson Signed-off-by: Thomas Berezansky Signed-off-by: Jason Stephenson 4 3 src/perl/lib/OpenSRF/Server.pm commit 37606bf64f2829258cc612e730782e081e2ac6bb Author: Bill Erickson Date: Fri Jan 13 10:57:59 2012 -0500 Python libs for OpenSRF ingress tracking osrf.ses.Session.ingress(ingress) This also set the "srfsh" ingress value for srfsh.py. Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 11 1 src/python/osrf/ses.py 2 0 src/python/osrf/stack.py 1 0 src/python/srfsh.py commit 26c31a9d5728adbd884a1369034caff41471130b Author: Bill Erickson Date: Fri Jan 13 09:35:18 2012 -0500 Set OpenSRF ingress value for srfsh/gateways Sets the "srfsh", "gateway-v1", and "translator-v1" ingress values accordingly. For the translater, it's necessary to stamp the unpacked messages with the updated ingress, then re-serialize before sending the messages along. Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 18 21 src/gateway/osrf_http_translator.c 1 0 src/gateway/osrf_json_gateway.c 1 0 src/srfsh/srfsh.c commit 7ec92808fea116ead923e475ad5242a54b688798 Author: Bill Erickson Date: Fri Jan 13 09:15:05 2012 -0500 C libs for OpenSRF ingress tracking osrfAppSessionSetIngress(); Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 5 0 include/opensrf/osrf_app_session.h 5 0 include/opensrf/osrf_message.h 26 0 src/libopensrf/osrf_app_session.c 32 0 src/libopensrf/osrf_message.c 4 0 src/libopensrf/osrf_stack.c commit b12de37f9480c68b1c8b033da18c3cc0d0ebc8f0 Author: Bill Erickson Date: Thu Jan 12 16:36:16 2012 -0500 Perl libs for OpenSRF ingress tracking Ingress is a free-form text value which represents the entry point for the client into the opensrf network. The value is passed within opensrf messages, similar to "locale". Clients should specify the ingress before any opensrf communication occurs. OpenSRF::AppSession->ingress($ingress); Stock values include the following: opensrf (default) srfsh translator-v1 gateway-v1 Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 9 0 src/perl/lib/OpenSRF/AppSession.pm 20 1 src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm 2 0 src/perl/lib/OpenSRF/Transport.pm commit 67d4d5de8656128f32b20f4c04dbf81a1028e929 Author: Dan Scott Date: Wed Feb 29 10:48:38 2012 -0500 Copy opensrf_core.xml.example to a clean opensrf_core.xml file Ben Shum with the assist again. Also, add ~/.srfsh.xml to the definition list of interesting OpenSRF configuration files. Signed-off-by: Dan Scott 6 3 README commit 68025993b01cc95f66a0ca723841e1abb406709f Author: Dan Scott Date: Wed Feb 29 10:42:58 2012 -0500 Include explicit instructions to copy the opensrf config files Also noted by the sharp-eyed Ben Shum, we didn't tell people to actually copy opensrf.xml.example / opensrf_core.xml.example, which could lead to failure. Signed-off-by: Dan Scott 35 17 README commit 75f27021d4b45eebbf52a89a35f96e775f92a207 Author: Dan Scott Date: Wed Feb 29 10:27:36 2012 -0500 Update max_user_sessions suggestion to 10000 to match wiki Ben Shum noticed that the README still specified 1000 for max_user_sessions in the ejabberd.cfg file, whereas current larger OpenSRF systems with many services may blow past that limit. Update to match the current wiki specification of 10000. Signed-off-by: Dan Scott 1 1 README commit 61fdb582dc918a1003351ff25842a23aaff24f71 Author: Dan Scott Date: Wed Jan 4 15:21:36 2012 -0500 Remove reference to Fedora specific version in prereq installer Fedora changes every 6 months, so it's probably silly to have a make target of "fedora14" when that is no longer supported by the Fedora project itself. As Fedora has packaged all of the OpenSRF dependencies (thanks, Ben Webb!), in theory it should be supported by the latest releases of Fedora in the future... as long as we don't introduce any dependencies on deprecated versions of packages. Signed-off-by: Dan Scott 2 2 src/extras/Makefile.install commit ba6d4c7cc2988dafb6ca8de2d1f2f93194dcf3b3 Author: Dan Scott Date: Wed Jan 4 15:17:48 2012 -0500 Update README to match Evergreen's format Reference the various accounts in use consistently. Correct reference to "fedora" target in Makefile.install. Put the developer preamble up front. Provide more Fedora examples. Do not include leading "#" and "$" in bash examples, to make it easier for people to copy and paste. Include source highlighting instructions and titles for example commands. Signed-off-by: Dan Scott 152 98 README commit cc7a12f74a9ce4555d5abd8989dfab43290fb41c Author: Bill Erickson Date: Fri Feb 24 16:28:27 2012 -0500 Java dependencies update As of Java 6, XML Stax parsing is natively supported. This change removes the external Stax dependencies and updates how the JSON libs are fetched (in deps.sh), which now come from github. Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 17 20 src/java/deps.sh 1 4 src/java/org/opensrf/net/xmpp/XMPPReader.java 1 4 src/java/org/opensrf/util/XMLFlattener.java commit 07b2eff0a7dfc492afd8e67788eae159c5ab96b7 Author: Dan Scott Date: Tue Feb 21 09:55:57 2012 -0500 We're not in Subversion anymore, Dorothy We're in git now, make the README reflect that accordingly. Thanks to Warren Layton for the tip! Signed-off-by: Dan Scott 2 2 README commit aeeb4acdc8695a640021dbc6902ab3279652583d Author: Bill Erickson Date: Tue Feb 14 09:10:58 2012 -0500 Perl parent/child write improvements * Updated variable names for clarity * Added more inline comments * Added additional error logging * For severe read errors, allow the child to gracefully skip the request Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Mike Rylander 25 19 src/perl/lib/OpenSRF/Server.pm commit 08ee4f993fe773e37233b139961cbcdae2fe93b8 Author: Bill Erickson Date: Mon Feb 13 16:53:59 2012 -0500 Perl pipe reading overhaul : data size header The lockfile mechanism for preventing premature end of reads on child processes suffers from one serious flaw: if the data to write exceeds the pipe buffer size, the parent will block on syswrite and the service will lock up. It's also not as effecient (for the normal case) as the code was without the lockfile, becasue the writes and reads are serialized. This commit replaces the lockfile mechanism with a protocol header in the data. The first X (currently 12) bytes of data written to the child process will contain the full length of the data to be written (minus the header size). The child now reads the data in parallel with the parent as data is available. If the child reads all available data (in the pipe) but not all of the expected data, the child will go back into a select() wait pending more data from the parent. The process continues until all data is read. This same mechanism is already used to commicate status info from child processes to the parent. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Mike Rylander 49 73 src/perl/lib/OpenSRF/Server.pm 1 2 src/perl/lib/OpenSRF/System.pm commit 04558f38c1c1d314acb978a37193dacb4a6eba31 Author: Lebbeous Fogle-Weekley Date: Fri Jan 27 09:05:07 2012 -0500 JSON_v0 has been superseded, and it has insidious bugs anyway. For example, you cannot round-trip this through JSON2js() and js2JSON() in IE8: http://paste.lisp.org/display/127338 This will make Evergreen's build fail until the change specified in LP #922609 is applied. Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Bill Erickson 1 1 src/Makefile.am 0 135 src/javascript/JSON_v0.js delete mode 100644 src/javascript/JSON_v0.js commit 89f41c82798dbac56716fdd5beeb6c0de3e4ce2e Author: Bill Erickson Date: Mon Nov 7 17:30:44 2011 -0500 Sync parent/child write/read with lock file Wrap parent writes to child socket and initial child reads of the socket in file lock (via flock()) to prevent rare race condition where child process reads to the end of the data before the parent has written all bytes. This create a new lock file on the system, which resides in the same directory as the pid files. The lock file is created and destroyed by the opensrf perl mods at service start up and shutdown. See also https://bugs.launchpad.net/opensrf/+bug/883155 Signed-off-by: Bill Erickson Signed-off-by: Dan Scott 1 1 bin/opensrf-perl.pl.in 60 8 src/perl/lib/OpenSRF/Server.pm 3 2 src/perl/lib/OpenSRF/System.pm commit 3d089bdfd067676f99807f7cb2014e122c4dbf72 Author: Dan Scott Date: Mon Dec 12 13:09:13 2011 -0500 Update Perl OpenSRF build and tests for O:A:Validator Kickstarted by wanting to bring OpenSRF::Application::Validator into the MANIFEST and testing coverage, I noticed a few other files that needed to be added to the MANIFEST as well. This gets us closer to acceptable according to "./Build distcheck" Signed-off-by: Dan Scott 1 0 src/perl/Build.PL 22 0 src/perl/MANIFEST 6 1 src/perl/t/01-Application.t commit 5e1fbcc1c8ae2f969dbeac93fe1da80c008ca42b Author: Thomas Berezansky Date: Fri Dec 9 15:19:12 2011 -0500 OpenSRF Validator Service Add a new Validator service, and EmailAddress validators. The service runs a chain of one or more validators, each one being fed the normalized output of the previous one. The return from each validator should be a hash of valid (0 or 1), the new normalized output (the untouched input if invalid or nothing needed to be changed), and if invalid an error string. Optionally, a validator can also include an "additionals" hash of extra information to be included in the final response. The complete list of validators included is: OpenSRF::Application::Validator::Base The base validator. Always returns valid. OpenSRF::Application::Validator::Invalid Always returns invalid for testing purposes. OpenSRF::Application::Validator::EmailAddress::Regex Does a very basic regular expression check on email addresses. OpenSRF::Application::Validator::EmailAddress::DNS Uses Net::DNS to look up the domain on an email address Signed-off-by: Thomas Berezansky Signed-off-by: Dan Scott 40 0 examples/opensrf.xml.example 3 0 src/extras/Makefile.install 50 0 src/perl/lib/OpenSRF/Application/Validator.pm 12 0 src/perl/lib/OpenSRF/Application/Validator/Base.pm 96 0 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/DNS.pm 23 0 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/Regex.pm 16 0 src/perl/lib/OpenSRF/Application/Validator/Invalid.pm create mode 100644 src/perl/lib/OpenSRF/Application/Validator.pm create mode 100644 src/perl/lib/OpenSRF/Application/Validator/Base.pm create mode 100644 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/DNS.pm create mode 100644 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/Regex.pm create mode 100644 src/perl/lib/OpenSRF/Application/Validator/Invalid.pm commit b6b64deb16ed3f005d64f99365b0220a82d72431 Author: Jason Stephenson Date: Wed Dec 7 15:08:42 2011 -0500 Support installation for Ubuntu 12.04 Precise Pangolin. Update the README to include Precise Pangolin as a supported release. Update src/extras/Makefile.install to install two new debs required on Ubuntu 12.04 alpha1. Signed-off-by: Jason Stephenson Signed-off-by: Chris Sharp 1 0 README 15 1 src/extras/Makefile.install commit 3a4ae77be13349fae180fdc81bcc23e5a93032b4 Author: Dan Scott Date: Fri Nov 4 09:42:50 2011 -0400 Add explicit chown command to README Warren Layton noticed that there was no explicit command to change the ownership of the files in the / directory to be owned by "opensrf", although there was a statement that the files needed to be owned by "opensrf". To reduce the chance of failure, add the explicit command. TODO (for a willing volunteer): teach the installer to change the ownership at the time the files are installed! Signed-off-by: Dan Scott 1 0 README commit a7be31f137ccf6e2f4522c9a4c690a23b5636db8 Author: Bill Erickson Date: Fri Oct 28 11:33:24 2011 -0400 Add SIGPIPE retry handling to child data sysread Similar to the SIGPIPE retry logic wrapped around the parent process' syswrite call (for sending data to a child process), protect the child's sysread call (as it reads data from the parent). In pre-2.0, the sysread step was handled by Net::Server, but now we need to protect it ourselves. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 10 0 src/perl/lib/OpenSRF/Server.pm commit 40a753b10a3db58baa9179d75a76df1266589ea1 Author: Dan Scott Date: Wed Oct 19 11:39:41 2011 -0400 LP878284: stop_osrf action should stop, not start, Perl As reported by Vicent Mas to the Evergreen developer's mailing list: """ It seems I've found a small bug in the /openils/bin/osrf_ctl.sh script. The line for the osrf_stop action is: "stop_osrf") stop_python; stop_c; start_perl;; but should be: "stop_osrf") stop_python; stop_c; stop_perl;; """ Signed-off-by: Dan Scott 1 1 bin/osrf_ctl.sh.in commit 07b5a335656be741353ab70c1d4717dacdbebc1b Author: Bill Erickson Date: Tue Oct 18 09:17:10 2011 -0400 Warn when sending very large messages Depending on configuration, messages of a certain size sent through a Jabber server will cause the jabber server to disconnect the client. This change allows admins to configure a message size warning threshold. When a message meets or exceeds the size threshold, a warning is issued to the logs with the message size (in bytes) and the message recipient. It does not prevent the message from being delivered. It's purely informational. Use 1 800 000 as the default threhold. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 3 0 examples/opensrf_core.xml.example 11 1 src/perl/lib/OpenSRF/Transport/SlimJabber/Client.pm commit ffb8bb73a2f505cfda9d8b97fab1f82aa3fb7097 Author: Dan Scott Date: Sat Sep 10 12:22:08 2011 -0400 Fix README typo: 'mod_offlinex' mod_offline is not that x-treme. Signed-off-by: Dan Scott 1 1 README commit 0725d1ddced0f16c351a5953f5fd3c14714cda1a Author: Dan Scott Date: Thu Aug 25 11:41:19 2011 -0400 Don't define a variable inside a conditional block ./configure --disable-core --enable-javascript was dying with an error due to CHECK_TESTS not being defined; move it outside the conditional block so that we can ensure that it is defined as either yes or no. Signed-off-by: Dan Scott 8 9 configure.ac commit b24e90f1a1b1f2309ca3cdf0728cdd54f7822597 Author: Dan Scott Date: Mon Aug 22 09:49:45 2011 -0400 Make distro targets in README match Makefile.install Swap ubuntu-karmic for ubuntu-lucid and pull fedora14 as it is really close to end of life. Signed-off-by: Dan Scott 2 2 README