Interrupted calls to select() are generally not errors, but more likely
signals received by the process. Avoid setting the transport_client
error flag to true in these cases. Otherwise, after one signal is
received, no other outbound communication can occur on the client
connection.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
transport_message* msg = NULL;
- if( error )
- client->error = 1;
- else if( client->msg_q_head != NULL ) {
+ if( !error && client->msg_q_head != NULL ) {
/* got message(s); dequeue the oldest one */
msg = client->msg_q_head;
client->msg_q_head = msg->next;
if( ret ) {
osrfLogDebug(OSRF_LOG_MARK, "socket_wait returned error code %d", ret);
- session->state_machine->connected = 0;
}
return ret;
}