[OpenSRF-GIT] OpenSRF annotated tag osrf_rel_2_0_1 created. osrf_rel_2_0_1

Evergreen Git git at git.evergreen-ils.org
Fri Aug 19 12:17:29 EDT 2011


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 annotated tag, osrf_rel_2_0_1 has been created
        at  5082f0061a831efaea3ea0813e9474a515c2c7a8 (tag)
   tagging  dab60a03c20f47c6a638272d172e6d3b1bf60a43 (commit)
 tagged by  Dan Scott
        on  Fri Aug 19 12:16:47 2011 -0400

- Log -----------------------------------------------------------------
Tag for the OpenSRF 2.0.1 release
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iF4EABEIAAYFAk5OjIEACgkQN0x6JIzbejb0rAEAg0JGW5vt7K5hw0nMkU9nvh39
Lx+wfDNiJiE4kCxUDPIA/RcLSp3U+BSVOjPFASDgKsyd+y4rCTHHS7jPbPixo/2j
=7vcC
-----END PGP SIGNATURE-----

(no author) (1):
      New repository initialized by cvs2svn.

Ben Webb (2):
      Respect DESTDIR during the build process
      LP 799718: Pass the DESTDIR variable to setup.py

Dan Scott (3):
      Teach Perl Makefile to build Build for every target
      Add a 0 to max_stanza_size in README instructions
      2.0.1 release preparation

dbs (224):
      Fix some typos found while trying to improve osrf error messages.
      Add -D_LARGEFILE64_SOURCE flag to CGLAGS to avoid compile problems on 32-bit platforms.
      More typos, as I read through logs.
      Enable -l flag to work without an argument
      I'm pretty sure we want $log here, as in all the other calls.
      Install the JavaScript libraries into an OpenSRF library,
      Start installing the Python libraries as well.
      Deliberately break applications relying on pre-OpenSRF 1.0 behaviour.
      Add a top-level javascript-install target
      Make Logger a little more robust by setting a default loglevel
      Convert a few routine log messages from error to info level.
      Avoid an "undefined variable" Perl warning when we receive no parameters.
      Enable srfsh.py to load with the standard .srfsh.xml (no plugins)
      Correct name of prototype for osrf_message_get_last_locale()
      Format the date and time with leading zeroes to be easy on the eyes, and easier to parse.
      And let's not double-log messages. Sigh.
      Minor code cleanup:
      This file will hold only OpenSRF XML functions.
      xml.py conflicts with other xml module namespace (boo). Renaming.
      Move towards Pythonic API style conventions (as informed by pylint)
      Further pedanticize logging method names.
      Add some basic locale support.
      Add rudimentary locale support to srfsh.py
      Continue the march towards a pedantic 1.0 python API.
      Use distutils to install Python into the standard location
      Enable Python build with regular user to avoid perm problems at clean time.
      Switch to setuptools to enable dependency installs as well
      Bootstrap setuptools, drop unnecessary directory metadata
      Bootstrapping doesn't work as desired on systems that already have setuptools
      Add a build flag for Python modules
      Make cleaning in Python dir optional as well, to avoid problems with missing setuptools
      Revert Gentoo changes (sigh)
      Add dnspython, libxml, and libxslt1 dependencies on behalf of pyxmpp
      libxml2 and libxslt1 Python modules are abnormal - remove them from requires list
      Set the Makefile shell to bash via the Makefile SHELL variable
      x.y.z version numbering seems to make setuptools happier... okay
      Make the path to opensrf_core.xml argument optional, with a default
      Bail with a reasonable error message if OPT_CONFIG does not exist
      Overcome old setuptools' inability to convert FTP listings to URLs with
      Remove <domains> element - breaks gateway.
      This could have been a puzzling typo
      Another potentially annoying typo
      Python is quickly becoming a requirement, not an option.
      Prepare to rename this DojoSRF.js (avoiding code change and name change out of habit)
      What was OpenSRF.js, is now DojoSRF.js - and there was much rejoicing from the Mac-heads
      Patch from Kevin Beswick to use autotools for OpenSRF configuration and build
      Patch from Kevin Beswick (kbeswick00 at gmail.com) to address various problems with the autotools:
      Change values of default directories in config file in installed files rather than in tree
      Switch to 'localhost' and standard port for memcached
      autogen.sh needs to be executable
      Link osrf_json_gateway to objson and opensrf libraries the autotools way
      A little more autotools love:
      Linking:
      Set default for TMP to /tmp (autotools creates its own subdirectory)
      Enable libtool to work its magic and install versioned libraries
      opensrf.settings is stateless; having the wrong setting here causes great agony
      Merge the following patches from Kevin Beswick:
      Cheap hack to enable kbeswick's cheap hack to get opensrf-c
      Commit autotools patch from Kevin Beswick
      Fix for installing gateway and translator (thanks to Kevin Beswick)
      Give Apache modules the support they need to work
      Use a slightly more robust scheme for setting OpenSRF locale in DojoSRF.
      Apply patch from Kevin Beswick:
      Restore RPATH so that we do not need LD_LIBRARY_PATH messing with our environments
      Log the locale for each request in the activity log
      Typo - because typos in error messages just make me angry when I'm beating my head against a debugging problem
      Provide more command line help for login in srfsh
      Let's check in the default INSTALL file to start with, and customize from there. Lazy, lazy dbs.
      Check in a real file, not a link. Sheesh.
      Put a more real README in place
      Might as well point to the latest Makefile.install
      Disable Python by default as it is not currently required
      Make the option help tell the truth
      Correct configure options in install README
      Hey, we need to adjust the system's dynamic library path here
      Minor typo (remove redundant "change this")
      Use the standard memcached port in example config
      Document the canonical hostname determination method for Linux
      opensrf.settings needs to be stateless for a stock install
      Libraries are currently built as osrf_math.so and osrf_dbmath.so rather than lib*
      Fix build of OpenSRF Python support:
      Add a basic Python client example
      Add a prerequisite installer for OpenSRF (carved out of the Evergreen installer)
      Flesh out README with standalone install instructions
      Clean up the source tree a little more:
      Replace in-place modification with built files; enables one to re-run configure multiple times
      dokuwiki-doc-stubber.pl is generated rather than modified in place
      Add notes about CPAN configuration, per wlayton's recommendation
      Force Class::DBI install, as dependencies have started making test t/11 (triggers) fail;
      Correct syntax for forcing Perl modules
      Minor updates for prereq makefile
      Minor typo fix
      Cheap hack to enable OpenSRF to build on recent glibc systems
      Continue factoring out the Evergreen prerequisites from OpenSRF prereq installer
      Let's remove one step from getting OpenSRF running out of the box;
      Refer to Intrepid, not Ibex (to be consistent with Gutsy and Hardy)
      Merge patch from Scott McKellar for better Unicode handling
      It's so alluring to install packages instead of compiling from source, except when the packaged versions are broken in crucial ways. Argh.
      wlayton found a bad search and replace for ibex -> intrepid - thanks!
      Use an explicit shell (bash) to avoid complications on systems with different default shells
      Cover the developer case for bootstrapping the source
      libgcrypt-dev and libgdbm-dev are dependencies for XML::LibXSLT
      Update README to cover new Makefile.install targets, as well as optional
      Broader search'n'replace for LOCALSTATEDIR
      Sync up the sample bootstrap conf from rel_1_0 - more explicit public vs. private
      Sync up README with rel_1_0 - cover multidomain configuration
      Debian and Ubuntu both want libgrcypt11-dev explicitly specified
      So, djfiander says "fix the code so it's not case-sensitive", so this seems to fix it.
      dojo.locale is the preferred method of determining Dojo's current locale; avoids having to explicitly set djConfig.locale
      let's avoid creating double-hyphened locales, too
      Bug in CentOS prerequisite installer - thanks Carl T. Miller!
      Remove old install target for CentOS - thanks Carl T. Miller!
      Non-Mozilla browsers want an explict dojo.declare() for a given namespace.
      OpenSRF r1692 + OpenILS r12809 broke the Evergreen build; this fixes it
      Use autotools a bit more to our advantage:
      Use autotools to set the default values in opensrf-perl.pl to what was passed in to ./configure
      Add a linefeed to the Perl "print hostname" command
      Use working Perl syntax in example print hostname command.
      Make building & installing the core components of OpenSRF optional.
      W h i t e s p a c e matters when defining automake targets
      And place headers in /prefix/include/opensrf/ again, fixing regression to /prefix/include/
      Let's give OpenSRF a spin on Ubuntu Karmic
      Add a '-l' option to treat the hostname as 'localhost', to match osrf_ctl.sh.
      Chop chopchop out of the default make / install target
      Clean up and clarify configure help and messages a wee bit
      Improve the 'help' output for srfsh:
      Patch from Jeroen van Meeuwen (Fedora Project) <kanarip at fedoraproject.org> to use $(APXS2)
      Partial fix for launchpad bug 489294: OpenSRF seems to depend on explicit --prefix configure option
      Futher cleanup for autoconf substituted variables
      Transition from libmemcache to libmemcached - an actively maintained memcached client library.
      So. libmemcached has only been packaged on really fresh distros. Install from source elsewhere.
      Remove vestigial TODO now that it is TODONE
      Address long-standing typo: clense_ISO8601
      Get on board the typo train - woo woooooo!
      Prevent WebKit-based browsers (Chrome and Safari) from requesting multipart
      Add an example Apache virtual host configuration and curl script for testing the math service
      Provide a thread if the translator wasn't passed one in the request headers
      Forward-port Dan McMahill's portability patches r1907 and r1908
      Forward-port r1908 + r1914 from rel_1_2 to improve portability without breaking
      Forward-port r1919 from rel_1_2 to prevent Internet Explorer from making multipart-mixed-replace calls
      Ensure target JavaScript directory is created before copying files into it
      Simple demo of text services; returning a string, an array, a hash
      Apply patch from Lee Dickens <ldickens at esilibrary.com> to add support for RedHat/CentOS
      Forward-port r1943: install packaged DateTime Perl modules instead of CPAN
      Gutsy is way out of support, pull it from the list
      Remove Ubuntu Intrepid support - EOL is this month (https://wiki.ubuntu.com/Releases)
      Make it possible to install just OpenSRF Python with ./configure --disable-core --enable-python
      First rough attempt at Fedora 13 support
      Add in a few dependencies for Fedora 13
      A few more Python dependencies that we don't need to compile
      Teach autoconf about Fedora-ish default locations
      Apply patch from Lee Dickens <ldickens at esilibrary.com> for better RHEL5/CentOS prereq support
      Rename example Apache configuration file to include ".conf" suffix
      Merge updated Makefile.install patch from Lee Dickens <ldickens at esilibrary.com>
      Remove cruft - unused definitions of DEF_RECV_TIMEOUT and DEF_QUEUE_SIZE
      Move on up to Lucid; drop Karmic along the way
      Recent testing has been with libmemcached 0.40; bring that into line
      Typo fix to display all OpenSRF methods: sysemt -> system
      Teach opensrf-perl.pl the same PID directory as osrf_ctl.sh
      Whitespace / description cleanup
      First cut at adding Debian Squeeze to OpenSRF prerequisite installer
      Make log length in Perl logger a configurable value to assist debugging
      Make the names of the rules for installing extra Squeeze debs line up
      Get the extra_debs into Squeeze as well; fix a typo in libmemcached-tools
      Update the manifest for Perl modules to avoid build warnings
      Bump trunk version number for OpenSRF up to 1.8.0; better than 1.4.0.
      Work around a Net::Domain bug that can result in fqdn's like foo.example.com,bar.com
      Make opensrf-perl.pl handle missing configuration for services more gracefully
      Add a streaming version of the split() method in simpletext example
      Add a Python and curl example of invoking the Perl simpletext services
      Minutes and months were reversed in Python logging timestamps
      More debuggery for the spawning of child processes
      Fix daemonize problem that surfaced in start_all
      Make pylint happier with PEP8-compliant argument name
      Reference constants properly
      Typo: Pass in the array of servers to the memcached client if we have one
      Typos: s/wait_for_child/try_wait_child/ and s/min_childen/min_children/
      Try not to stomp on global variable names and built-ins, add docstrings
      Give opensrf.py reasonable defaults for options
      Make start_all automatically daemonize services
      Assign, don't test equality (thanks berick)
      Enhanced do_start() implementation in Python management script
      A solution for starting all Python services: make sh do the work
      osrf.json clean up
      Commit some unit tests for Python osrf.json module
      Add the sanity-saving step of a munged PERL5LIB to the README
      Use the same PID directory as the opensrf-perl.pl and opensrf.py scripts
      If an alternate config file is pointed to in osrf_ctl.sh, respect it
      Limit list of Python services to those within the domain-specific activeapps section
      Create rel_2_0 branch for next major OpenSRF release
      Bump version number for 2.0 branch
      Lenny needs zlib1g-dev package to install XML::LibXML and others
      Apply patch for dnsmasq documentation
      Straighten out -f / -d flag confusion in libmemcached prerequisite
      Set the correct number of expected tests so that we don't fail 100% of the time
      OpenSRF::UnixServer doesn't live here any more
      Correct copy/paste error in Build.PL metadata
      Use an Exporter-approved version number (only one decimal place)
      Whitespace consistency (tabs for Makefiles I guess)
      Resolve encoding problem found by attempting to register patrons with Unicode names
      added opensrf.system.sleep method; takes 1 param (seconds); useful for debugging child process management
      Prepare for version 2.0.0 with versioning for 2.0.0
      Apply libtools versioning to OpenSRF c-apps as well
      on second thought, removing debug sleep method, which is (more than most) a DOS waiting to happen.
      Clean up Python server implementation, guided by pylint
      Add hints to increase max_children config variable if we're hitting the maximum
      Get that brace back in the right place
      Remove extraneous line for dnsmasq / Python
      Trivial typo fix (also tests OpenSRF buildbot)
      added sample rsyslog opensrf configuration file
      Remove max_requests config stanza from C language implementations in example config
      Recommend Fedora 14 as F13 goes out of support in a few months
      Forward-port AsciiDoc version of README from 2.0.0-rc2
      Run OpenSRF JavaScript through jslint for a light cleanup
      Improved PID file handling in osrf_ctl.sh
      Give Python services introspection methods matching C and Perl
      Add DOH-based unit test harness for OpenSRF JavaScript
      A few more tests for JSON_v1.js
      Make javascript unit tests more granular to ease tracking down errors
      Handle the common NXDOMAIN problem with Python a bit more gracefully
      Sidestep JSON object ordering in unit tests
      move jabber_state_machine_struct into header to keep 'make check' happy
      Add a C unit testing framework and tests for OpenSRF
      Add Check dependencies for Fedora

erickson (942):
      altered makefile, header includes
      altered makefile, header includes
      altered header includes
      added child killing code
      slightly more clear log message
      added new_message_from_xml function
      updated to work with latest message code
      removed Auth.pm include
      changed OpenILS to OpenSRF
      changed logger include
      *** empty log message ***
      updating to work with the new cvs layout
      making to work in new environment, added 'system_client' login for system
      changed some logging
      fixed some dum NULL strdup problems
      changed some config file stuff so it's not router specific
      added an 'all'
      changed ILS to SRF
      some sanity checking, syntax error fixups
      added better error handling
      added exception passing from dbmath through math back to the client
      added a router_command type of "query".  The only supported query so far is
      removed the "libxml.h" dependency which is unnecessary (and requires source)
      LGPL'd json C library.  Slightly modified to build a .so file so we can link
      headers for libjson
      added la_time as timestamp and serve_count
      updated, removed the userAuth stuff
      re-enabled process automation
      fixing subrequest support
      v1, currently only answers to 'exit', 'quit', 'help', and a single router
      added brokenSession
      added a function to format a timestamp in human readable form
      changed unixserver app retrieval
      some syntax stuff
      moved to new config settings
      moved to new config settings
      moved to new config settings
      new config settings
      added a sanity check
      removed reference to 'param'
      using new config settings
      new config settings
      Beginnings of the new config parsing and client classes
      first round of the settings app
      added new config handling
      added command line passing of bootstrap config file
      fixed up to make the remote settings grabbing work...
      now we only get the router target from the bootstrap file if
      cleaned some
      added utility method for retrieveing a list of transport targets..
      fixed up the magic auto-introspection and made sure we were
      made him a proper subclass
      added 'component' login functionality to the lib code
      sha.* is necessary for the component authentication, component is just an
      added DIGEST style authentication to the clients
      removed prints
      added a debug_handler for verbose output
      added check for settings server, and removed some logging peer connection
      added a cache flag to the settings client
      added some logging.
      fixed logic error
      added 'last' command to redo the last command
      Changed some config settings to load all jabber stuff from the bootstrap config
      added sanity check for app for loop
      OK.  This is the first early C version of the OpenSRF stack.  It's highly
      ugh
      added "opensrf." to front of method name
      returning empty array when no results
      cleaned some stuff out of the makefile
      the marcdumper!  takes command line params
      moved to the Open-ILS tree
      added named params to bootstrap_client to allow config file
      update bootstrap client to use the named params
      changed some ps output.
      updated to call opensrf.math
      altered the cache a little to allow for the servers to be passed in
      added 'named' configs.
      updated help message
      if no params, send an empty array
      sanity checking on request complete
      added 'disconnect' to session requests
      srfsh now:
      added a opensrf.router.info.stats method which returns info
      added json pretty printer for formatting result content data
      removed the command line login requirement and now we just us the
      moved to readline.
      added srfsh to the top level makefile
      added the ability to 'stream' results
      can't forget the header file ;)
      added opensrf.system.method.all in the list of returned methods from the
      now requests are finished and sessions are destroyed
      fixed DISCONNECT message formatting
      added an 'install' target to these makefiles that just copy their binaries
      if no config file is specified on the command line, we check $HOME/.srfsh.xml
      now do an explicit kill me on the session after the host config is retrieved
      we now return undef if any level of the sought config doesn't exist
      we now delete the tmp net::server config file
      fixed logic error in using the config file
      fixed logic error in message building. we now dynamically parse the json
      added some basic exception handling and propogation
      added router 'unregister' loop to DESTROY
      pass up internal server errors as user exceptions
      now magically does both memcache and persist caching if the persist option
      removed some comments, added some sanity checking, trimmed down MathDB since
      fixed some memory logic errors
      added external command running by entering !<command> [args].
      added 'relay' which allows you to use the last received result as the param to
      added _CACHEVAL_ to the slot names to make them a little more unique/controlled
      we don't add 'newlines' to history.
      moved definitions to srfsh.h for maintainability
      added history file so history is saved across sessions
      history and config file checking are more granular as far as what we
      saw and fixed memory leak.
      fixed mispelling
      added sanity check on relay command
      added some more sleep time
      fixed (hopefully) the $0 * addition
      added longer sleep time
      added some debugging output
      checking for HASH ref explicitly
      changed 'slot' to 'key' for clarity, should have no effect on behavior
      added line to remove trailing ';'
      added some debug lines
      found likely candidate for router crash.  on remove_server_class, the received message is freed
      piping to 'less' for long data
      added newlines after commas in pretty_print
      turned on pretty print by default
      fixed request timing issue since we're using 'less' now
      added some sanity checks
      found leaked xml string
      added == to number
      added escaping for internal " characters
      incorporated math bench into srfsh. see help for details
      fixed makefile to remove the .so file
      added ctrl-c handler to exit the currently running command
      memory leak cleaning, more to come.
      fully bypassing persist if persist isn't true
      added help line
      added a warn line for debugging purposes
      found the (i believe) the remaining leaks in the transport code
      added some cleaner code handling to reduce valgrind errors
      moved back to non-method_lookup method to test 'original' speed
      added an 'introspect' command
      added login functionality to the shell
      included stack dependency in makefile
      added some sanity checks to make sure we're not sending
      removed sig-int handler for now, annoying.
      added check to make sure log line didn't kill things
      lib dir is added now
      changed buf size, not sure how it got shrunk
      raised command line buffer to accomodate large chunks
      script to build fieldmapper.js file for using fieldmapper objects in javascript
      recently added to json by maintainer
      C apache gateway.
      added a field to store the original JSON string received from a request
      updated to newest code, made my usual usability changes.
      using our log stuff instead of stderr
      added a field on each object called classname to return the object hint
      morphing into shape
      changed to fit fieldmapper stuff
      fixed bug where session id's were always coming up the same
      we now have session caching.
      on connect, we only connect if we're not already connected
      removed some debugging stuff
      removed some unused lines
      added handling for jabber errors
      added some debugging
      added a del_session function which removes and cleans up sessions when it's their time
      added some debugging
      altered debug message that was causing problems
      added line to better report exceptions
      removed unused variable, added log line
      checking for only one server
      getting "can't call toString on unblessed reference" in the commented out log line
      durrhhhh
      addede space
      should have been commit some time ago
      moved to Open-ILS tree
      extra info in debug, added space to casting string
      changed some of the debug lines
      this is the code that has the 'failed' method as well as a utility method
      app name changes
      just letting the exceptions stringify
      altered to use new osrf_message json string format
      slimmed a chunk of code
      added the ability to bypass JSON parsing for adding request parameters.
      added some debugging when hunting memory error
      utility for string arrays
      header for the string array
      bug squashing party on the gateway.  we now explicitly format the xml
      added gateway build
      moved extraneous comma...
      testing
      done with test
      adding patch code to fix wonky array/objects
      more fixin
      logic
      checking for object
      NULL!
      logic
      more stuff
      Let the onslaught continue...
      removed gateway from the 'all' target since it required apache
      now using the max persist time in the config file
      creating text nodes differently now for proper escaping...
      moved to utils
      moved from libtransport
      added objson
      moved sha.c
      moved some of the utility code out that has no other dependencies, used
      added
      moved some code out to utils.h
      moved some code out to utils.c
      adding early custom json code
      added objson target
      adding
      creating header dir if necessary
      removed unused test code
      C fieldmapper stuff
      build the header here then copy it over
      Stateless code, round 1...
      removed number overloads
      added stateless hack for now
      logging empty data on socket
      fixed name issue for process
      added stateless flag (couple days ago ;)...
      added -lobjson to makefile
      removed fieldmapper from the 'all' target
      router bypassing code
      regex to determine unix-ocity for the socket
      if no router, change the connecting resource
      router-less login mangling
      more smarter src makefile.  does all of the dependency calculation in
      slimmed down makefiles which get most of their vars from the
      Chop Chop, Jabber
      moving header files into the directories where they are used.  makefiles
      again... moving header files to their home locations, makefiles copy them
      moved to the utils dir
      moved into their respective src dirs
      moving to it's src dir
      moved over from the include dir
      *** empty log message ***
      using different header location
      added for completeness
      broke out a lot of the code from generic_utils into their
      pointing to headers in this dir now
      more tweaking to point to the right header files, etc.
      it's functions have been farmed out to utils.c, logging.c, osrf_config.c
      took the config functions from generic_utils and put them here
      removed generic_utils.h
      added other useful headers
      moved apache header dir to the toplevel makefile
      renamed some more apache makefile vars
      oops :)
      hunting segfaults...
      removed connect since math_bench runs in stateless mode
      slowly replacing libjson with objson calls..
      added a note
      added -g for debugging for now
      added license info and some additional comments
      added some license info and comments
      fixed a number of bugs regarding number parsing
      __param is now param
      moving over to install.sh build
      changed lame code to smarter code -> dumping document element instead of
      method not found now returns the name of the method and package
      another error message that we'll hopefully never see
      added some debugging, safety measures
      unlinking sock file
      changed arg.array to arg.a to match the fieldmapper stuff..
      fixed some a bug in jserver, added some debug lines
      removed all of the old libjson dependencies
      cleaned up a little
      removed some unnecessary 'use' statements
      objson now accepts empty array and object values if STRICT_JSON_READ is not defined
      moved back to nulls
      added shutdown call before closing socket
      added try block for catching un doable things
      basically reverted back - left the try catch
      completely reverted to original
      building objson with strict writing enabled (includes nulls)
      added support for script files.  when we detect that we're runnin from a script
      fixed some typos, logic errors
      added EXEC_DEFAULT compile option for srfsh which is set by default.
      now piping to open shell for unknown commands so that there is only one shell used
      fixed issue where the err message was not getting set correctly
      example gateway config file
      example router config file
      small tweaks and changes to make the install process more useful
      set raw_print true forces srfsh to bypass 'less' for output
      example bootstrap config file
      changed name
      more install arranging
      made it so it doesn't complain about not having any apps to load
      added exception for when trying to send to non-existant recipient
      added handler for STATUS_CONTINUE
      example config file
      copying over the opensrf.xml config file
      added a line of hopefull helpful debug output
      more install goodness, fixed random jserver bug
      using Logger instead of Log
      more install goodness, fixed some bugs, etc
      for convenience, changed to work with new default layout
      more debugging
      removing unix files
      more config file mangling
      moved redirect to latest mod_perl
      fixed bug in opensrf_all
      checking in... see diffs
      C based xinclude processor
      changed add_index to set_index to match some updated objson
      added a stringisnum function
      some code cleanup, some unfinished projects, etc.
      now allow S and E in class hints :)
      apachetools is some generic apache module helper functions
      removed some unused comments, etc.
      moving to OpenILS
      move the log_free to after the cleanup is done so we don't see
      much work toward the dtd-on-the-fly architecture for locale changing
      moved C over to all JSON all the time
      removed some comments
      code cleanup and memory debugging
      removed debug line
      added microseconds to get_timestamp_millis()
      removed dependency to self in makefile
      added client connect code for INET and UNIX.  UNIX is tested, INET is not.
      added ability to bind to a specific IP address for TCP server connections.
      jserver now has ability to listen on a specified IP address
      patched up to work with new jserver
      added method to allow waiting for a single client socket instead
      moved transport code over to utils/socket_bundle so we can keep the code
      added the setting for unixpath
      fixed a problem in utils where I was using a va_list after calling va_end on the list
      added external file to hold the commonly used jabber XML
      disabled REUSE since it was affecting router
      updated make process to copy over new web stuff and not old web stuff
      make install.sh slightly smarter
      moved router, gateways to a single config file opensrf_core.xml
      added an example srfsh file
      now copying over example srfsh file
      added a header file for the gateway
      fixed problem where a NULL unixconfig was causing segfault
      added the pretty printer here
      made json formatter a little smarter/better
      fixed message hints to go with new code
      added basic xpath support to JSON
      removed libjson
      cleaning up the JSON code some
      forgot to add these...
      removed 'test' dependency
      typo
      adding utility methods
      new json api changes
      addiing some xml utility code
      adding config code
      see diffs
      all opensrf related headers are shoved into opensrf/*.h
      changed the CC_OPTS and LD_FLAGS to CFLAGS, LDFLAGS, and LDLIBS
      Young C server code added
      math server (really dbmath code)
      added dbmath
      added some more api wrappers
      added CONNECT handling
      changed router binary to opensrf_router to prevent opensrf_all from destroying
      small bug fixes
      fixed makefile ommission
      added a function to check the file descriptor before adding it to
      changed initialize to osrfAppInitialize and childInit to osrfAppChildInit
      added caching and cache initialize routine to the bootstrap call
      added the md5 server (opensrf.version)
      changed around the status method some
      cleaned up Biblio some
      some api changes
      made C auth server
      added objson dependency to libopensrf
      added list and hash code based on libJudy
      removing in favor of new router code
      added atomic method cabilities
      slight C api change, method options are now passed as a single OR'ed group of option flags
      logging returned content at info level
      gutted chopchop
      various tweaks
      added section for chopchop since it now reads xml config instead of command line
      fixed logic bug in the xpath finder
      some more sanity checks
      disabled chatdbg function cuz it's way too heavy
      added newline in debug output
      made the JID functions safer
      added section in core config for C client bootstrap
      not allowing the code to be run as root
      forcing user opensrf to start the system
      using get_timestamp_millis() instead of manual time gathering
      added the <language> block to the opensrf app config so the servers
      added <language> for docs
      cleaned up the code some
      explicitly removing pre-existing connections when two overlap
      moved session code to osrfHash and osrfList instead of manual linked lists
      fixed bug where removing a node didn't always register
      checking <language> for perl in listener and unix children
      opensrf_core now builds libopensrf.so and opensrf-c
      handling 'hostname' more carefully
      durrrr.. typo
      rolling back hostname change because of mysterious performance problem
      added pop method to osrf_list
      tosimplestring now returns int/double as expected
      one more log line
      if client has been bootstrapped and is currently connected, bootstrap_client
      cleaned up and commented
      moved C code to a unified logging framework which currently supports syslogging and file logging
      patching up some more logging stuff
      final C code logging patchups
      drastically simplified logger code now supports logging to file and syslog
      setting log file to just "syslog" (instead of "syslog:") uses the default facility
      activity log is now a standalone log target: file or syslog:<facility>
      removed these since the C code is now using the unified log code in utils/log.*
      added variable arg to jsonNewObject for formatted strings
      freeing json response object
      added some log statements, fixed some typos
      Setting the logging service name to the application we're serving
      added qw(:level) to CDBI.pm because we were getting empty log levels
      added content-type back into gateway
      incorporated ilseents.xml file into opac
      Added new C event code for handling the auth login events
      added a "restartforce" option to force the code to at least try to restart
      srfsh now takes login commands like so:
      auth code now returns { authtoken : <t> , authtime : <sec> } as the payload
      setting the logger app name for debugging
      added a NO_SESSION event for when a login session does not exist
      Changed some log levels from INFO to DEBUG since they are highly repetitive
      started work on xul-based requestor/recipient holds
      re-arranged the log code so that VA_LIST_TO_ARGS (which runs vsnprintf)
      for some reason, doing "throw $err $err->stringify" was causing a generic method
      explicitly returning STATUS_NOTFOUND when a method is not found
      srfsh reports to stderr when a config file could not be found
      gateway now assumes status is OK on a message unless it recieves a message which proves otherwise
      added some NOT_FOUND events for record, copy, and circ (more to come)
      escaping embedded %'s so syslog won't barf
      changed a log line
      removed some "warns"
      moved some warns that will happen often to info logs
      srfsh accepts exit and ExIt
      URL can now contain api_level as a param to set the opensrf api_level for the method
      Changed log level for "disconnect on timeout" because it happens frequently
      removed extraneous warn
      leaving parse methods early if proper fields aren't defined (avoid warnings on system start)
      Added additional param to all the osrfLog* calls which mark
      added a default freeItem function for freeing list items
      added additional sanity check to index call
      module now dies with a message if bootstrap_client has not been called
      Moved some log messages from INFO to DEBUG level because of their repetitive volume in the logs
      testing cache timeout resets without removing the item in question
      re-vamped gateway to make it more stable and faster.
      osrf_json_gateway is tested and working. removing this older version
      removed mod_ils_gateway targets
      fixed bug where the ptr** was freed prior to the ptr*
      format fix
      small changes, fixed some typos
      forcing array-ness on non-existant params
      moved the Judy implementation to osrf_big_list and made osrf_list a
      added osrf_big_list to the makefiles
      added utility macro
      added method to allow creation of list with a starting size
      added method to insert items at the first NULL slot in the list.  useful for removing random items and inserting random items where order is not necessary
      Open-ILS/src/c-apps/oils_auth.c
      moved stderr line to a log line
      added "CALL" to the param debugging line for ease of grepping
      white space :) added some log lines
      updated to work with new login params
      moved osrf_hash code to osrf_big_hash as the Judy big hash implementation
      formatting errors as JSON strings so they come accross as, well, JSON :)
      now printing bad XML data to the log file.  my feeling is that this is what is
      added some macros for speeding up tight loops - taking advantage of those macros
      raised history size
      taking advantage of macros
      added hopefully more useful log line
      added basic opensrf.system.time method
      replaced regex with CORE::time
      making better use of macros for speed
      added some additional logging and some cleanup functions for improving
      removed depracated call
      like the Perl server, you can now no longer re-bootstrap clients in a process that already has
      added child init handling to the C stack
      added more debugging
      fixed bug
      added some logging, etc.
      added a flush_socket method to the jabber client code to allow
      chopchop will now timeout if trying to send to a client that can take no
      more debugging
      removed some unnecessary log lines
      more debugging, sanity checking read loop in apachetools as well as buffer_add
      ap_get_client_block returns -1 on error.. detecting
      handling any less-than zero returns
      gateway now requires a list of allowed services
      checking for socket connected-ness on sysread
      added some more diagnostic logging
      fixed linked list bug which as pushing app responses onto the front of the queue, and some general cleanup
      added log line
      added pointer check to prevent the router from crashing when it receives the
      added some additional debugging
      adding cookie parsing - disabled in gateway for now
      added request duration
      the code in these examples is way too old.  best to delete.
      added connection oriented statefull session handling to the server stack
      added a userData pointer
      added some error logging
      better, more-flexible, easier to use, all in one control script
      changed ps name for more accurate grepping
      cleaned up, added some info
      added error message for cached data on a closed socket
      limiting message size to prevent syslog warnings piling up
      installing osrf_ctl script
      added a free function pointer for the user data
      free pointer
      dies if user is not "opensrf"
      typo
      fixed logic error in disconnect
      copying userData to the atomic method
      attempting to update the documentation
      added IP addresses to log line
      added \ escaping
      return error when client is disconnected
      returning error code on disconnect
      encoding char=30 (record seperator) in ToJSON
      removed some unused non-apache2.2 friendly code
      removed old code
      cleaning up startup logging
      removed runtime print statement .. interfering with apache
      removed debug warning
      Fixed issue: when the router received two messages on a single socket that both fit into
      logging the session id at client creation time for debugging
      logging all requests + params to activity log
      when a backend child is not able to connect to jabber, the child now goes away
      put time into resource to ensure uniqueness accross machines
      testing multi-message fix in parser
      logging put errors instead of throwing exception
      remove method call that does not exist
      fixed log line
      updated log output to be more srfsh-ish
      sending authtoken in request header and logging to activity log
      truncate messages more to prevent syslog overflow errors
      clearing tmp buffer before use
      more aggressive uniquness measures just to be sure
      added escape for 0x1 char
      changed some logging
      moved json parsing methods to non-printf style methods, added new Fmt to behave the old methods did (which treats all embedded % chars like format flag chars)
      removed a bunch of old code
      added a log line
      put free calls back in to free the xml from messages
      added var check to prevent warnings on the numerous timed_read(0) calls
      changed format of log line just a little
      doing better job of propogating network errors up the stack
      fixed bug in child pipe reading code which limited the total readable bytes
      added logic to reconnect to jabber if the child receiving data realizes the connection is gone
      added message processing time to C stack
      moved processing duration up to info
      elevated recv timeout to INFO cuz it is important
      added .1 second sleep to inbound processer when it goes nuts on reading empty socket data.. still not sure what the cause is, but this will prevent the log storm
      when the gateway is not bootstrapped.. it is useless, doing a short sleep, then going away
      elevated response log to info because it is crucial for determing who a perl backend is talking to
      escaping hash keys
      finally implemented opensrf.system.echo[.atomic] - useful for nagios-style testing against all C apps
      Now, when no children are available to pass a request to, the parent
      stateful backend sessions now only timeout of no request was received within
      changed log line
      changed a log level to clear up some error logging
      added a log line that will hopefully give us more info on what appears to
      uncomment some unnecessary code
      added a comment
      committing a simple jabber registration script
      refactored redunant perl2JSON call
      added space in the utf buffer to handle 3-char characters
      removed two warning logs to prevent the unixserver logs from bloating up with the warnings
      replaced (printf style) format buffer calls with non-format calls to prevent issues with embedded % symbols
      removed big hash/array dependencies to remove libjudy requirements
      any unhandled char below ascii 32 will now be encoded as utf8 (\uXXXX)
      adding python libs
      reduced hash size (just now comitting, been like this for a while on dev)
      removed libjudy dependencies from makefiles
      Added support for the opensrf XID, which is a transaction string that's passed
      added timeout url param to set the request timeout
      added a is-true wrapper for bool objects
      fixed bool parsing bug -- off by one on the string size enforcement
      added child exit handling code and example
      removing old, unused child_finish_hook
      do a kill -9 after kill -s INT to make sure no stubborn processes stick around
      added the <client> block to the gateway.  moving everything to "localhost" for consistency
      removing unused log section
      applying spelling fixes and making db names/passwords match accross default config files thanks to patch by Dan Scott.  Thanks, Dan!
      refactored the unix::server config handling by getting rid of the old temp config files
      lowered some logging
      added more portable (perl) hostname fetching to pass to the C code, updated docs
      added "use Net::Domain" in the package that calls hostfqdn()
      removed the deprecated rest_gateway config; added comment on router name changes
      removing deprecated files
      removing install of deprecated files
      added an info log line to log the called method
      forcing int on timeout values in process and timed_read
      applied patch from Dan to provide an example usage
      removed some old code and the unnecessary select-as-sleep calls
      made new child creation more robust
      committing scott m's buffer protection patch
      added size check to constructor
      added some more index sanity checks.  added const qualifier where necessary
      added java jabber layer
      added the woodstox stax jar files
      fixed some logic bugs with the body parsing, added some comments
      added initial opensrf stack layer objects.  more tuning/testing of the jabber layer
      added support for opensrf-serializable objects and JSON output of those objects. updated some JSON test code
      added JSON reading ability, including serializable objects
      adding more base objects, started on stack layer. added config parser
      implemented enough of the stack/session logic to make stateless requests and receive responses
      added a lot of documentation
      fixed some doc strings.  added sample makefile
      implemented client bootstrap.  created a status object to model connection statuses.  remodeled the client test code to run arbitrary methods
      added a settings server client and test.  made the global config object wrapped in a method instead of using static methods all around
      added a memcache client and test
      committing added jars
      added memcache lib to makefile
      updating to jdk1.5 build
      rethinking deployment
      added a make target to sample makefile for fetching jar/source dependencies to ease deployment
      committing scott's safer MALLOC macro and a new buffer_release function patches
      broke network-object logic out of the JSON parsing code
      returning OK status in respond method, instead of no status at all.  most code uses respond_complete, which is why this has not been an issue in the past.  writing new client libs exposed it, though
      changed log level on what really should not be a warning message
      added math bench code.  added shutdown method to disconnect from jabber.  updated makefile to used fetched version of the stax jar
      added some inline comments
      added some more descriptive logging.  removed old signal handling code.  no longer freeing return value from strerror since it should not be modified
      no longer freeing return value from strerror since it should not be modified
      slimmed some logging.  capturing errno locally after the recv() call so it is not replaced by a different system call before the check
      removed some error lines printed to stderr.  not used and they also have the potential of overwriteing errno
      ported XML parsing from libxml2 to Python's builtin xml.dom.minidom to reduce dependenies
      adding sample makefile and install.conf file for opensrf installation
      adding gateway parsing code.  so far, we have XML gateway handling using python minidom.
      removed unused TEMPLATEDIR directory creation.  thanks, Dan S.
      rolling back changes to objson includes. opensrf cannot find "opensrf/<blah>" since there is no external include directory yet.
      Added a new XML-2-JSON utility for converting XMLized OpenSRF objects to their internal JSON representations
      Cleaned up the network hint / object registration code in net_obj
      testing email
      testing email 2
      more tuning of hinted object handling.  added support for hinted object parsing in gateway parser
      made the logging module fail gracefully when syslog is not present
      Merged libopensrf source directories (libtransport, libstack, and utils) into a single libopensrf directory
      forget to add libopensrf Makefile with latest re-org commit
      testing email
      testing email2
      updated the sylog and activity log file handling to accomodate differences from bootstrap.conf and opensrf_core.xml
      removed some initial (non-error) stderr logging.
      fixed bug in to-json logic -- was still using older api
      fixed bug where no-text-data resulted in incorrect array index when parsing hinted objects
      reformated error for easier reading
      repaired conflicting declarations
      Initialized merge tracking via "svnmerge" with revisions "1003" from
      Patch from Scott McKellar to repair srfsh buffer overflow:
      added config contexts for config files.  fixed some osrfNetworkObject handling bugs.  did some re-tabbing to change to space-based tabs
      fixed bug in json encoding of hinted objects and some display bugs
      Merging changes from branches/new-json2
      Patch from Ed Summers:
      ressurrected the srfsh time command
      added a bunch of comments to the test client to help explain the api
      added JSON gateway support
      python only evaluates default function param values once, so mutable types will always be pointers to the original default val.  change the default osrfNetworkObject init function to None and setting default manually
      added a try/catch around the XML parsing and an error log
      making sure error logs are logged to stderr even if syslogging is not an option -- eventually, it should fall back to stderr logging like the C code does
      re-factored and cleaned up the registered class base-class object
      added shutdown call to cleanly disconnect from the opensrf network
      synchronizing the initial xmpp login to prevent thread race condition on authentication
      adding basic logging api with a filelogger version and a test module
      adding new JSON parsing JS code, for wrapped class objects
      for now, we reference the wstx stax implementation directly to resolve class loader issues
      minor layout change.  calling notifyAll to ensure all threads are notified
      added multi-threaded client support to the opensrf network/xmpp layer
      updated to work with opensrf.jar with doing 'make run'
      added support for multi-threaded client interactions.  much like the java lib, each thread is allowed 1 jabber connection, as opposed to 1 process-wide jabber connection.  also did some re-tabbing to force 4-space tabs (not raw tabs) - more of those to come
      not creating new handle if the current thread already has one.  changed resource layout
      fixed import statement
      safer extraction of data from the in-memory object
      adding thread name to the log output
      added an atomic method for simple, one-off calls
      added cache cleanup code
      repaired logic bug which left the parser state in the JSON_STATE_IN_KEY
      added some more rigorous checking of session connected-ness and some logging
      provide a warning-level default logger if none is defined
      returning explicit true/false on data received
      added new constructor to build from class hints
      fixed infinite loop bug by hopping out of the loop if timeout gets down to 0, but the code still allows the the loop to occur once if timeout is initially 0
      changed imports to be fully qualified
      added ability to log to a file
      removed hard-coded reference to python 2.4
      Cleaned up exception messages so they will not be bloated with newlines
      repaired variable name
      replaced str() calls with unicode()
      added ability to parse attributes and elements containing no children or data to the xml2object parser
      removing out-of-date jabber2d patches
      in addition to pushing the received message to the callback, we return the message from recv()
      removed debug statement
      added error message. re-tabbed to 4 spaces
      adding a caching api.  requires memcache: ftp://ftp.tummy.com/pub/python-memcached/
      added a default timeout cache setting
      added the proof-of-concept http multipart translation code.  still needs request parsing to handle client disconnect messages and more testing with non-multipart
      added cache delete.  updated some logging
      parsing requests so the translator can return OK and stop waiting on DISCONNECT messages.  added some debug logging.
      removed unnecessary log line
      returning if config is not defined since next line of code tries to use config
      Added support for "migratable" opensrf services.
      created external script for downloading java dependencies.  added new install.conf settings for where dependency jars are kept and whether or not to build the java libs
      adding a generic xml flattening utility with test
      created a simplified XSL processing class with test
      adding a basic mutlisession manager
      parsing logfile settings and initing logger
      added iscomplete method
      added internal log level.  added some crucial log lines.  logging thread id
      added an xml flattener similar to the java xml flattener
      added a multisession class for agregating requets into a single recv manager
      added a flag to encode/decode flattened data as json
      changed osrf python version from 1.2. to 1.0 to match opensrf
      forcing int-ness on timeout value
      repaired stderr call
      added a static method to see if there is already a globally connected cache client
      changed str to msg to prevent clobbering.  changed repr call to unicode, which seems more appropriate for human-readable error message
      removed assumption that settings values would be numbers.  cleaned up the code some to make it more readable
      made exceptions a litte more generic, passing msg to superclass for networexception
      providing option to connect to memcache at general connect time
      using new C-based JSON parser: JSON::XS - this new code wraps the to/from JSON calls with opensrf class management
      repaired expire time logic to force use of the configured max if timeout is indefinite (0) or larger than max
      removing old, unused code
      I started adding some basic bootstrap options looking ahead to server-side python.
      added the ability to use cjson for json encoding/decoding.  gracefully falls back to simplejson
      added the ability to wait forever by passing <0 to recv.  explicitly setting sender address in messages to be correct.  added ability to create a message from raw xml
      created a shallow clone method
      python opensrf pre-forking server implementation.  this component manages the
      appending neglected boolean object to growing JSON object.  Thanks, Scott
      updating legacy JSON parser to store numbers as strings
      try/except/finally combinations are only supported in Python 2.5.  in this case, the finally is not necessary. removed it
      gracefully handle a null server resposne
      makeing osrfSystemCacheInit() a "public" function.  pushing osrfSystemCacheInit() into the child_init phase to prevent shared cache handles.
      updated to fit new opensrf updates
      added a ":" to the getopt "c" option so it would take a param
      Added support for multi-router registration
      updated to match new config layout
      Updated OpenSRF Javascript client library.  Currently, it only implements XMLHttpRequest as
      added support for hash-encoded json objects
      added support for ses.request(method, param1, param2, ...) style requests
      added connect/disconnect support, with onconnect callback
      added connect-only handling
      added support for blocking connect and request calls
      added a basic signal handler for the top-level C process which sends SIGTERM to its children to clean up
      made the pid file reading smarter.  removed the nasty killalls since they are no longer necessary
      added special case to avoid wrapping boolean objects
      adding service name to the "stopping process.." log line
      rolling back change in changeset 1277 for default osrf_clearbuf handling.  not sure of the exact problem yet, suffice to say the services wont start with the "!!!..." version of clearbuf enabled
      as it turns out, this was actually a problem with the makefile, not the utils.h macro def.
      forcing router exit without friendly cleanup for now until a socket bug is squashed
      updated srfsh math_bench return value since json no longer returns the extra 0s
      for easier debugging, logging method and params on NULL return
      updated to match new opensrf_core.xml domain layout
      added session/request locale support
      added some debug logging
      implemented onerror, onmethoderror and ontransporterror.  moved the callbacks into the main stack for clearer processing
      added ontransporthander support for multipart requests
      implemented the majority of server-side python.  still need to add settings server parsing and other stuff i have probably overlooked
      logging http result status
      This patch replaces the regex-based XML stream parsing mechanism with an XML::Parser (expat) based parser.
      raise an exception when the xmpp recipient is not found.  http_translator turns this into a 404; srfsh prints a user error
      added support for log transaction IDs
      The functionality in these files (that isn't deprecated) has been replaced by opensrf.js
      changing name to match name style; added comment to indicate this code is not usable yet
      At long last, removing old objson sources.  This will not affect the legacy
      importing json and md5 code
      checking socket connect state before sending final packet and calling shutdown (to prevent warnings)
      disable use of cjson for now because oddities have been seen in mod_python (potentially beyond).
      set the logging transaction ID earlier in the process
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      exiting early when hash iterator returns null
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      added date/time info when logging to a local file
      No longer globally setting the network recv_callback handler to None
      testing svn email..
      mild doc update, some changes from testing
      added new disconnected exception.  added some error condition logging.  no longer disconnecting on network handle clear, because parent process may be using the handle.
      now disconnecting and clearing network handles where appropriate, but not always both
      defaulting to string for info message
      added echo system method
      added millisecond to the time output
      updated some docs
      the latest cleanup broke GET requests by essentially ignoring them.  fixed
      removing chatty debug log line
      moved stop/start actions out to functions
      default to help when invalid option is provided
      added some hopefully useful comments
      defaulting to config.opensrf for config context.  added some initial settings server loading
      added activity logging ability.  activity logging any REQUEST messages that come through the translator
      changing default router log level to "warn" since you only use the router log for serious debugging.. as is, just filling up space
      added some cleanup code on child exit to ensure friendly shutdown of sockets
      initial C version of the opensrf http translator.  not complete.  I have not plugged it into the build env.
      fixed broken call to sizeof(). replaced ap_rvputs with more appropriate ap_rprintf.  removed some unnecessary string freeing calls
      don't run the cleanup/shutdown code more than once per process
      using a static buffer to store the multipart content type string
      added a buffer_chomp function to drop the last character from the buffer
      added the string mangling to collapse a set of responses into 1 for non-multipart requests
      adding the http translator
      commented out the testing debug line
      returning server error on disconnected jabber socket
      removed example log line comment
      no longer in use
      removing default config path so we don't have to mangle the C files at install time
      * remove the objson API compat layer.
      This patch removes the remaining autotools bits for objson, in particular giving
      This script provides per-service control of OpenSRF Perl processes.  In other words, you can
      kill spawned processes at shutdown time
      checking browser agent to see if multipart is supported
      wait for the parent proc to go away before we unlink the file
      merged in Shawn's build tools checker for autogen
      removed misplaced "my"
      config file, context, and cache server now have apache config settings.  keeping a static version of the translator on hand to reduce a layer of malloc/free
      added start all and stop all, changed some var names for clarity, needs testing
      removed extra parens and unnecessary if test
      using single "=" in test for more general compliance
      typo on header name
      added a force set option on log XID to override it even we can act as an origin client
      setting/clearing log XID.  honoring client log xid if present
      expired cache data is a common occurrence.  log at debug level, not warning
      make sure we send the log xid in outbound messages
      set log xid on outbound messages
      fixed bugs in start/stop_all
      added a configurable startup pause delay.  after opensrf.settings has been started (which will always be the first service to start), pause the top-level process for the configured amount of time before starting any more services
      change from info to debug log
      make sure service is not already running
      use the new process-specific perl control script
      removed a bunch of old, unused code.  removed code that is now handled by the external opensrf-perl.pl control process.  mild refacatoring otherwise.
      added verbose option to print which services/pids are being stopped/started
      io::socket::inet, somewhere between version 1.29 and 1.31, requires the peerport to be explicitly cast to an int.  also updated error handling to use correct error var
      the pool cleanup handler which was thought to only run on top-level child process exit is running on cloned processes cleanup.  this is how mod_cgi runs scripts.  disabling cleanup for now.  note: this cleanup is new to 1.0
      disable the new internal logging of sent data by default.
      in trunk, go ahead and run the perl control script with verbose flag on
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      2 Patches from Scott McKellar, with slight modification:
      in the interest of clearing some log cruft, move two highly repetitive messages from INFO to DEBUG level logging
      Two patches from Scott McKellar:
      add support for encoding boolean types to JSON
      protect against unknown clients, except when running in migratable mode
      slight re-org of unknown client handling
      protect against "null" locale
      clear remote ID on subsequent non-conntected requests and on disconnect
      clear remote id on connec as well
      correctly capture the JID of the backend server process for the session cache.  only create a session cache if there is a CONNECT message in the batch.  be more aggressive about removing session caches
      wrap the top case statement in brackets... i guess the macros are confusing things...
      if we are only connecting, we are still connecting.  same with disconnect
      updated to use multidomain by default
      running in no-router/single-service mode was checking a config value that is not required to exist.  if we still want to support running in no-router mode, let's make it an explicit confuration option
      we neeed to keep router_name so that opensrf clients will know what router_name to use
      handle the case where only one service is registered for a given router
      multidomain is required.  no use for a static list of allowed services.  removed support
      rolling back latest change because of macro variable oddities.  this macro will eventually be replaced with a real function anyway
      need a copy of the service when it's pulled from the cache, since the sessionCache object is freed.  use apr_pstrdup so Apache will manage the memory for us
      set the log xid before we read the POST data
      like the old gateway, log the full request params as JSON
      repaired config data structure ref check for registering routers
      make config parsing more tolerant
      added what amounts to -l (use localhost as fqdn) support for correctly reporting status to the terminal
      not sure why this is an issue now (different perl/json:xs verions?), but
      gotta protect the JSONObject2Perl() when decoding arrays as well
      don't try to close the socket if it's not there
      in IE, localeMatch might be null
      IE mad.  IE throw tantrum.  Bill give IE a Baby Ruth
      try the various xhr loading techniques
      make OpenSRF 'global' so IE won't clobber it
      hash keys have to be escaped like regular strings
      capture osrfServerError responses
      pass unknown string as second param to osrfLog to avoid literal % parsing in vsnprintf
      don't set stream state to disconnected on a non-stream error.
      go ahead and log the cache keys when we log the cache data
      activate the config options, need to that if you're going to use a cache server that's not == localhost:11211
      no need to wrap each method description in an object container with class 'method'
      added final bits for stateful sessions (drone keepalive)
      until full settings support is added, comment that out for now.  added example keepalive
      opensrf.py can now read the opensrf.settings file for managing apps.  added start/stop_all actions.  support for service name syslog ident
      try finding osrf_config in the users PATH first to prevent the use of 'find' when possible (find + NFS = watching paint dry)
      define OSRF_HOSTNAME globally to prevent 'unbound variable' error
      don't try to 'kill' an empty pid / prevents warnings
      flush_socket now flushes data through the xml stream parser to prevent the destorying the validity of the stream.  now discarding RESULT messages passed to server sessions.
      added a session_data disctionary to ServerSession class for storing per-session data.  fixed bug where no params caused serer-side confusion.  added exmample of session_data usage to example app
      added session callback support with example method.  added method-not-found handling.  added network socket flush for clearing stale inbound data.
      call cleanup instead of running the death callback directory when server session expires
      until we make the router / C processes write their own PID file, put a short sleep in after startup to give each time to show up in the 'ps' output.  this should help prevent lingering router processes after service stop
      check NULL-ness on hash the key before calling find_item
      reduce unnecessary calls to fcntl() while reading from the socket
      set the 'from' address in outbound xmpp messages
      set the 'from' address in outbound jabber messages
      repaired partial change from 'class' to 'pkg'.  added use strict/warnings
      assume 'yes' to fetching dependencies; reduce the verbosity of package downloads
      for consistency with other config files and ease of install automation, set the default password to 'password'
      initial support for capturing bytes read from gateway response
      Prevent infinite loop (with logging) in child process reaping.
      Patch from Joe Atzberger:
      similar to recent opensrf-c changes, keep active and idle child procs in separate lists for faster access and simpler code.  also some formatting/comment updates
      Added some fault tolerance to the inbound-to-unixserver message handoff process.  In some conditions, the unix socket will result in sigpipe (anecdotally, seen more oftenvirtualized environments).  these changes add a call to select before writing to the socket to check for socket availability and add a sigpipe handler that forces the inbound process to wait a brief period of time before trying the delivery again
      added some debugging / sanity checks to python gateway response handler
      Due to the async nature of xmllhttprequest, processing http responses (which often lead to further async-request laden callbacks) at receive time can result in out-of-order message handling.  To bring order to this chaos, push all inbound message onto a queue, then go back to processing the older messages in order of oldest to newest.
      Replace Net::Server with local pre-forking server
      added support for reading ContinueStatus opensrf messages in the JS opensrf lib
      removing vestigial references to Inbound.pm, which no longer exists in the repository.  this also removes get/set_listener, which were never taken advantage of and are no longer of use since the listener is thoroughly hard-coded into the opensrf stack now
      in json encoder, replace 2 sub calls w/ 1 hash lookup in heavily called code path.  we lose some abstraction, but it's probably worth it here
      when we add xhr responses onto the end of the queue, stash the original session as well, otherwise we're attempting to ask a session questions about requests it's not tracking
      implemented an optional per-service stderr log for capturing miscellaneous stderr output from services, similar to the old-style _unix.log files, since there are often useful warnings and error messages that never bubble up to syslog.  for clarity, the files now use _stderr as a suffix instead of _unix.  stderr logs are enabled by default.  included opensrf.xml example of how to disable it for a given service
      log message processing duration at INFO level, instead of DEBUG, consistent with the C libs
      consistent w/ the C libs, only log server message processing duration at INFO.  log server response processing duration at debug and w/ slighly different wording.  let the processing duration log message act as the indication of a successfully handled message to reduce logging
      socket_bundle typo patch from Jason Stephenson
      added osrf.apps to installed pachages (thanks for the tip, dbs).  bumped version in prep for 2.0
      patch from Michael Giarlo for better sanity checking during settings file reading in python (avoid #comment's)
      Patch from Michael Giarlo to integrate python service control into osrf_ctl.sh.
      killed the terminal colors in srfsh.py output.  They are cute and all, but are likely the cause of readline oddities/artifacts (and kind of distracting).  Default to raw (json) output for consistency
      rely on logic, not failure through try/catch, to determine of an object is a registered network object;  if an object is unregistered, do not treat it as an __unknown network object (which obfuscates and provides no value).
      removed debug print statement
      repaired logic in the as-yet-unused import_array_data; use the more efficient enumerate func; capture array length outside of loop for efficiency; avoid calls to set/get_field and access _data directly inside of the NetworkObject class for faster accessor/mutator's
      added 'router' command for router class info queries; improved redline tab completion; more changes for consistency with C version; general cleanup
      added network disconnect func
      added support for paging through 'less' (like C); added 'router' query docs;  added separate env vars for pretty printing json and for print network object keys;   explicit opensrf disconnect on exit
      install srfsh.py when --enable-python is set
      added support for introspect operation
      in the rare case the select() is interrupted while waiting on child statuses, exit early to prevent read()'s on invalid file handles and allow the calling code to loop back around and try again
      added opensrf.system.sleep method; takes 1 param (seconds); useful for debugging child process management
      avoid calling sysread when select exited from interruption.
      add fault tolerance (e.g. recover from interrupted select/sysread); always perform idle maintenance when there are any active child processes; exit check status early when no active processes exist
      don't clean up child attributes until we're done with them;  added pid map hash for easy/quick access to child via pid
      fail gracefully when opensrf.settings is not up and running
      improved select/read/write fault tolerance; cleaner and more efficient child process idle/active list management; improved logging
      on second thought, removing debug sleep method, which is (more than most) a DOS waiting to happen.
      Python srfsh enhancements
      repaired bug in total request time calc, particularly when a request returns no response
      repaired call to handle_request for router query; cannot survive without the self.
      make the api CALL log line consistent across Perl and C and make it something that can be pasted directly into srfsh
      consistent w/ sigpipe handling in osrf 1.6, provide a warning and retry mechanism for syswrites that fail as a result of sigpipe
      bug fix with srfsh.py introspection; better handling/reporting of service exceptions
      additional settings in sample rsyslog config: disable EscapeControlCharactersOnReceive
      change proc managament debug message from Info to Debug
      Patch from Kevin Beswick to support set operations on certain opensrf message fields.  note, this does not currently affect behavior, since values for messages are initially set from parsing JSON without using the access/mutators for setting values.

gmc (5):
      set transaction ID by default to make it easier to trace requests from srfsh
      remove ntp and ntpdate dependencies
      remove executable bit from module files that don't need it
      updated mailing address of the FSF
      no longer need FreezeThaw

miker (414):
      FIRST POST! ... dump numbers correctly in JSON
      making the router optional, and allowing multiple routers
      updating with a new method registration and lookup mechanism
      updating method lookup and registration in the demo
      adding subrequest support
      adding subrequest example to Math.pm
      howto on Application development
      started introspection API; added thunking flag; added "atomic-ifier" and stream flag to registration; repurposed "protocol" to be "api_level"
      add api_level to introspection responses
      added server_class to the method struct, this will let us provide transparent remote subrequests
      adding session-wide api_level setting
      initial stab at a roadmap for OpenSRF
      adding the transparent subrequest logic, it will be enabled when the Settings server is ready
      removed stale comments regarding config
      more logical shortcircuit for disableing remote method lookup
      No longer used
      accidentally reverted some fixes... puting them back
      no longer used
      removing old references to OpenSRF::DOM::Element::userAuth
      need to grab the content from the result message
      added the rest of the magic remote subrequest stuff
      removeing C++ style quote support
      added "api_name" wrapper method
      first cut at the Persist Application
      adjust RESULT objects to allow empty string
      ARG... sqlite is pain
      fixing to allow empty strings, and must be called as a class method
      added nondestructive "peek" methods to stack, queue and object APIs; added "size" to object API; added "depth" to stack API; added "length to queue API
      Added "register_death_callback()" interface to run code at the begining of
      using a single jabber connection per process, since we do not actually care about the JID we are
      added nondestructive (queue|stack).peek.all interface for grabbing the entire slot without removing anything.  the base registered methods are streaming, so a ".atomic" version is generated by the system.
      make sure there is some space between interval parts
      added .create_expirable interface.  accepts a Utils style interval, and sweeps at each "_flush_by_name"
      added .slot.set_expire interface for setting/removing/updating the expire time of a slot
      fixing create/destroy bugs introduced with the API updates
      WHEEEEEEEEEE! using the router to discover remote apps now
      making return on failure sane
      introspection bug fix for a single method lookup
      API Documentation for the Persistance Application
      spelling correction
      using new client syntax
      using OO syntax
      dunno why that was there.... removed dead code
      allow packages other then the explicitly named application_implementation to publish methods
      settings client fixups
      added extended callback support to sessions
      using disconnect before kill_me during non-error destruction on the server side
      allow max_requests to be infinite on the server side
      fixed numeric opperators
      should fix perist bug with expriable slot creation
      adding -fPIC for x86_64 support
      get_expire method
      added .slot.find for bill
      logging and error detection fixups
      using an O(log n) [n=JSON elements] algo instead of the (worst case) O(2n**2) algo...
      fixed minor bug in the class casting regex; added class finder sub to support said bugfix; added a default class (type hash) for unknown hints
      fixing JSON bug with top level non-casted hashrefs
      fix for JSON::object_unknown
      fix for JSON regexes
      registering classes during load and introspection
      using old regex method + default class
      added profiling mode
      lots of debuging to find that the zombie loop was broken
      removing computed regexes and commenting out unused code
      fixing double cast and format
      removing expire times
      YAY! Unicode works now!
      removing C++ comments, cause they hate me
      oops... left a "warn" in there.
      transactions are working now ... some cleanup is needed
      magically handle any class in JSON.  no need to register class hints anymore!
      automatic generation of most "Publish" methods
      fat fingers make for silly bugs...
      fixing xml quoting issues
      working regex!
      not escaping "/" characters
      eet leevs
      disconnect on magic subrequest, and record message processing time
      fix for embeded $
      bootstrap_client now registers a dummy client server_class
      adding -fPIC to makefiles so they work on amd64
      adding full_request (not sure if we need this) and fixing thinko on disconnect
      added initial limiter and cache population
      error checking in Cache.pm
      cach update
      added general storage result caching where applicable; added actor::card to the fieldmapper
      fleshed out "actor.usr" interface, and stream behavior adjustment
      allow method lookup for a single method.  open-ils.storage takes 10s without this fix...
      first stab at an XSLT to convert the xml fieldmapper config into a pile of javascript
      adding perl XSLT and (maybe?) finishing up the javascript one
      first stab at CDBI autogen
      clarifying namespaces and adding new xslt
      up the timeout for long queries
      adding routerless config support; adding local UNIX domain socket support
      stubber for dokuwiki -- OpenSRF
      set up deps for single builds -- add install-prep to individual install lines
      better sorting and nesting
      aliasing respond_complete to respond
      making introspection filter regexy
      adding filtering and sorting to the introspection stubber
      adding filter info to the help
      added date clenser so we can use DateTime::Format::ISO8601
      adding more fixup support for DateTime::Format::ISO8601; exporting datetime-esque methods
      remove extranious "null"s from JSON
      removing duplicate "complete" messages by completing the server side of the request
      adding MethodException backtrace
      rolling back useless logging change from earlier
      using implicit connect with "method_lookup" style calls;fixing "max_requests" state with an explicit connect; reset request timeout on STATUS=100
      adding new ContinueStatus message
      default to api_level 1
      adding echo method
      passing numbers as bare strings
      fixing number bug in JSON
      changes to support the REST gateway
      the rest gatewaty, eets alive!
      fixing bare "array" inside fieldmapper objects
      making class handling more generic
      bug fix
      bugfix
      removing (confusing) extranious definition
      quoting xml characters, bug fixes
      either my escaper is to naive, or something is wonky with buffer_add_char
      bugfix for buffer_fadd
      moor boogz
      staving off memory leaks
      daemonizing and hushing warnings; logger reopens files instead of writing blindly to an open FH
      removing some minor debuging info
      ooops... octal ;)
      testing reveals bugs, bugs get squashed!
      minor bug fixes and removal of some extra stringifications
      fixing preconstructed Result test in AppSession
      getting rid of some spurious warnings
      add socket options to allow socket recovery and speed up streaming
      protect hash keys by quoting
      protect hash keys by quoting
      protect hash keys by quoting
      separate REST gateway now compiles ... installation is untested
      normalizing wide chars
      matching non-letter and non-number
      matching non-letter and non-number
      matching non-letter and non-number
      matching non-letter and non-number
      fixing up the date scrubber
      adding support for alternate APR header dirs
      logging added by bill
      settings client does not need to bootstrap itself, system will do that
      move the moved call to the right place...
      added "connected" method for stateful sessions
      stripping bad characters
      fixing unicode escaping in JSON
      arg! cut-n-paste error
      touchup on the unicode handler
      cleaning up the pretty printer
      give reasonably unique default for service name
      reduce the overhead of JSONification by removing multiple NF?() calls; make Unicode JSONifcation more robust by using unicode character regexes
      truncating long log lines that go to syslog, as it kills the perl sprintf for some reason...
      moved timeout to global var; later, refactor to command line or config file option (this was needed for storage debuging)
      added lookup_class and lookup_hint methods to support param class instance checking
      added (disabled) signature parsing and (disabled) param count, type, and class checking
      enabling signature parsing; added "notes" pointer from .atomic versions to the original method
      enabled param checking
      updates for the perm editor -- FM dance required
      more opensearch fixup; bugfix for "no need to re-bootstrap"
      sort field and sort order support; signature fix for bill
      turn of signature checking for now
      moving to UNIVERSAL::require to suck in implementation modules
      refactored copy targeter to use new JS copy tester; adjusted object relationships; added ranged tree methods for record and volume
      fixups, and starting a paged interface
      more support for introspection paging
      adding xml format support to the gateway
      moving over to the new gateway xml format
      adding an ISO timestamp builder
      fixed sig building (I hope)
      improving datetime parsing in clense_ISO8601()
      only handle timezone if there was actually a time
      removing session cache; adding support for quiet remote exceptions
      MultiSession, YAY
      modding the result, instead of inside the hash function
      oopsie ... off-by-one potentially causing unbalanced session use
      adding duration timing to requests
      streamlining collection
      adding example script for OpenSRF::MultiSession
      date clensing works properly now... oops
      smarter default "recv"
      optional hash function parameter; minor debuging
      moving debuging to INTERNAL
      debuging changes
      fixing recursion bug
      adding ability to set recv_timeout per session
      adding new open-ils.cstore app; moving new IDL generator to a better home; added userData support to method context
      allow a null param element if argc is 0
      attempting to fix the extra null in respondComplete
      adding a tree filter for future common use
      fixing old fieldmapper_lookup generator
      adding client-side stream push method; working on the ingestor
      experimental port of the C parser (it is slower...)
      fixing typo in the bowels
      logging cleanup
      chopping up dup messages in Client::process()
      fixing month calculation in interval_to_seconds
      switching to some UTF8 code from perl
      switching to some UTF8 code from perl
      new unicode stuff compiles now
      inline the utf8 stuff
      ugly, but it does not warn
      handle the first byte all special-like with utf-8
      off-by-one ... arg
      printf format fix
      using Net::Domain instead of the shell to get the fqdn of the current host
      adjusting comment in example config re bug #518
      spacing adjustment
      Typo reported by Dan Scott
      completely untested and possibly broken settings extention to retrieve defaults when host specific fails
      Avoiding memory leaks in string opperations
      Exiting with a usable error message rather than segfaulting
      printf family format fixup found (har har) and suggested by Scott McKellar -- %lf -> %f
      stderr output cleanup
      Correcting previous comment.  The right mailing list pointer is at:
      const-ification
      Failure cleanups suggested by Scott McKellar; modified from patch at
      reordering breakage; const qualifier in header
      strndup() and strnlen() implementations from Jeroen Ruigrok van der Werven
      cut-n-paste error in logged message -- thanks scottmck
      moving this to strn_compat
      compatability functions for strnlen and strndup
      ignore non-leaf text nodes
      From Dan Scott: EOL Whitespace is now stripped in the perl config file,
      XSD from Dan Scott for validating the ~/.srfsh.xml config file.
      http://list.georgialibraries.org/pipermail/open-ils-dev/2007-May/001092.html
      At Scott McKellar's suggestion, using (long) cast and %ld format for getpid()
      Several combined cleanup patches from Scott McKellar:
      Patch from Scott McKellar; allows the compiler to warn us of missing casts
      Patch from Scott McKellar; reasonable and non-intrusive diagnostic message in
      swapped the formats -- typo
      Patch from Dan Scott; adds -rpath=$(LIBDIR) to the default LDFLAGS for
      Change suggested by Scott McKellar; handle c-app children death without a
      dueling patches of pedantism
      Patch from Scott McKellar;  Adds calls to strerror() where appropriate in
      Patch from Scott McKellar; cleaning up several error conditions
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar with minor adjustments:
      Patch from Scott McKellar to clarify errors in bootstrapping of the server process
      Capturing the return value of the bootstrap call and emitting a message when encountering a non-success value
      Patch from Scott McKellar:
      Patch from Scott McKellar;  rearranges some logic to avoid a potential memory leak
      Patch from Dan Scott to fix up the OpenSRF build process in the new SVN repo:
      Patch from Scott McKellar to add stderr logging when config (and thus configured logging) is unavailable:
      Added osrfLogGetLevel method, then applied
      thinko, need to return an int from osrfLogGetLevel()
      allow the OSRF_HOSTNAME env variable to specify the local hostname -- for single-box installs
      Patch from Scott McKellar to improve default logging:
      adding router commands to gather some stats about request counts
      adding yet more router commands to gather some stats about request counts
      Patch from Scott McKellar, finishing off the "log to stderr when all esle fails" work:
      I missed patching the header somehow ... (Part of a patch from Scott McKellar.
      Patch from Scott McKellar:
      arg ... Patch from Scott McKellar that:
      Patch from Dan Scott to move perl OpenSRF core bootstrapping settings into
      test for failed forker creation before touching struct members
      cleaning up XML indentation via xmllint; removing bootstrap.conf, which is no longer needed (yay Dan!)
      Patch from Scott McKellar implementing cleaner daemonization; moved daemonizing code above worker forking in system boostrapping:
      Patch from Dan Scott to finish up the removal of bootstrap.conf:
      Patch from Dan Scott to move JSON to OpenSRF::Utils::JSON:
      Completing the JSON perl module move started by patch from Dan Scott.
      removing vestigial DOM code from back when opensrf talked XML
      do the process separation dance on server bootstrapping, just like with the C code
      capture the perl pid using ps instead of $! (forking for daemonization)
      need to wait for perl to catch up ...
      removing signedness warnings coming from libxml2
      moved from custom is_number() to standared ctype.h isdigit()
      a little bit more cleanup from previous DOM/DomianObject removal
      adding COPYING and LICENSE.txt
      Patch from Scott McKellar for declaration cleanup and improved error handling:
      Patch from Scott McKellar to remove srfsh.h and push all relevant
      Patch from Scott McKellar to fix potential local buffer
      Patch from Scott McKellar, with modifications, to remove unused code and provide some memory protection:
      changing back to an array, from calloc.  more straight-forward, and avoids memset overhead
      Patch from Scott McKellar to clean up srfsh's user interface:
      Patch from Scott McKellar to fill buffer overflow holes:
      Patch from Scott McKellar providing:
      Patch from Scott McKellar to address potential buffer overflow in router query inside srfsh.
      Patch from Scott McKellar to provide defined behavior when passing NULL to an sprintf
      initial sender_locale support ... probably going to break stuff; also, patch from Scott McKellar to define some undefined behavior in an snprintf call
      unbreaking the perl session locale stuff
      formatting fixes; protect against NULL apache setting
      arg ... left out one minor fix
      formatting ... they are all tabs! ;)
      un-crazy-fy current_locale
      more locale cleanup
      Patch from Dan Scott to remove mentions of open-ils from the example config file
      Patch from Scott McKellar to protect SHA-1 against an off-by-one bug
      patch from Scott McKellar to use const pointer qualification during object serialization
      patch from Scott McKellar to examine and report the exit status of child processes as they shut down
      Patch from Scott McKellar to log service name on child process startup and exit, along with more exit status info
      Patch from Scott McKellar which introduces a const-accepting and -returning
      Patch from Scott McKellar to improve const-correctness in srfsh:
      Continued const-correctness improvement from Scott McKellar:
      Use of const-correct osrfObjectGetKeyConst() from Scott McKellar:
      Patch from Dan Scott to:
      Broad patch from Dan Scott to move towards better memory management:
      Patch that:
      adding -l for localhost support
      Patches from Scott McKellar covering:
      Patch from Scott McKellar to clean up some const qualification and initialize a pointer to NULL.
      Patch from Scott McKellar to increase const correctness in the JSON parser.
      Patch from Scott McKellar to provide more const correctness to functions using osrfJSON objects
      make the perl local support match the C version
      uber-patch from Scott McKellar cleans up large amounts of const-correctness issues and static-ifies several areas of unused header-based code; several cleanups to use simpler APIs such as buffer_release
      pushing locale through in the perl
      for-loop initial declaration issue; realigned some const-ification
      still working on the perl locale stuff
      thinko, sorry
      debug logging
      thinko, sorry
      propogate locale from server to client
      removing some debug logging
      Patch from Scott McKellar:
      removing confusing dead code
      Patch from Scott McKellar which adds a free-object-pool for jsonObjects, reducing malloc/free overhead by a large degree
      track malloc()-created objects
      tracking actual list length based on adds and uses
      arg ... add tracking in both "new" functions
      Patch from Scott McKellar to clean up const-iness and simplify the parser internals
      Patch from Scott McKellar to speed up parts of the growing_buffer API; return values from buffer add/reset API brought into a consistent state for proper return value checks
      Patch from Scott McKellar to correct some problems with _jsonParserError(),
      Patch from Scott McKellar to allow E as well as e for scientific notation
      Patch from Scott McKellar which adds some const-correctness.
      Patch from Scott McKellar; use camelCase instead of under_score function names
      Patch from Scott McKellar; use camelCase instead of under_score function names
      Patch from Scott McKellar; use camelCase instead of under_score function names
      Patch from Scott McKellar; use camelCase instead of under_score function names
      Patch from Scott McKellar; use camelCase instead of under_score function names
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Two patch sets from Scott McKellar
      Memory leak plugged by Scott McKellar:
      Memory leak fixes for the old-style gateway:
      JSON to XML patches from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      turn \d{1,10} into a number on the wire
      camelCasingPatch from Scott McKellar
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar to fix up some const correctness issues.
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar to replace some deprecated identifiers
      Patch from Scott McKellar to plug a memory leak in the mathbench test application
      Patch from Scott McKellar to plug a memory leak in the mathbench test application
      Patch from Scott McKellar:
      Patch from Scott McKellar (including commentary):
      fix paging for large app introspection
      add JSON::XS-based true/false support
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      small memory leak plugged by Scott McKellar in the math-bench test app
      Const correctness patch from Scott McKellar.
      Const correctness patch from Scott McKellar
      Patch from Scott McKellar:
      Parially, a patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar providing speed improvement by using fread() instead of fgets()
      Patch from Scott McKellar which removes harmful use of osrf_clearbuf()
      Plug for a a memory leak from Scott McKellar
      dojo wrapper to opensrf JS libs
      Patch from Scott McKellar:
      Patch from Scott McKellar (with commentary on future plans):
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Applying diff from superceding patch provided by Scott McKellar
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      better locale configuriation support
      removing redundant file. covered by DojoSRF.js
      add a copy of the DCO for convenience
      removing overly agressive locale normalization
      give subrequests access to the session (will not be used by respond())
      doh ... not that way, nope
      session passing for make_atomic, at least
      allow methods do decide on their strictness; properly parse params text signatures
      doh ... use m instead of g
      adding explicit request timeout detection
      need to copy automake files instead of linking
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      Patch from Scott McKellar:
      force default locale on all messages
      typo; this fix will precipitate a new release to support connected sessions through the translator
      Patch from John Craig fixing a problem with the pre-reqs makefile
      teach interval_to_seconds about negative intervals
      teach interval_to_seconds about HH:MM:SS format time intervals
      give decodeJS a way to try to load a class that was requested but does not yet exist
      keep the typo around for a while ... sorry, dbs ;)
      add non-destructive methods for grabbing first and last responses on the response queue
      just adding a marker for where the "peer domain" logic should likely be plugged in
      Add response chunking support to the Perl implementation of OpenSRF
      Mike, when adding the length, actually add the length, not the string
      always use respond_complete to finish a request, whether there is a final message or not
      return the trace-augmented message as written to the log

phasefx (20):
      Initial revision
      oops, perl syntax
      Need to set a global myPackageDir before loading the OpenSRF scripts.
      A XUL version of the math app example.  Some assembly required with the
      We're not using authentication past Jabber anymore.
      casting
      complete is a method
      the domain object stuff will be going away
      oopsie
      oopsie
      Need to revisit this stuff
      Some bugfixes from Bill
      We had casting removed for the cat demo.  We need to revisit this.
      syntax
      adding initial test file for generating all fieldmapper implementations from a config file
      quote-o
      srfsh.xml tweaks
      forgot a noun
      correct the test for modifying the *.xml.example files
      fix usage example

pines (2):
      adding possible "methods" element
      moving from XML to JSON in the core messaging

sboyette (48):
      merging perl CPANification/normalization branch work
      OpenSRF::Util::JSON requires JSON::XS, not JSON
      typo
      missing deps found via testing
      can has use tests for all modules
      initial steps toward OS X portage
      OpenSRF.pm version changes
      initial checkin for perl Makefile.am
      adding src/perl to AC_CONFIG_FILES
      removing perl special-casing from src/Makefile.am
      M::B changes
      M::B changes
      Build.PL built; build/test/install all selfcontained and automatic now
      Added distclean-local: target and DISTCLEANFILES to make 'make distclean' work superawesomely
      AC_CONFIG_MACRO_DIR added at the behest of libtoolize
      Added DISTCLEANFILES to make "make distclean" work better
      Going back to dumping a script (unbreaking non-root make vs. make install)
      'make' will now just plain make again without proceeding to install.
      removing files no longer needed
      added separate install fail diagnostic message
      updating MANIFEST for Module::Build-ness
      'make check' works as promised. perl tests moved to 'check' target
      preëmptive version bump
      local doc updates for recent changes. wondering how much point there is in keeping these around, long-term
      that last version change was rather poorly timed, as it turns out
      ditto
      method prettyJSON doesnt exist anymore
      removed $VERSION construct which caused undef warnings when not under svn, and only occurred in 2 modules
      new test files for Utils breakout
      rearranging things a bit, docs. no actual code changes.
      removing OSRF::Utils::LogServer at berick's suggestion
      shuffling around, adding POD stubs
      removing _json_hint_to_class
      removing use of LogServer
      yanking LogServer test file
      more cleanup and documentation in progress
      first tests
      changed 'my' globals to 'our' globals for testing purposes
      WIP
      stowing WIP
      sync
      more test
      WIP
      WIP
      100% test coverage
      POD/docs cleanup
      LogServer was removed from distro but not from MANIFEST - fixed
      exit with error code when tools are not found

scottmk (208):
      Add a new function buffer_add_n(), and the corresponding
      1. In osrf_stack_transport_handler(): removed the memset() as
      This update restructures the mechanism for queueing incoming transport
      This update boosts the performance of the jsonFormatString function.
      Tinkering with macros.
      1. Make the functions reset_session_buffers() and grab_incoming()
      Eliminated four dead functions that are never called
      Eliminated the obsolete function osrf_message_free(), which is now
      Eliminate the old obsolete function osrf_app_session_connect(), which has
      Oops, missed one last instance of osrf_app_session_connect().
      Rewrote the OSRF_MALLOC macro so that it evaluates each
      Prepare for #inclusion in C++ programs
      Add compilation guard; prepare for #inclusion in C++
      Add compilation guard; prepare for #inclusion in C++
      Add compilation guard; prepare for #inclusion in C++
      Add compilation guard; prepare for #inclusion in C++
      Add compilation guard; prepare for #inclusion in C++
      Add compilation guard; prepare for #inclusion in C++
      Rename macro for compilation guard; prepare for #inclusion in C++
      Rename macro for compilation guard; prepare for #inclusion in C++
      Rename the macro for compilation guard; prepare for #inclusion in C++
      Rename macro for compilation guard; prepare for #inclusion in C++
      Rename macro for compilation guard; prepare for #inclusion in C++
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Move nested headers into complation guard;
      Rename macro for compilation guard, to avoid conflict with
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Prepare for #inclusion in C++
      Move the xmlSAXHandler out of the header and into the
      Move the xmlSAXHandler out of the header and into the
      Bug fix.  In some circumstances (unrecognized status code
      In the macro OSRF_LIST_GET_INDEX: placed all occurrences of the macro arguments
      1. Replaced the innards of an osrfStringArray to include an
      Reformed the macros OSRF_METHOD_VERIFY_CONTEXT and _OSRF_METHOD_VERIFY_CONTEXT.
      Add a function osrfMethodVerifyContext() to do what the
      Add a new function osrfStringArrayTokenize.  It parses an input
      This update mainly tightens the error handling.
      Replace the OSRF_METHOD_VERIFY_CONTEXT macro with an
      Replace the OSRF_METHOD_VERIFY_CONTEXT macro with an
      eplace the OSRF_METHOD_VERIFY_CONTEXT macro with an
      1. Added a missing #include
      Plug a memory leak reported by Steven Chan.
      In osrf_system_shutdown(): provide a return value for an early
      1. Create a new osrfListExtract function, which removes an item
      In osrfConfigGetValue(): plugged a memory leak
      New JSON parser -- simpler, faster, and more robust in the
      Performance tweak for osrfLog* functions: don't pass the message
      1. If an input line ends in a backslash, remove the backslash
      Fix a bug whereby, if there was only one <service> entry for the
      Add two new commands, "open" and "close", to open and close ongoing
      This is a performance tweak to the osrfHashGet function, a widely
      Performance tweak to jsonIterator.
      Extended the JSON_INIT_CLEAR macro to avoid segfaults.
      1. Add comments to be recognized by doxygen or other such
      1. A minor streamlining of va_list_to_string(), to eliminate
      1. In osrfListSetDefault(): install the standard function
      Enhanced the error messages from osrf_settings_host_value() and
      Tweaking comments for doxygen:
      1. Moved the declaration of the osrf_host_config struct out of the header.
      In osrfNewHash(): specify a size for the osrfList used as a hash table,
      In osrfStringArrayRemove(): fixed a bug whereby we would decrement
      In osrfBigHashFree: added a const qualifier to key,
      In osrfSystemBootstrap(): added a const qualifier
      In osrfAppSessionClientInit(): added a const
      In apacheGetParamValues() and apacheGetFirstParamValue():
      In osrf_json_gateway.c: added the const qualifier to three
      Changed the signature of osrfStringArrayGetString():
      1. Add doxygen markup for documentation.
      1. Changed osrfLogFacilityToInt() so that it accepts
      1. Eliminated some memory leaks by replacing calls to
      Comment out an error message added in the previous patch.
      We routinely grab a chunk of configuration file that doesn't
      1. Add doxygen-style comments to document functions in the
      Change the return type of jsonObjectGetString so that it
      Enhance the performance of the recursive descent JSON parser,
      Tweak jsonObjectDecodeClass so that it preserves classnames
      Created a new function osrfHashExtract().  It extracts an item with a
      Performance tweak to message handling.
      Small performance tweak.
      Fix a bug in md5sum() (which only affected code compiled
      Performance tweak to the logging routines.
      1. osrfLogGetXid now returns a pointer to const.  We don't want the
      Add doxygen-style comments to document all functions and all variables
      Add doxygen-style comments to document macros, and an overview
      1. Replace the old JSON parser (jsonParseString()) with a newer, faster one
      1. Moved the declaration of socket_node from the header into the
      1. In socket_open_tcp_client(): use getaddrinfo() instead of gethostbyname().
      1. In socket_connected(): if the select() fails because it is interrupted
      Eliminated _socket_route_data_id() as a separate function, incorporating
      Various cleanups in transport_session.c:
      Implemented session_connected(), which had been declared in the header but never
      Merged _socket_route_data() into its only caller, after untangling its logic.
      1. Moved several macros from the header to the implementation file.  They aren't used
      1. Added comments to document the process of connecting to Jabber.
      1. In endElementHandler(), responding to an error: don't explain what a
      1. Tidy up the white space.
      Add doxygen-style comments to document the
      1. Tidy up the white space.
      Tinkering with white space and comments.  No
      Fixed a bug in osrfRouterClassFree().  We were trying free
      Changed the signal handling.
      New function: client_sock_fd().  It returns the socket fd used
      1. Move the declaration of osrfRouter out of the header
      In the main loop of the router: if the select call fails for
      1. Changed several functions that were returning int so that
      1. Added an osrfHashIterator as a member of osrfRouter, so that
      Eliminate a potential (if unlikely) memory leak:  Free a
      1. Further refinement of comments.
      Several bug fixes:
      Corrected a glitch in the command-line parser.  Now commas
      Miscellaneous minor tweaks:
      No substantive changes.
      1. Fixed a bug whereby the display of request results was not showing up
      Tidied up various things:
      Pulled the creation of a single osrfMessage from a jsonObject
      Created a new function osrfListClear() to take an existing
      Create a new function osrfMessageDeserialize(), as a
      Replace the the call to osrf_message_deserialize()
      Move the libxml headers out of the header and into the
      1. Changes to comments and white space.
      Eliminated two members of the osrfMessage structure:
      Tinkering with comments and white space.
      Replacing calls to the old JSON parser with calls to the
      Added some comments, tinkered with white space;
      Eliminated the function pointer osrf_stack_entry_point so that
      Add three new functions:
      1. In osrf_app_session.[ch]: Create a new function
      Replace calls to osrfAppSessionMakeRequest() with
      Replace calls to osrfAppSessionMakeRequest() with
      Log a warning message whenever the deprecated function
      Correct a typo in a warning message
      1. In the parent router process: wait for all of the immediate
      Add routines for calculating SHA1 and MD5 digests, based on the
      Add a stream parser for JSON, and a format_json utility
      Changed the way pending requests are stored in an osrfAppSession.
      Incorporate _osrf_app_request_resend into osrf_app_session_request_resend(),
      Finished adding doxygen-style comments to document the app session
      Mostly tidying up white space and comments.  Also rearranged
      Moved nested #includes out of osrf_prefork.h and into the implementation files.
      Added or modified a lot of comments; made some minor tweaks to white space.
      In srf_app_server_session_init(): if the requested session already
      1. For keeping track of the child processes: use a doubly-linked
      Tinkering with comments and white space; nothing substantive.
      Close a substantial resource leak in drone processes.
      Refactored the signal handling so that we shut down in an orderly
      Instead of keeping all child processes in a single list, keep them in two
      1. Correct some mangling of the linked list pointers that
      Reverting to a previous version believed to be good.
      Bug fix.
      Rearrange the error handling a bit in send_request().  The old code
      1. For the "request" command: removed the calls to osrfAppSessionConnect()
      Tidying up various things; nothing substantial.
      1. Change xmlSaxAttr() to return const char* instead of
      1. Reworked the xmlDocToJSON and _xmlDocToJSON functions for clarity.
      1. Added doxygen-style comments to document all functions.
      1. Refactored _do_client() and _do_server() so as to untangle some
      Tidy up white space and comments; no substantive changes.
      Tidying up various things; nothing very substantial.
      Miscellaneous minor changes. mostly for clarity:
      A small performance tweak.
      Tidying up white space; no substantive changes.
      Added a const qualifier to one variable.
      Apply the const qualifier to one variable.  Tidy up white space.
      Apply the const qualifier to the return value from osrfMessageGetResult().
      Fix the jsonFormatString function.
      Set the appname to the logging routines at the beginning of
      Fix a bug that occasionally caused OSRF not to shut down cleanly.
      Write the PID file from the child process (the one that launches the
      Eliminate the daemonize_write_pid function (thereby reverting a
      When traversing a list of osrfMessages: don't free the messages.
      1. Changed an error message to make it clearer.  This is the message that
      Rearrange the way that a listener juggles its drones.
      Add a bit of bulletproofing.
      Provide a mechanism whereby a server drone can terminate immediately,
      1. Make osrfMessageToJSON() available at global scope.
      1. Add a buffer to osrfAppSession structure; for future use
      Implement the chunking of OSRF messages.  I.e. bundle multiple
      Fixed a bug in the chunking.
      Cruft removal; there should be no outwardly visible effects.
      Provide a way for a service to set the effective buffer size for a
      Adding comments and tinkering with white space.
      Minor cleanup:
      Eliminate the old JSON parser, implemented in osrf_json_parser.c and
      Add some macros for upward compatibility from the old JSON parser.
      Minor performance tweak: replace a call to buffer_add()
      Pedantic change for const-correctness: replace two calls to
      Pedantic change for const-correctness: change three calls to
      1. Pedantic change for const-correctness: replaced all calls to
      Several minor and inconsequential changes:
      A few minor tweaks in the name of const-correctness.
      Plug a minor memory leak that could occur when we opened a TCP connection

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


hooks/post-receive
-- 
OpenSRF


More information about the opensrf-commits mailing list