[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