Several bug fixes:
authorscottmk <scottmk@9efc2488-bf62-4759-914b-345cdb29e865>
Thu, 5 Nov 2009 21:03:36 +0000 (21:03 +0000)
committerscottmk <scottmk@9efc2488-bf62-4759-914b-345cdb29e865>
Thu, 5 Nov 2009 21:03:36 +0000 (21:03 +0000)
commitd426820f7d0c46de7c7efb8187148bc347f6d88e
treee630a8bc6e9c1f91e62a8fb66d8e2c1ada5c3c2a
parent19bfb8237927fe03fb702d9bcea407da81d8a337
Several bug fixes:

1. In osrfRouterRun(): eliminate the counting of sockets.  Rely
on the traversal of the class list to cover all the active
sockets.  Otherwise we would enter an infinite loop if we had just
deleted a class with an active socket.

2. In osrfRouterClassHandleIncoming(): in the case of an error
message that we can't reroute to a different node, do a continue
instead of a return.  Otherwise we delay any further messages that
may be enqueued for the same class, and possibly skip them entirely.

Also, in the same scenario: free the message before continuing, in
order to avoid a memory leak, and clear the transaction id for the
logging routines.

3. In osrfRouterClassHandleBounce(): remove the dead node when it is the
last one left for its class.  Remove the class as well, since it is
no longer usable.  We had been leaving the dead node around, for no
good reason.

M    src/router/osrf_router.c

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1844 9efc2488-bf62-4759-914b-345cdb29e865
src/router/osrf_router.c