opensrf/bjwebb.git
16 years agoCommit autotools patch from Kevin Beswick
dbs [Mon, 28 Jul 2008 03:55:01 +0000 (03:55 +0000)]
Commit autotools patch from Kevin Beswick
(adjusted slightly for Bill's objson API compatibility layer removal)

Enclosed is a patch to update the OpenSRF autotools implementation. It
fixes most bugs such as:
-correctly replacing hardcoded directory paths in various files
-correctly implementing clean, and uninstall make targets
-fixes building src/c-apps modules without the lib prefix
-builds the src/gateway apache modules with apxs
-fixed the naming of the opensrf-c binary

Also, it implements more of the autotools features:
-rolling a tarball with make dist
-enables VPATH (parallel) builds
-checking a distribution with make distcheck

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

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
   have the right to submit it under the open source license
   indicated in the file; or

(b) The contribution is based upon previous work that, to the best
   of my knowledge, is covered under an appropriate open source
   license and I have the right under that license to submit that
   work with modifications, whether created in whole or in part
   by me, under the same open source license (unless I am
   permitted to submit under a different license), as indicated
   in the file; or

(c) The contribution was provided directly to me by some other
   person who certified (a), (b) or (c) and I have not modified
   it.

(d) I understand and agree that this project and the contribution
   are public and that a record of the contribution (including all
   personal information I submit with it, including my sign-off) is
   maintained indefinitely and may be redistributed consistent with
   this project or the open source license(s) involved.

Signed-off-by: [Kevin Beswick (kevinbeswick00@gmail.com)]
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1375 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoremoving overly agressive locale normalization
miker [Sun, 27 Jul 2008 16:46:21 +0000 (16:46 +0000)]
removing overly agressive locale normalization

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1374 9efc2488-bf62-4759-914b-345cdb29e865

16 years ago* remove the objson API compat layer.
erickson [Sun, 27 Jul 2008 13:06:45 +0000 (13:06 +0000)]
* remove the objson API compat layer.

* Set the default JSON gateway protocol to non-legacy json

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1373 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoremoving default config path so we don't have to mangle the C files at install time
erickson [Fri, 25 Jul 2008 15:30:11 +0000 (15:30 +0000)]
removing default config path so we don't have to mangle the C files at install time

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1372 9efc2488-bf62-4759-914b-345cdb29e865

16 years agono longer in use
erickson [Fri, 25 Jul 2008 02:21:54 +0000 (02:21 +0000)]
no longer in use

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1371 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoremoved example log line comment
erickson [Fri, 25 Jul 2008 02:16:42 +0000 (02:16 +0000)]
removed example log line comment

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1370 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoreturning server error on disconnected jabber socket
erickson [Thu, 24 Jul 2008 17:53:37 +0000 (17:53 +0000)]
returning server error on disconnected jabber socket

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1369 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoCheap hack to enable kbeswick's cheap hack to get opensrf-c
dbs [Thu, 17 Jul 2008 19:43:42 +0000 (19:43 +0000)]
Cheap hack to enable kbeswick's cheap hack to get opensrf-c
automake probably gives us a better way to do this, but hyphens are pesky

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1368 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoMerge the following patches from Kevin Beswick:
dbs [Thu, 17 Jul 2008 18:15:09 +0000 (18:15 +0000)]
Merge the following patches from Kevin Beswick:
  * fixed location to copy apachetools.h from ...
  * another typo...
  * fixed directory error in copying of header file.
  * move one more copy instruction for a header file.
  * create the perldir and jsdir
  * changed the place where headers are copied... fixed an error which caused them to be copied wrong.
  * fixed a capitalization typo issue in src/Makefile.am
  * updated opensrf.xml.example to use C math and dbmath implementation rather than Perl
  * fixed make distcheck problems -- builddir needed to be changed to srcdir
  * fixed directory replacement in .c file problem stopped the command added in the previous revision from running multiple times, fixed the location of the file to execute the command on.
  * changed where the directory replacement happens for osrf_json_gateway.c (it was after it was compiled rather than before)
  * corrected another error with installing header files ( can't install directories recursively through the 'prefix_PRIMARY = files' apparently)
  * went back to old way of copying perlmods and javascript. it will still be included in dist due to EXTRA_DIST in root makefile
  * fix install of src/javascript and src/perlmods
  * nobase_dist_lib_DATA defined twice... oops!
  * fixed problem with order of execution of targets (install-data-local was being executed before files were copied. resulted in an error)
  * fixed make dist, and changed ways that files are copied to their installed locations
  * fixed path substitution for the rest of the files with hardcoded paths to ensure correct default functionality of opensrf

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1367 9efc2488-bf62-4759-914b-345cdb29e865

16 years agocommented out the testing debug line
erickson [Wed, 9 Jul 2008 19:35:26 +0000 (19:35 +0000)]
commented out the testing debug line

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1366 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadding the http translator
erickson [Wed, 9 Jul 2008 19:18:51 +0000 (19:18 +0000)]
adding the http translator

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1365 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded the string mangling to collapse a set of responses into 1 for non-multipart...
erickson [Wed, 9 Jul 2008 18:33:10 +0000 (18:33 +0000)]
added the string mangling to collapse a set of responses into 1 for non-multipart requests

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1364 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded a buffer_chomp function to drop the last character from the buffer
erickson [Wed, 9 Jul 2008 18:32:37 +0000 (18:32 +0000)]
added a buffer_chomp function to drop the last character from the buffer

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1363 9efc2488-bf62-4759-914b-345cdb29e865

16 years agousing a static buffer to store the multipart content type string
erickson [Wed, 9 Jul 2008 16:06:01 +0000 (16:06 +0000)]
using a static buffer to store the multipart content type string

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1362 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodon't run the cleanup/shutdown code more than once per process
erickson [Tue, 8 Jul 2008 22:16:02 +0000 (22:16 +0000)]
don't run the cleanup/shutdown code more than once per process

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1361 9efc2488-bf62-4759-914b-345cdb29e865

16 years agofixed broken call to sizeof(). replaced ap_rvputs with more appropriate ap_rprintf...
erickson [Tue, 8 Jul 2008 16:16:20 +0000 (16:16 +0000)]
fixed broken call to sizeof(). replaced ap_rvputs with more appropriate ap_rprintf.  removed some unnecessary string freeing calls

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1360 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoinitial C version of the opensrf http translator. not complete. I have not plugged...
erickson [Mon, 7 Jul 2008 15:40:05 +0000 (15:40 +0000)]
initial C version of the opensrf http translator.  not complete.  I have not plugged it into the build env.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1359 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoopensrf.settings is stateless; having the wrong setting here causes great agony
dbs [Tue, 1 Jul 2008 13:33:26 +0000 (13:33 +0000)]
opensrf.settings is stateless; having the wrong setting here causes great agony

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1358 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoEnable libtool to work its magic and install versioned libraries
dbs [Tue, 1 Jul 2008 13:08:37 +0000 (13:08 +0000)]
Enable libtool to work its magic and install versioned libraries

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1357 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoSet default for TMP to /tmp (autotools creates its own subdirectory)
dbs [Tue, 1 Jul 2008 13:06:37 +0000 (13:06 +0000)]
Set default for TMP to /tmp (autotools creates its own subdirectory)
  * Ideally this would check for a user's TMPDIR env variable and use that instead

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1356 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoLinking:
dbs [Tue, 1 Jul 2008 03:33:23 +0000 (03:33 +0000)]
Linking:
  * automake automatically figures out many linking directories;
    remove explicit linking options for . / .libs
TMP files:
  * automake automatically creates a unique directory within TMPDIR;
    remove intermediate /opensrf/ directory (which causes problems for make clean)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1355 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoA little more autotools love:
dbs [Tue, 1 Jul 2008 02:03:46 +0000 (02:03 +0000)]
A little more autotools love:
  * Avoid the use of tmp dir by using noinst_ prefix for timejson
  * Remove DEF_LDLIBS usage (it enabled compiling, but did not link to the
    libraries) and replace with specific LDADD and LIBADD options

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1354 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoLink osrf_json_gateway to objson and opensrf libraries the autotools way
dbs [Tue, 1 Jul 2008 01:15:09 +0000 (01:15 +0000)]
Link osrf_json_gateway to objson and opensrf libraries the autotools way

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1353 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoautogen.sh needs to be executable
dbs [Mon, 30 Jun 2008 20:11:05 +0000 (20:11 +0000)]
autogen.sh needs to be executable

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1352 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoSwitch to 'localhost' and standard port for memcached
dbs [Mon, 30 Jun 2008 19:53:13 +0000 (19:53 +0000)]
Switch to 'localhost' and standard port for memcached
Fix trivial typo in PID name

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1351 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoChange values of default directories in config file in installed files rather than...
dbs [Mon, 30 Jun 2008 19:48:16 +0000 (19:48 +0000)]
Change values of default directories in config file in installed files rather than in tree

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1350 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Kevin Beswick (kbeswick00@gmail.com) to address various problems with...
dbs [Mon, 30 Jun 2008 19:46:08 +0000 (19:46 +0000)]
Patch from Kevin Beswick (kbeswick00@gmail.com) to address various problems with the autotools:
  * src/libopensrf/Makefile.am:
    * Fix typo for -I (includes) vs. -L (linking libraries) compile option
  * src/Makefile.am:
    * Propagate NDEBUG compile flag to all other makefiles
    * Create target directories
    * Set directories in example config files to match configured options
  * configure.ac:
    * Set default prefix to /opensrf/ instead of /openils/
  * bin/osrf_config.in:
    * Add --localstatedir option for osrf_config
    * Correct output value for --apxs
  * bin/osrf_ctl.sh
    * Set default PID dir to localstatedir rather than sysconfdir
  * Makefile.am:
    * Propagate NDEBUG compile flag to all other makefiles
    * Remove explicit rpath option, automake will figure that out for us (supposedly)
  * examples/opensrf_core.xml.example, examples/opensrf.xml.example, examples/srfsh.xml.example:
    * Set directories in example config files to match configured options

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1349 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Kevin Beswick to use autotools for OpenSRF configuration and build
dbs [Wed, 25 Jun 2008 18:50:00 +0000 (18:50 +0000)]
Patch from Kevin Beswick to use autotools for OpenSRF configuration and build

Included is a patch for a working implementation of the GNU Autotools
to OpenSRF. Some of the perks of this system are: the user is given
the ability to install OpenSRF to non-standard locations,
dependency/library checking, gives a user the ability to only install
certain components, more portable to other operating systems, etc.

To test, simply run:
autogen.sh
configure
make
make install

Options for configure can be found using:
./configure --help

Also, the patch contains a new file, osrf_config, which is generated
by running the configure script. Running this file will print all
build options a user has chosen when compiling/installing Opensrf.
Command line arguments can be added to return each single build option
as well. This is useful to developers in that they are able to locate
a certain installation directory on a non-standard installation of
OpenSRF. To see the available command line options, run: osrf_config --help

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1348 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded some cleanup code on child exit to ensure friendly shutdown of sockets
erickson [Tue, 24 Jun 2008 20:47:49 +0000 (20:47 +0000)]
added some cleanup code on child exit to ensure friendly shutdown of sockets

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1347 9efc2488-bf62-4759-914b-345cdb29e865

16 years agochanging default router log level to "warn" since you only use the router log for...
erickson [Thu, 19 Jun 2008 21:04:17 +0000 (21:04 +0000)]
changing default router log level to "warn" since you only use the router log for serious debugging.. as is, just filling up space

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1346 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded activity logging ability. activity logging any REQUEST messages that come...
erickson [Fri, 13 Jun 2008 16:24:29 +0000 (16:24 +0000)]
added activity logging ability.  activity logging any REQUEST messages that come through the translator

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1345 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadd a copy of the DCO for convenience
miker [Sun, 25 May 2008 12:58:30 +0000 (12:58 +0000)]
add a copy of the DCO for convenience

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1343 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodefaulting to config.opensrf for config context. added some initial settings server...
erickson [Fri, 23 May 2008 15:43:48 +0000 (15:43 +0000)]
defaulting to config.opensrf for config context.  added some initial settings server loading

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1342 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded some hopefully useful comments
erickson [Fri, 23 May 2008 15:18:05 +0000 (15:18 +0000)]
added some hopefully useful comments

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1341 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodefault to help when invalid option is provided
erickson [Fri, 23 May 2008 14:59:52 +0000 (14:59 +0000)]
default to help when invalid option is provided

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1340 9efc2488-bf62-4759-914b-345cdb29e865

16 years agomoved stop/start actions out to functions
erickson [Fri, 23 May 2008 14:49:25 +0000 (14:49 +0000)]
moved stop/start actions out to functions

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1339 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoremoving chatty debug log line
erickson [Fri, 23 May 2008 02:04:10 +0000 (02:04 +0000)]
removing chatty debug log line

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1338 9efc2488-bf62-4759-914b-345cdb29e865

16 years agothe latest cleanup broke GET requests by essentially ignoring them. fixed
erickson [Thu, 22 May 2008 19:58:56 +0000 (19:58 +0000)]
the latest cleanup broke GET requests by essentially ignoring them.  fixed

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1337 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoupdated some docs
erickson [Tue, 20 May 2008 19:47:49 +0000 (19:47 +0000)]
updated some docs

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1336 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded millisecond to the time output
erickson [Tue, 20 May 2008 19:46:16 +0000 (19:46 +0000)]
added millisecond to the time output

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1335 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded echo system method
erickson [Tue, 20 May 2008 19:45:44 +0000 (19:45 +0000)]
added echo system method

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1334 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodefaulting to string for info message
erickson [Tue, 20 May 2008 19:45:10 +0000 (19:45 +0000)]
defaulting to string for info message

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1333 9efc2488-bf62-4759-914b-345cdb29e865

16 years agonow disconnecting and clearing network handles where appropriate, but not always...
erickson [Tue, 20 May 2008 19:44:26 +0000 (19:44 +0000)]
now disconnecting and clearing network handles where appropriate, but not always both

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1332 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded new disconnected exception. added some error condition logging. no longer...
erickson [Tue, 20 May 2008 19:43:13 +0000 (19:43 +0000)]
added new disconnected exception.  added some error condition logging.  no longer disconnecting on network handle clear, because parent process may be using the handle.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1331 9efc2488-bf62-4759-914b-345cdb29e865

16 years agomild doc update, some changes from testing
erickson [Tue, 20 May 2008 19:41:55 +0000 (19:41 +0000)]
mild doc update, some changes from testing

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1330 9efc2488-bf62-4759-914b-345cdb29e865

16 years agotesting svn email..
erickson [Mon, 19 May 2008 12:36:45 +0000 (12:36 +0000)]
testing svn email..

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1329 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoNo longer globally setting the network recv_callback handler to None
erickson [Sun, 18 May 2008 23:42:17 +0000 (23:42 +0000)]
No longer globally setting the network recv_callback handler to None
because it clobbers the callbacks of other python clients running
in the same within the same process.  Now we capture the existing
callback and replace it after the request has been processed

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1328 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded date/time info when logging to a local file
erickson [Sun, 18 May 2008 22:17:59 +0000 (22:17 +0000)]
added date/time info when logging to a local file

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1327 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Sun, 18 May 2008 13:27:36 +0000 (13:27 +0000)]
Patch from Scott McKellar:

These patches eliminate two deprecated identifiers in favor of their
camel case equivalents:

osrf_app_client_session_init
osrf_app_session

All other instances of these identifiers have already been eliminated
from the code base.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1326 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Fri, 16 May 2008 13:17:17 +0000 (13:17 +0000)]
Patch from Scott McKellar:

This patch replaces some deprecated identifiers with their camelCase
equivalents.

osrf_app_session  ==> osrfAppSession
osrf_message      ==> osrfMessage
osrf_message_free ==> osrfMessageFree

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1325 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoexiting early when hash iterator returns null
erickson [Fri, 16 May 2008 12:59:23 +0000 (12:59 +0000)]
exiting early when hash iterator returns null

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1324 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Fri, 16 May 2008 12:45:11 +0000 (12:45 +0000)]
Patch from Scott McKellar:

These patches provide a new and more efficient implementation of
osrfHash, using a hash table for random lookups and a doubly linked
list for iterations.

It is more efficient for two main reasons.  First, for iterations
it doesn't maintain a separate copy of the keys, that then have to go
through the hashing algorithm.  Second, when updating an existing
item, it updates it in place rather than deleting it and creating
a new one.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1323 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Thu, 15 May 2008 20:55:02 +0000 (20:55 +0000)]
Patch from Scott McKellar:

This patch tweaks a few things.

1. In json_parse_json_string() we declare a character array buff[],
fill it with nuls, and never refer to it again.  I eliminated it.

2. A few lines below that, we use memset() to clear a three-character
buffer.  I replaced the memset() with an initializer clause.

3. in json_handle_error() we were relying on the osrf_clearbuf macro
to add a terminal nul.  However the plan is for this macro to become
a no-op someday.  I added the nul manually.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1322 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Thu, 15 May 2008 20:46:15 +0000 (20:46 +0000)]
Patch from Scott McKellar:

This patch tweaks the jid_get_* functions, which copy various
fragments of an jabber id into a buffer supplied by the caller.

If these functions don't find the fragments they're looking for, they
now return an empty string in the buffer.  Earlier they would leave
the buffer unchanged, leaving it to the calling code to initialize
the buffer.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1321 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
erickson [Thu, 15 May 2008 13:36:32 +0000 (13:36 +0000)]
Patch from Scott McKellar:

This patch is mostly a performance tweak, but also tidies up a few
things.

In apacheParseParms() we load POST data and GET data into the same
buffer, with the GET data coming first.  However the old code loads
the POST data first.  If there is also some GET data, we juggle some
buffers in order to get the GET and POST data into the right order.

The new code loads the GET data first, and then appends the POST
data onto it.  Besides being simpler, the new code avoids a layer
of copying, as well as and two round trips through malloc() and
free().

Other details:

1. I rearranged the declarations of the variables sarray, buffer,
key, and val, so as to narrow their scope.  In the case of sarray
this rearrangement avoids a potential memory leak in the case of an
error exit (where the POST data is excessive).

2. I append a terminal null to the input buffer instead of using
memset() to fill the entire buffer.

3. Since the bread variable is a long rather than an int, I corrected
the format specifier accordingly in one of the debug messages.

4. I eliminated some redundant casts in a couple of calls to
ap_unescape(), since the variables so cast are already the right
types.

5. The final debug message was being issued only when sarray was
not NULL.  However at this spot sarray cannot be NULL anyway, so I
eliminated the test of sarray.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1320 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoset the logging transaction ID earlier in the process
erickson [Wed, 7 May 2008 17:26:26 +0000 (17:26 +0000)]
set the logging transaction ID earlier in the process

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1319 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodisable use of cjson for now because oddities have been seen in mod_python (potential...
erickson [Wed, 7 May 2008 17:26:08 +0000 (17:26 +0000)]
disable use of cjson for now because oddities have been seen in mod_python (potentially beyond).

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1318 9efc2488-bf62-4759-914b-345cdb29e865

16 years agochecking socket connect state before sending final packet and calling shutdown (to...
erickson [Wed, 7 May 2008 14:40:50 +0000 (14:40 +0000)]
checking socket connect state before sending final packet and calling shutdown (to prevent warnings)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1317 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoremoving redundant file. covered by DojoSRF.js
miker [Wed, 23 Apr 2008 00:17:25 +0000 (00:17 +0000)]
removing redundant file. covered by DojoSRF.js

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1316 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoimporting json and md5 code
erickson [Mon, 21 Apr 2008 17:13:59 +0000 (17:13 +0000)]
importing json and md5 code

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1315 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoAt long last, removing old objson sources. This will not affect the legacy
erickson [Mon, 21 Apr 2008 01:03:09 +0000 (01:03 +0000)]
At long last, removing old objson sources.  This will not affect the legacy
libobjson.so support, since that's all handled by libopensrf/osrf_legacy_json.c

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1314 9efc2488-bf62-4759-914b-345cdb29e865

16 years agobetter locale configuriation support
miker [Thu, 17 Apr 2008 18:20:50 +0000 (18:20 +0000)]
better locale configuriation support

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1313 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoWhat was OpenSRF.js, is now DojoSRF.js - and there was much rejoicing from the Mac...
dbs [Wed, 16 Apr 2008 01:37:05 +0000 (01:37 +0000)]
What was OpenSRF.js, is now DojoSRF.js - and there was much rejoicing from the Mac-heads

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1312 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPrepare to rename this DojoSRF.js (avoiding code change and name change out of habit)
dbs [Wed, 16 Apr 2008 01:36:24 +0000 (01:36 +0000)]
Prepare to rename this DojoSRF.js (avoiding code change and name change out of habit)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1311 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Sat, 12 Apr 2008 02:50:12 +0000 (02:50 +0000)]
Patch from Scott McKellar:

These patches add two new functions to the osrfHash routines, and
apply them in several modules.  THe purpose is to eliminate the
access of an osrfHash's internals by the client code, so that the
internals can be replaced more readily.

Those internals haven't changed yet, but they will.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1310 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPython is quickly becoming a requirement, not an option.
dbs [Fri, 11 Apr 2008 16:28:20 +0000 (16:28 +0000)]
Python is quickly becoming a requirement, not an option.
Let's set the default accordingly.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1309 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Fri, 11 Apr 2008 15:45:10 +0000 (15:45 +0000)]
Patch from Scott McKellar:

These patches use the new function osrfHashIteratorKey() to fetch
the current key from an osrfHashIterator, instead of accessing it
directly.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1308 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Fri, 11 Apr 2008 15:13:57 +0000 (15:13 +0000)]
Patch from Scott McKellar:

This patch adds a new function so that code outside of osrf_hash.c
doesn't have to directly access the "current" member of an
osrfHashIterator.  This bit of encapsulation will make it easier
to refactor the osrfHash code.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1307 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoApplying diff from superceding patch provided by Scott McKellar
miker [Fri, 11 Apr 2008 14:58:49 +0000 (14:58 +0000)]
Applying diff from superceding patch provided by Scott McKellar

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1306 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Fri, 11 Apr 2008 14:42:31 +0000 (14:42 +0000)]
Patch from Scott McKellar:

This patch boosts the performance of an osrfHashIterator a bit, by
reusing the "current" buffer whenever possible instead of freeing and
reallocating it on every iteration.

I wrote a benchmark that repeatedly traverses a 27-item hash table.
The new version is about 10% faster.  This improvement is not as
dramatic as I had hoped for, but it's easy to get, and it won't hurt.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1305 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Fri, 11 Apr 2008 14:13:49 +0000 (14:13 +0000)]
Patch from Scott McKellar:

These three patches are independent of each other, but they all do the
same thing.

In each case, we had been getting the local host name by reading the
environmental variable $HOSTNAME.  This approach normally works, but
it is vulnerable to abuse or error by a user who modifies the value
of that variable, or even unsets it altogether.

With these patches we will instead call gethostname(), which is not
affected by changes in the environment.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1304 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar (with commentary on future plans):
miker [Fri, 11 Apr 2008 14:03:27 +0000 (14:03 +0000)]
Patch from Scott McKellar (with commentary on future plans):

This patch applies the const qualifier to several variables, each of
them a copy of the "current" member of an osrfHashIterator.

**********************

While this patch is pretty inconsequential on its own, it is part of a
larger plan to streamline the use of osrfHashIterators.

The "current" member points to a dynamically allocated string.  Every
time we advance the iterator, we free the string and allocate another
one to replace it.

My plan is to reuse the buffer whenever possible so as to reduce the
churning of memory through malloc() and free().  This approach will
require an additional member to keep track of the current capacity of
the buffer, rather like the "size" member of a growing_buffer.

It will also require that all code using osrfHashIterators treat the
"current" member as read-only.  If somebody frees and replaces the
buffer outside of the proper interface, then buffer management will
get very confused.

I doubt that any code does anything so perfidious, but I'm going
through the files to make sure.  Adding the const qualifier is an
easy way not only to verify that nothing bad is happening, but also
to make it less likely that something bad will happen in the future.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1303 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Fri, 11 Apr 2008 12:13:59 +0000 (12:13 +0000)]
Patch from Scott McKellar:

This patch elinminates the use of the osrf_clearbuf macro in several
spots.  In each case, the buffer needs to be initialized to an empty
string, because the call to jid_get_* doesn't necessarily populate it
with anything else.  In debugging mode, osrf_clearbuf() will fill the
field with exclamation points, which is not helpful in this context.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1302 9efc2488-bf62-4759-914b-345cdb29e865

16 years agodojo wrapper to opensrf JS libs
miker [Wed, 9 Apr 2008 17:41:39 +0000 (17:41 +0000)]
dojo wrapper to opensrf JS libs

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1301 9efc2488-bf62-4759-914b-345cdb29e865

16 years agochanging name to match name style; added comment to indicate this code is not usable yet
erickson [Tue, 8 Apr 2008 13:38:43 +0000 (13:38 +0000)]
changing name to match name style; added comment to indicate this code is not usable yet

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1300 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoThe functionality in these files (that isn't deprecated) has been replaced by opensrf.js
erickson [Tue, 8 Apr 2008 13:35:23 +0000 (13:35 +0000)]
The functionality in these files (that isn't deprecated) has been replaced by opensrf.js
Leaving opensrf_jabber_transport.js in place for reference...

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1299 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded support for log transaction IDs
erickson [Mon, 7 Apr 2008 21:11:41 +0000 (21:11 +0000)]
added support for log transaction IDs

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1298 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoraise an exception when the xmpp recipient is not found. http_translator turns this...
erickson [Mon, 7 Apr 2008 19:59:07 +0000 (19:59 +0000)]
raise an exception when the xmpp recipient is not found.  http_translator turns this into a 404; srfsh prints a user error

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1297 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoThis patch replaces the regex-based XML stream parsing mechanism with an XML::Parser...
erickson [Mon, 31 Mar 2008 20:47:41 +0000 (20:47 +0000)]
This patch replaces the regex-based XML stream parsing mechanism with an XML::Parser (expat) based parser.
The API and parsing behavior should behave identically
This requires a new OpenSRF Perl dependency -> FreezeThaw

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1296 9efc2488-bf62-4759-914b-345cdb29e865

16 years agologging http result status
erickson [Mon, 31 Mar 2008 20:35:20 +0000 (20:35 +0000)]
logging http result status

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1295 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoAnother potentially annoying typo
dbs [Mon, 31 Mar 2008 00:24:34 +0000 (00:24 +0000)]
Another potentially annoying typo

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1294 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoThis could have been a puzzling typo
dbs [Mon, 31 Mar 2008 00:21:42 +0000 (00:21 +0000)]
This could have been a puzzling typo

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1293 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoimplemented the majority of server-side python. still need to add settings server...
erickson [Sat, 29 Mar 2008 23:55:34 +0000 (23:55 +0000)]
implemented the majority of server-side python.  still need to add settings server parsing and other stuff i have probably overlooked

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1292 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded ontransporthander support for multipart requests
erickson [Mon, 24 Mar 2008 17:55:08 +0000 (17:55 +0000)]
added ontransporthander support for multipart requests

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1291 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoimplemented onerror, onmethoderror and ontransporterror. moved the callbacks into...
erickson [Mon, 24 Mar 2008 17:34:44 +0000 (17:34 +0000)]
implemented onerror, onmethoderror and ontransporterror.  moved the callbacks into the main stack for clearer processing

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1290 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded some debug logging
erickson [Wed, 19 Mar 2008 17:13:48 +0000 (17:13 +0000)]
added some debug logging

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1289 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoadded session/request locale support
erickson [Wed, 19 Mar 2008 15:25:38 +0000 (15:25 +0000)]
added session/request locale support

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1288 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoupdated to match new opensrf_core.xml domain layout
erickson [Wed, 19 Mar 2008 14:10:08 +0000 (14:10 +0000)]
updated to match new opensrf_core.xml domain layout

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1287 9efc2488-bf62-4759-914b-345cdb29e865

16 years agofor easier debugging, logging method and params on NULL return
erickson [Tue, 18 Mar 2008 17:52:43 +0000 (17:52 +0000)]
for easier debugging, logging method and params on NULL return

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1286 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPlug for a a memory leak from Scott McKellar
miker [Sun, 16 Mar 2008 18:18:27 +0000 (18:18 +0000)]
Plug for a a memory leak from Scott McKellar

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1285 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoupdated srfsh math_bench return value since json no longer returns the extra 0s
erickson [Wed, 12 Mar 2008 21:12:34 +0000 (21:12 +0000)]
updated srfsh math_bench return value since json no longer returns the extra 0s

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1284 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar which removes harmful use of osrf_clearbuf()
miker [Wed, 12 Mar 2008 01:09:03 +0000 (01:09 +0000)]
Patch from Scott McKellar which removes harmful use of osrf_clearbuf()

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1283 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoforcing router exit without friendly cleanup for now until a socket bug is squashed
erickson [Tue, 11 Mar 2008 22:03:28 +0000 (22:03 +0000)]
forcing router exit without friendly cleanup for now until a socket bug is squashed

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1282 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoas it turns out, this was actually a problem with the makefile, not the utils.h macro...
erickson [Tue, 11 Mar 2008 16:49:41 +0000 (16:49 +0000)]
as it turns out, this was actually a problem with the makefile, not the utils.h macro def.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1281 9efc2488-bf62-4759-914b-345cdb29e865

16 years agorolling back change in changeset 1277 for default osrf_clearbuf handling. not sure...
erickson [Tue, 11 Mar 2008 14:40:55 +0000 (14:40 +0000)]
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

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1280 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar providing speed improvement by using fread() instead of...
miker [Mon, 10 Mar 2008 13:37:44 +0000 (13:37 +0000)]
Patch from Scott McKellar providing speed improvement by using fread() instead of fgets()

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1279 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Mon, 10 Mar 2008 13:32:28 +0000 (13:32 +0000)]
Patch from Scott McKellar:

1. Pedantic: I changed child_dead from an int to a sig_atomic_t, since
we set it from a signal handler.

2. In check_children() and prefork_child_wait(), we prepare an input
buffer for a read() by calling the osrf_clearbuf macro.  Depending on
the existence of NDEBUG, this macro may or may not do the right thing.
If it does the wrong thing, it will pad the input data with
exclamation points, up to the maximimum length.

I added code to explicitly add a terminal nul, thus rendering
the osrf_clearbuf macro both harmless and superfluous.

This issue is the same one that I mentioned yesterday in connection
with socket_bundle.c, so I shall not belabor it here.

3. In addition: in check_children() I arranged to issue the debug
message only if the read is successful.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1278 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoParially, a patch from Scott McKellar:
miker [Mon, 10 Mar 2008 13:10:59 +0000 (13:10 +0000)]
Parially, a patch from Scott McKellar:

1. In socket_open_unix_server() and socket_open_unix_client(), I added
checks to make sure that the path parameter doesn't point to aomething
too big to fit into the receiving buffer of the struct sockaddr_un.

2. In _socket_handle_client_data() I add a terminal nul to the data
received by recv().

Also, reversing the semantics and default of NDEBUG per.  To turn on debugging
code, set DEBUG to 1 durring the build:

 $ DEBUG=1 make clean all

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1277 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoPatch from Scott McKellar:
miker [Mon, 10 Mar 2008 12:04:57 +0000 (12:04 +0000)]
Patch from Scott McKellar:

This patch replaces several calls to fprintf() or printf() with calls
to fputs(), where we don't use conversion specifications.

Since fputs() doesn't have to parse the output text for conversions,
it should be marginally more efficient than fprintf() or printf().

More importantly: in one case the output text comes in part from an
input message, and may conceivably contain conversion specifications,
whether inadvertently or maliciously.  In that case, fprintf() would
look for non-existent parameters to format into the output, resulting
in undefined behavior.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1276 9efc2488-bf62-4759-914b-345cdb29e865

16 years agoConst correctness patch from Scott McKellar
miker [Mon, 10 Mar 2008 05:51:09 +0000 (05:51 +0000)]
Const correctness patch from Scott McKellar

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1275 9efc2488-bf62-4759-914b-345cdb29e865