OpenSRF.git
15 years ago1. In socket_connected(): if the select() fails because it is interrupted
scottmk [Sat, 17 Oct 2009 17:15:54 +0000 (17:15 +0000)]
1. In socket_connected(): if the select() fails because it is interrupted
by a signal, it doesn't mean that the socket is invalid, so try again.

2. In _socket_handle_client_data(): remove two unnecessary calls to the
osrf_clearbuf macro.

3. Add more doxygen-style comments to document the functions; edit a few
existing comments in various ways.

M    src/libopensrf/socket_bundle.c

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

15 years ago1. In socket_open_tcp_client(): use getaddrinfo() instead of gethostbyname().
scottmk [Tue, 13 Oct 2009 23:07:01 +0000 (23:07 +0000)]
1. In socket_open_tcp_client(): use getaddrinfo() instead of gethostbyname().
The latter is obsolete, according to the man page and other sources.

2. Add doxygen-style comments to document several more functions.

M    src/libopensrf/socket_bundle.c

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

15 years ago1. Moved the declaration of socket_node from the header into the
scottmk [Tue, 13 Oct 2009 01:51:34 +0000 (01:51 +0000)]
1. Moved the declaration of socket_node from the header into the
implementation file.  No other source files need to be exposed
to it.

2. Contrived to avoid leaking sockets in case of error exits;
sometimes by changing the sequence of operations, sometimes by
inserting a close().

3. In socket_open_tcp_client() and socket_open_udp_client():
removed the call to bind().  Ordinarily a client socket doesn't
need to know or care what its local address is.

4. In socket_open_udp_client(): eliminated the second and third
parameters, which define the remote address.  That information
wasn't going anywhare anyway.  For a UDP socket, you have no
use for the remote address until you actually try to send or
receive.

5. Added doxygen-style comments to document some of the functions.

M    include/opensrf/socket_bundle.h
M    src/libopensrf/socket_bundle.c

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

15 years ago1. Replace the old JSON parser (jsonParseString()) with a newer, faster one
scottmk [Mon, 12 Oct 2009 18:09:18 +0000 (18:09 +0000)]
1. Replace the old JSON parser (jsonParseString()) with a newer, faster one
(jsonParse()).

2. Because the new JSON parser is strict about syntax errors that the old
parser would ignore, it was necessary to parse the srfsh command line more
intelligently.  Otherwise it would be impossible to build a JSON string
internally with reliably correct syntax.

Hence: instead of using strtok() to break up the command line into tokens, we
now use a rudimentary recursive descent parser to isolate JSON strings as
distinct arguments, even if they contain embedded white space.

As a fairly benign side effect of these changes, the treatment of commas
in the command line is changing a bit.  All parts of the command line
(not just JSON strings) may now be optionally separated by commas.

3. We now use an osrfStringArray to hold the results of parsing, rather
than a bare array of pointers.

4. The function formerly known as "parse_request" is now named "process_request",
because it does a lot more than just parsing.

M    src/srfsh/srfsh.c

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

15 years agoClean up and clarify configure help and messages a wee bit
dbs [Mon, 12 Oct 2009 00:38:47 +0000 (00:38 +0000)]
Clean up and clarify configure help and messages a wee bit

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

15 years agoChop chopchop out of the default make / install target
dbs [Mon, 12 Oct 2009 00:25:15 +0000 (00:25 +0000)]
Chop chopchop out of the default make / install target

chopchop is a basic XMPP server that is not used in production, so
let's not bother with building and installing it in the default configuration.

We introduce a new configure option, --enable-chopchop, for those who do
want to build and install chopchop.

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

15 years agoAdd doxygen-style comments to document macros, and an overview
scottmk [Sun, 11 Oct 2009 18:39:16 +0000 (18:39 +0000)]
Add doxygen-style comments to document macros, and an overview
at the top.

M    include/opensrf/log.h

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

15 years agoAdd doxygen-style comments to document all functions and all variables
scottmk [Sun, 11 Oct 2009 17:31:03 +0000 (17:31 +0000)]
Add doxygen-style comments to document all functions and all variables
at file scope.

In log.h: remove some existing comments so that they won't override
the more complete comments in log.c.

M    include/opensrf/log.h
M    src/libopensrf/log.c

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

15 years agoAdd a '-l' option to treat the hostname as 'localhost', to match osrf_ctl.sh.
dbs [Sun, 11 Oct 2009 03:43:19 +0000 (03:43 +0000)]
Add a '-l' option to treat the hostname as 'localhost', to match osrf_ctl.sh.

This will be useful in testing and tutorial scenarios.

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

15 years ago1. osrfLogGetXid now returns a pointer to const. We don't want the
scottmk [Sat, 10 Oct 2009 19:19:27 +0000 (19:19 +0000)]
1. osrfLogGetXid now returns a pointer to const.  We don't want the
calling code to be able to overwrite the cached copy of the
transaction id.

2. Add doxygen-style comments to document some of the functions.

M    include/opensrf/log.h
M    src/libopensrf/log.c

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

15 years agoPerformance tweak to the logging routines.
scottmk [Sat, 10 Oct 2009 02:28:49 +0000 (02:28 +0000)]
Performance tweak to the logging routines.

_osrfLogToFile() is no longer a variadic function.  We always sent it the
same format string, and there was no point in sending a variable-length
parameter list that never actually varied in length.

Now we send it a fixed-length parameter list -- and thereby avoid two
calls to vsnprintf() that had been hidden in the VA_LIST_TO_STRING macro.

Also: added doxygen-style comments to several of the functions.

M    src/libopensrf/log.c

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

15 years agoFix a bug in md5sum() (which only affected code compiled
scottmk [Thu, 8 Oct 2009 18:26:37 +0000 (18:26 +0000)]
Fix a bug in md5sum() (which only affected code compiled
with debugging turned on).

md5sum() builds an md5 message digest in a buffer.  Originally
it used memset() to initialize the buffer with binary zeroes.
At some point the call to memset() was replaced with the
osrf_clearbuf() macro.  When compiled in debugging mode,
osrf_clearbuf() fills the buffer with exclamation points;
otherwise it reverts to the original memset().

In this case the use of osrf_clearbuf is inappropriate, because
we use strcat() to build the message digest, two bytes at a
time.  We don't need to use memset(), but the first byte needs
to be initialized to a nul byte so that strcat() will work as
intended.  Hence:

1. Remove the call to osrf_clearbuf().

2. Put a nul byte at the beginning of the buffer.

Also, I made the buffer smaller.  There's no reason for it
to be 256 bytes long.

M    src/libopensrf/utils.c

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

15 years agoSmall performance tweak.
scottmk [Mon, 5 Oct 2009 18:53:02 +0000 (18:53 +0000)]
Small performance tweak.

Replaced two occurrences of jsonParseString( "[]" ) with the
equivalant (and faster) call to jsonNewObject( JSON_ARRAY ).

M    src/libopensrf/osrf_application.c
M    src/srfsh/srfsh.c

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

15 years agoPerformance tweak to message handling.
scottmk [Mon, 5 Oct 2009 16:29:57 +0000 (16:29 +0000)]
Performance tweak to message handling.

In five locations in osrf_message.c, we were turning a jsonObject into
a JSON string, only to parse it again back into a jsonObject:

-- osrf_message_add_object_param()
-- osrfMessageToJSON() (two occurrences)
-- osrf_message_deserialize() (two occurrences)

That's silly.

This new version copies the original jsonObject directly, with no round
trip through a JSON string.  We use jsonObjectDecodeClass() to do the
copy, in order to make sure that all class hints are decoded into
classnames.

(Until recently, jsonObjectDecodeClass() would remove classnames that were
already present.  That's presumably the reason for the curious and
inefficient two-step procedure that we were using up till now.)

Also: In two locations (in osrf_message_add_object_param() and
osrf_message_add_param())  We used jsonParseString() to parse a
hard-coded "[]".  I replaced those calls with equivalent (and faster)
calls to jsonNewObjectType( JSON_ARRAY );

Also: in osrf_message_set_result_content() I eliminated a pointless test
for nullity of the json_string variable.  An earlier test already
guarantees that json_string is not NULL.

M    src/libopensrf/osrf_message.c

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

15 years agoCreated a new function osrfHashExtract(). It extracts an item with a
scottmk [Mon, 5 Oct 2009 14:48:24 +0000 (14:48 +0000)]
Created a new function osrfHashExtract().  It extracts an item with a
given key from an osrfHash, without destroying it, leaving the rest
of the osrfHash intact.

M    include/opensrf/osrf_hash.h
M    src/libopensrf/osrf_hash.c

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

15 years agoTweak jsonObjectDecodeClass so that it preserves classnames
scottmk [Mon, 5 Oct 2009 02:01:39 +0000 (02:01 +0000)]
Tweak jsonObjectDecodeClass so that it preserves classnames
that are already present.  The previous version would add
new classnames, if it found them encoded, but would drop
any old ones.

At present this change will have no effect.  Apart from a
couple of recursive calls, the only function that calls
jsonObjectDecodeClass() is jsonParseString().  In that case,
we pass a freshly parsed jsonObject that can't possibly
have any classnames yet.

However this change will enable us to use this function
elsewhere (specifically in osrf_message.c), resulting in
simpler and faster code.

M    src/libopensrf/osrf_json_tools.c

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

15 years agoEnhance the performance of the recursive descent JSON parser,
scottmk [Sun, 4 Oct 2009 15:13:36 +0000 (15:13 +0000)]
Enhance the performance of the recursive descent JSON parser,
mainly the jsonParse() function.

1. The old version would create a jsonObject and then copy it, with
possible modifications, via a call to jsonObjectDecodeClass(), in
order to decode class hints into the classname member.  Finally, it
would throw away the original jsonObject.

The copying operation is expensive, and the new version eliminates
it.  When decoding is desired (which is nearly always), execution
passes through a parallel version of the get_hash() function, which
does the decoding on the fly.

In my benchmarking, the new version reduces the parsing time by
around 35 - 45 percent.  It is now at least twice as fast as the
older jsonParseString() function, which uses a finite state
machine instead of recursive descent.

2. In get_number(): instead of allocating and destroying a
temporary growing_buffer, use the one available in the
Parser structure.

3. In osrf_json.h: Applied some pedantic corrections to the
doxygen comments for the old parser.

--------

In all cases tested, the new version produces results identical
to those of the old version.  The results are also identical to
those of the older parser, apart from error detection.

M    include/opensrf/osrf_json.h
M    src/libopensrf/osrf_parse_json.c

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

15 years agoChange the return type of jsonObjectGetString so that it
scottmk [Fri, 2 Oct 2009 19:02:25 +0000 (19:02 +0000)]
Change the return type of jsonObjectGetString so that it
is a pointer to const char, instead of to non-const char.

We don't want the calling code to be able to modify the innards
of the jsonObject, at least not by this back door.

I have already examined all uses of this function and modified
them where necessary to avoid compile problems.

M    include/opensrf/osrf_json.h
M    src/libopensrf/osrf_json_object.c

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

15 years ago1. Add doxygen-style comments to document functions in the
scottmk [Fri, 2 Oct 2009 16:34:12 +0000 (16:34 +0000)]
1. Add doxygen-style comments to document functions in the
recursive-descent JSON parser.  Tidy up or correct existing
comments here and there.

2. In report_error(): add the const qualifier to the
third parameter.

M    include/opensrf/osrf_json.h
M    src/libopensrf/osrf_parse_json.c

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

15 years agoWe routinely grab a chunk of configuration file that doesn't
scottmk [Tue, 29 Sep 2009 05:13:38 +0000 (05:13 +0000)]
We routinely grab a chunk of configuration file that doesn't
apply to the router process.  When we detect the spurious hit,
we throw it away and go on to the next one.

We had been detecting the spurious hit after forking, thus
wasting a fork.

Now we detect the spurious hit before forking, so that we
don't waste a fork.

M    src/router/osrf_router_main.c

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

15 years agoComment out an error message added in the previous patch.
scottmk [Tue, 29 Sep 2009 03:58:13 +0000 (03:58 +0000)]
Comment out an error message added in the previous patch.

The error message reported what looks like an error condition:
the config file doesn't provide transport info.  However what
appears to be happening is that the program tries to read
several different sections of the config file, of which some
are relevant and some aren't, due to some overloading of the
<routers> tag.  As a result it routinely spawns irrelevant
children, only to watch them die.

There's got to be a better way, but for now I'll just
suppress the error message.

M    src/router/osrf_router_main.c

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

15 years agoLet's give OpenSRF a spin on Ubuntu Karmic
dbs [Tue, 29 Sep 2009 01:47:23 +0000 (01:47 +0000)]
Let's give OpenSRF a spin on Ubuntu Karmic

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

15 years ago1. Eliminated some memory leaks by replacing calls to
scottmk [Mon, 28 Sep 2009 16:03:33 +0000 (16:03 +0000)]
1. Eliminated some memory leaks by replacing calls to
jsonObjectFindPath() (whose return values weren't getting
freed) with calls to jsonObjectGetKey().  This change will
also speed up the configuration a bit by avoiding the
cloning of objects.

2. Changed setupRouter so that it returns void instead of int.
We weren't looking at the return value anyway.  Since the
function normally enters an infinite loop, any return
represents some kind of error.

3. If the configuration file has no transport information,
issue a message before exiting (to standard error, since we
don't have a log file yet).

4. Add doxygen-style comments for documentation.

M    src/router/osrf_router_main.c

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

15 years ago1. Changed osrfLogFacilityToInt() so that it accepts
scottmk [Mon, 28 Sep 2009 12:26:21 +0000 (12:26 +0000)]
1. Changed osrfLogFacilityToInt() so that it accepts
a const pointer.

2. Added the const qualifier to various variables.

3. In osrf_router_main.c: Removed three inappropriate
calls to free().  Some memory leaks remain, where we
fetch some cloned jsonObjects from jsonObjectFindPath()
and don't free them.

M    include/opensrf/log.h
M    src/router/osrf_router_main.c
M    src/gateway/osrf_http_translator.c
M    src/libopensrf/osrf_prefork.c
M    src/libopensrf/log.c
M    src/libopensrf/osrf_application.c

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

15 years agoAnd place headers in /prefix/include/opensrf/ again, fixing regression to /prefix...
dbs [Mon, 28 Sep 2009 04:38:16 +0000 (04:38 +0000)]
And place headers in /prefix/include/opensrf/ again, fixing regression to /prefix/include/

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

15 years agoW h i t e s p a c e matters when defining automake targets
dbs [Mon, 28 Sep 2009 04:18:27 +0000 (04:18 +0000)]
W h i t e s p a c e matters when defining automake targets

Headers weren't being installed as the include_HEADER target wasn't being parsed.

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

15 years ago1. Add doxygen markup for documentation.
scottmk [Fri, 25 Sep 2009 14:35:18 +0000 (14:35 +0000)]
1. Add doxygen markup for documentation.

2. In jsonNewObjectType(): explicitly initialize a JSON_BOOL to false, instead
of implicitly relying on the expectation that a NULL pointer is represented
by all-bits-zero.

3. In jsonObjectExtractIndex(): set the parent pointer to NULL in the
extracted jsonObject.

M    include/opensrf/osrf_json.h
M    src/libopensrf/osrf_json_object.c

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

15 years agoLogServer was removed from distro but not from MANIFEST - fixed
sboyette [Fri, 18 Sep 2009 12:57:58 +0000 (12:57 +0000)]
LogServer was removed from distro but not from MANIFEST - fixed

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

15 years agocorrect the test for modifying the *.xml.example files
phasefx [Thu, 17 Sep 2009 13:35:43 +0000 (13:35 +0000)]
correct the test for modifying the *.xml.example files

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

15 years agoPOD/docs cleanup
sboyette [Tue, 15 Sep 2009 16:39:33 +0000 (16:39 +0000)]
POD/docs cleanup

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

15 years ago100% test coverage
sboyette [Tue, 15 Sep 2009 16:19:48 +0000 (16:19 +0000)]
100% test coverage

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

15 years agoWIP
sboyette [Tue, 15 Sep 2009 16:19:47 +0000 (16:19 +0000)]
WIP

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

15 years agoWIP
sboyette [Tue, 15 Sep 2009 16:19:46 +0000 (16:19 +0000)]
WIP

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

15 years agomore test
sboyette [Tue, 15 Sep 2009 16:19:45 +0000 (16:19 +0000)]
more test

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

15 years agosync
sboyette [Tue, 15 Sep 2009 16:19:45 +0000 (16:19 +0000)]
sync

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

15 years agostowing WIP
sboyette [Tue, 15 Sep 2009 16:19:44 +0000 (16:19 +0000)]
stowing WIP

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

15 years agoWIP
sboyette [Tue, 15 Sep 2009 16:19:43 +0000 (16:19 +0000)]
WIP

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

15 years agoMake building & installing the core components of OpenSRF optional.
dbs [Mon, 14 Sep 2009 04:02:04 +0000 (04:02 +0000)]
Make building & installing the core components of OpenSRF optional.

For now, this will be of most interest to those interested in installing only
the JavaScript files from OpenSRF. If you disable the core components in
configure, then dependency checking for those core components is skipped and
the JavaScript files will be installed to the desired location.

For example:

./autogen.sh
./configure --prefix=/openils --sysconfdir=/openils/conf --disable-core
sudo make install

... will result in only the OpenSRF JavaScript files being installed in
/openils/lib/javascript/ (although at the moment, the other directories
will still be created).

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

15 years agoChanged the signature of osrfStringArrayGetString():
scottmk [Sun, 13 Sep 2009 03:04:04 +0000 (03:04 +0000)]
Changed the signature of osrfStringArrayGetString():

1. It receives a pointer to osrfStringArray.  That pointer
is now a pointer to const.

2. It returns a character pointer.  That pointer is now a
pointer to const.

I have already examined all existing calls to this function,
and modified them where necessary.

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

15 years agoIn osrf_json_gateway.c: added the const qualifier to three
scottmk [Sun, 13 Sep 2009 01:51:12 +0000 (01:51 +0000)]
In osrf_json_gateway.c: added the const qualifier to three
different local variables, all named "str".

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

15 years agoIn apacheGetParamValues() and apacheGetFirstParamValue():
scottmk [Sat, 12 Sep 2009 18:19:35 +0000 (18:19 +0000)]
In apacheGetParamValues() and apacheGetFirstParamValue():
applied const qualifier to nkey.

Also: changed the ensuing NULL tests to look at nkey
instead of key, since key has already been verified as
non-NULL.

Actually it looks like nkey is guaranteed to be non-NULL
as well, but that depends on the correct functioning
of osrfStringArray; so I left the NULL test, as
revised, in place.

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

15 years agoIn osrfAppSessionClientInit(): added a const
scottmk [Sat, 12 Sep 2009 17:59:39 +0000 (17:59 +0000)]
In osrfAppSessionClientInit(): added a const
qualifier to domain.

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

15 years agoIn osrfSystemBootstrap(): added a const qualifier
scottmk [Sat, 12 Sep 2009 17:53:39 +0000 (17:53 +0000)]
In osrfSystemBootstrap(): added a const qualifier
to appname.

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

15 years agoIn osrfBigHashFree: added a const qualifier to key,
scottmk [Sat, 12 Sep 2009 17:47:37 +0000 (17:47 +0000)]
In osrfBigHashFree: added a const qualifier to key,
and removed a pointless cast.

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

15 years agoIn osrfStringArrayRemove(): fixed a bug whereby we would decrement
scottmk [Sat, 12 Sep 2009 16:47:12 +0000 (16:47 +0000)]
In osrfStringArrayRemove(): fixed a bug whereby we would decrement
the size member even if no string was actually removed.

Added Doxygen-style comments to document everything.

Removed a few comments in the header so that they wouldn't
override comments in the implementation file.

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

15 years agoIn osrfNewHash(): specify a size for the osrfList used as a hash table,
scottmk [Fri, 11 Sep 2009 19:38:48 +0000 (19:38 +0000)]
In osrfNewHash(): specify a size for the osrfList used as a hash table,
so as to avoid wasting memory.

In osrfHashSet(): rearranged the logic a bit for clarity; no change in
behavior.

In osrfHashIteratorNext(): added a bit of protection against a corrupted
iterator.

Throughout: added Doxygen-style comments for documentation.  Removed
some comments from the header so that they wouldn't override more
complete comments from the implementation file.

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

15 years agoinitial support for capturing bytes read from gateway response
erickson [Thu, 10 Sep 2009 22:25:26 +0000 (22:25 +0000)]
initial support for capturing bytes read from gateway response

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

15 years agoUse working Perl syntax in example print hostname command.
dbs [Thu, 10 Sep 2009 01:09:03 +0000 (01:09 +0000)]
Use working Perl syntax in example print hostname command.

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

15 years agoAdd a linefeed to the Perl "print hostname" command
dbs [Thu, 10 Sep 2009 01:06:30 +0000 (01:06 +0000)]
Add a linefeed to the Perl "print hostname" command

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

15 years ago1. Moved the declaration of the osrf_host_config struct out of the header.
scottmk [Tue, 8 Sep 2009 20:46:23 +0000 (20:46 +0000)]
1. Moved the declaration of the osrf_host_config struct out of the header.
Nothing outside of osrf_settings.c needs access to any members of this
struct.

2. Made the osrf_settings_new_host_config function static; removed its
prototype from the header.

3. Made the "config" pointer static.

4. Rearranged osrf_settings_free_host_config a bit to protect against
attempts to free the cached config twice.

5. Finished adding doxygen-style markup comments.

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

15 years agoTweaking comments for doxygen:
scottmk [Tue, 8 Sep 2009 14:29:45 +0000 (14:29 +0000)]
Tweaking comments for doxygen:

Moved the overview from the implementation file to the header.

Deleted some comments from the header so that they wouldn't
override more complete comments from the implementation file.

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

15 years agoEnhanced the error messages from osrf_settings_host_value() and
scottmk [Fri, 4 Sep 2009 21:47:55 +0000 (21:47 +0000)]
Enhanced the error messages from osrf_settings_host_value() and
osrf_settings_host_value_object() to include the requested
search path.  That should make it easier to identify the caller
and thereby figure out what went wrong.

Also: added a couple of Doxygen-style comments.

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

15 years agofor consistency with other config files and ease of install automation, set the defau...
erickson [Fri, 4 Sep 2009 15:38:46 +0000 (15:38 +0000)]
for consistency with other config files and ease of install automation, set the default password to 'password'

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

15 years agoassume 'yes' to fetching dependencies; reduce the verbosity of package downloads
erickson [Fri, 4 Sep 2009 13:22:05 +0000 (13:22 +0000)]
assume 'yes' to fetching dependencies; reduce the verbosity of package downloads

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

15 years ago1. In osrfListSetDefault(): install the standard function
scottmk [Thu, 3 Sep 2009 20:00:49 +0000 (20:00 +0000)]
1. In osrfListSetDefault(): install the standard function
free() as the default item-freeing callback function,
instead of the gossamer-thin and useless wrapper for it,
osrfListVanillaFree().  This change eliminates a layer of
function call overhead.

2. Eliminate osrfListVanillaFree() as neither used nor useful.

3. Add doxygen-style comments to document every function.

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

15 years ago1. A minor streamlining of va_list_to_string(), to eliminate
scottmk [Thu, 3 Sep 2009 12:34:42 +0000 (12:34 +0000)]
1. A minor streamlining of va_list_to_string(), to eliminate
a layer of copying.

2. Corrected some faulty comments for doxygen.

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

15 years agorepaired partial change from 'class' to 'pkg'. added use strict/warnings
erickson [Mon, 31 Aug 2009 17:17:28 +0000 (17:17 +0000)]
repaired partial change from 'class' to 'pkg'.  added use strict/warnings

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

15 years ago1. Add comments to be recognized by doxygen or other such
scottmk [Mon, 31 Aug 2009 03:48:26 +0000 (03:48 +0000)]
1. Add comments to be recognized by doxygen or other such
documentation generators.

2. Change the values returned by buffer_fadd(), buffer_add(),
buffer_add_n(), and buffer_add_char() to make them more
consistent.  In practice we never pay any attention to the
return values anyway.

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

15 years agochanged 'my' globals to 'our' globals for testing purposes
sboyette [Fri, 28 Aug 2009 20:31:31 +0000 (20:31 +0000)]
changed 'my' globals to 'our' globals for testing purposes

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

15 years agofirst tests
sboyette [Fri, 28 Aug 2009 20:31:30 +0000 (20:31 +0000)]
first tests

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

15 years agomore cleanup and documentation in progress
sboyette [Fri, 28 Aug 2009 20:31:30 +0000 (20:31 +0000)]
more cleanup and documentation in progress

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

15 years agoyanking LogServer test file
sboyette [Fri, 28 Aug 2009 20:31:29 +0000 (20:31 +0000)]
yanking LogServer test file

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

15 years agoremoving use of LogServer
sboyette [Fri, 28 Aug 2009 20:31:28 +0000 (20:31 +0000)]
removing use of LogServer

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

15 years agoremoving _json_hint_to_class
sboyette [Fri, 28 Aug 2009 20:31:28 +0000 (20:31 +0000)]
removing _json_hint_to_class

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

15 years agoshuffling around, adding POD stubs
sboyette [Fri, 28 Aug 2009 20:31:27 +0000 (20:31 +0000)]
shuffling around, adding POD stubs

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

15 years agoremoving OSRF::Utils::LogServer at berick's suggestion
sboyette [Tue, 25 Aug 2009 18:51:00 +0000 (18:51 +0000)]
removing OSRF::Utils::LogServer at berick's suggestion

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

15 years agorearranging things a bit, docs. no actual code changes.
sboyette [Tue, 25 Aug 2009 18:51:00 +0000 (18:51 +0000)]
rearranging things a bit, docs. no actual code changes.

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

15 years agonew test files for Utils breakout
sboyette [Tue, 25 Aug 2009 15:45:01 +0000 (15:45 +0000)]
new test files for Utils breakout

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

15 years agoremoved $VERSION construct which caused undef warnings when not under svn, and only...
sboyette [Tue, 25 Aug 2009 15:45:01 +0000 (15:45 +0000)]
removed $VERSION construct which caused undef warnings when not under svn, and only occurred in 2 modules

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

15 years agomethod prettyJSON doesnt exist anymore
sboyette [Tue, 25 Aug 2009 15:04:43 +0000 (15:04 +0000)]
method prettyJSON doesnt exist anymore

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

15 years agoditto
sboyette [Tue, 25 Aug 2009 15:04:42 +0000 (15:04 +0000)]
ditto

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

15 years agothat last version change was rather poorly timed, as it turns out
sboyette [Tue, 25 Aug 2009 15:04:41 +0000 (15:04 +0000)]
that last version change was rather poorly timed, as it turns out

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

15 years agolocal doc updates for recent changes. wondering how much point there is in keeping...
sboyette [Fri, 21 Aug 2009 13:17:29 +0000 (13:17 +0000)]
local doc updates for recent changes. wondering how much point there is in keeping these around, long-term

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

15 years agopreƫmptive version bump
sboyette [Fri, 21 Aug 2009 13:17:28 +0000 (13:17 +0000)]
preĆ«mptive version bump

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

15 years ago'make check' works as promised. perl tests moved to 'check' target
sboyette [Fri, 21 Aug 2009 13:17:28 +0000 (13:17 +0000)]
'make check' works as promised. perl tests moved to 'check' target

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

15 years agoupdating MANIFEST for Module::Build-ness
sboyette [Thu, 20 Aug 2009 13:02:50 +0000 (13:02 +0000)]
updating MANIFEST for Module::Build-ness

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

15 years agoadded separate install fail diagnostic message
sboyette [Mon, 17 Aug 2009 00:34:51 +0000 (00:34 +0000)]
added separate install fail diagnostic message

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

15 years agoremoving files no longer needed
sboyette [Mon, 17 Aug 2009 00:34:51 +0000 (00:34 +0000)]
removing files no longer needed

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

15 years ago'make' will now just plain make again without proceeding to install.
sboyette [Mon, 17 Aug 2009 00:34:50 +0000 (00:34 +0000)]
'make' will now just plain make again without proceeding to install.
Added Build to files swept by 'make clean'

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

15 years agoGoing back to dumping a script (unbreaking non-root make vs. make install)
sboyette [Mon, 17 Aug 2009 00:34:50 +0000 (00:34 +0000)]
Going back to dumping a script (unbreaking non-root make vs. make install)

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

15 years agoAdded DISTCLEANFILES to make "make distclean" work better
sboyette [Thu, 13 Aug 2009 19:58:05 +0000 (19:58 +0000)]
Added DISTCLEANFILES to make "make distclean" work better

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

15 years agoAC_CONFIG_MACRO_DIR added at the behest of libtoolize
sboyette [Thu, 13 Aug 2009 19:58:04 +0000 (19:58 +0000)]
AC_CONFIG_MACRO_DIR added at the behest of libtoolize

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

15 years agoAdded distclean-local: target and DISTCLEANFILES to make 'make distclean' work supera...
sboyette [Thu, 13 Aug 2009 19:58:03 +0000 (19:58 +0000)]
Added distclean-local: target and DISTCLEANFILES to make 'make distclean' work superawesomely
Added ACLOCAL_AMFLAGS at the behest of libtoolize

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

15 years agoBuild.PL built; build/test/install all selfcontained and automatic now
sboyette [Thu, 13 Aug 2009 19:58:02 +0000 (19:58 +0000)]
Build.PL built; build/test/install all selfcontained and automatic now

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

15 years agoM::B changes
sboyette [Thu, 13 Aug 2009 19:58:02 +0000 (19:58 +0000)]
M::B changes

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

15 years agoM::B changes
sboyette [Thu, 13 Aug 2009 19:58:01 +0000 (19:58 +0000)]
M::B changes

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

15 years agoExtended the JSON_INIT_CLEAR macro to avoid segfaults.
scottmk [Wed, 5 Aug 2009 22:27:04 +0000 (22:27 +0000)]
Extended the JSON_INIT_CLEAR macro to avoid segfaults.

Scenario: converting a JSON_BOOL, with a value of true, to a JSON_HASH or
JSON_ARRAY.  The true value (in a union with an osrfHash* and an osrfList*)
was being interpreted as a non_NULL pointer and deferenced.  Oops.

With this change, we clear the boolean value (by nullifying one of the
unioned pointers) whenever changing from a JSON_BOOL to anything else.

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

15 years agoPerformance tweak to jsonIterator.
scottmk [Wed, 5 Aug 2009 12:53:19 +0000 (12:53 +0000)]
Performance tweak to jsonIterator.

Instead of storing a malloc'd copy of the key of a JSON_HASH entry,
just store a const pointer to the key string stored in the
internal osrfHash.  That way we don't have to do a malloc and
free every time we bump the iterator.

This change also requires the addition of a couple of const qualifiers
in the client code.

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

15 years agoset the 'from' address in outbound jabber messages
erickson [Wed, 29 Jul 2009 13:23:55 +0000 (13:23 +0000)]
set the 'from' address in outbound jabber messages

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

15 years agoset the 'from' address in outbound xmpp messages
erickson [Wed, 29 Jul 2009 12:53:49 +0000 (12:53 +0000)]
set the 'from' address in outbound xmpp messages

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

15 years agoreduce unnecessary calls to fcntl() while reading from the socket
erickson [Tue, 28 Jul 2009 20:27:42 +0000 (20:27 +0000)]
reduce unnecessary calls to fcntl() while reading from the socket

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

15 years agocheck NULL-ness on hash the key before calling find_item
erickson [Thu, 23 Jul 2009 02:03:38 +0000 (02:03 +0000)]
check NULL-ness on hash the key before calling find_item

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

15 years agoThis is a performance tweak to the osrfHashGet function, a widely
scottmk [Wed, 22 Jul 2009 03:50:13 +0000 (03:50 +0000)]
This is a performance tweak to the osrfHashGet function, a widely
used utility function.

The old version accepted a variable number of arguments: a pointer
to an osrfHash, a string optionally containing printf-style
format specifiers, and addtional parameters as needed to fill in
the blanks.

In practice, none of the code ever uses the printf-style formatting.
We always pass exactly two parameters.  We burn CPU cycles scanning
the string for format specifiers and never find any.

I eliminated the unused variable parameters and turned osrfHashGet()
into a simple two-parameter function.  Just in case anybody ever
wants it, I also cloned the original version into a new function
named osrfHashGetFmt, which accepts a variable number of arguments
as before.

Note that, since the signature of the function is changing,
it is necessary to recompile any open-ils programs that
call it, namely:

oils_dataloader.c
oils_event.c
oils_idl-core.c
oils_cstore.c
dump_idl.c

The Makefiles apparently don't recognize this dependency.

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

15 years agoAdd two new commands, "open" and "close", to open and close ongoing
scottmk [Fri, 10 Jul 2009 15:28:50 +0000 (15:28 +0000)]
Add two new commands, "open" and "close", to open and close ongoing
connections to specified services.  (Otherwise a connection is created
and destroyed for every request.)

Main purpose: to be able to use srfsh for database operations that require
transactions.

Warning: typically the <keepalive> value will need to be increased for
the service in question in opensrf.xml, or else the server will close
the connection before you can type your request.

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

15 years agoFix a bug whereby, if there was only one <service> entry for the
scottmk [Mon, 22 Jun 2009 05:28:34 +0000 (05:28 +0000)]
Fix a bug whereby, if there was only one <service> entry for the
public router in opensrf_core.xml, the service would fail to register.

Root cause: The code was expecting to see a list of services in a
JSON_ARRAY.  But if there's only one service, it's represented as a
JSON_STRING.

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

15 years agountil we make the router / C processes write their own PID file, put a short sleep...
erickson [Thu, 11 Jun 2009 13:10:36 +0000 (13:10 +0000)]
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

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

15 years agocall cleanup instead of running the death callback directory when server session...
erickson [Thu, 11 Jun 2009 12:49:43 +0000 (12:49 +0000)]
call cleanup instead of running the death callback directory when server session expires

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

15 years agoadded session callback support with example method. added method-not-found handling...
erickson [Thu, 11 Jun 2009 03:21:39 +0000 (03:21 +0000)]
added session callback support with example method.  added method-not-found handling.  added network socket flush for clearing stale inbound data.

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

15 years agoadded a session_data disctionary to ServerSession class for storing per-session data...
erickson [Wed, 10 Jun 2009 21:46:00 +0000 (21:46 +0000)]
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

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

15 years ago1. If an input line ends in a backslash, remove the backslash
scottmk [Sat, 6 Jun 2009 12:40:00 +0000 (12:40 +0000)]
1. If an input line ends in a backslash, remove the backslash
and append the following line as a continuation.

2. Disable the readline library's special treatment of
horizontal tabs, which by default trigger file name
completion (which is not useful for srfsh).

3. In calls to strtok(): accept horizontal tabs as
delimiters, since they are no longer suppressed
by readline().

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