From cb6bdf156a69a60fa0a55006b6f638853da3b9f0 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 24 Jul 2013 16:28:15 -0400 Subject: [PATCH] LP1204123 Don't treat interrupts as errors 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 Signed-off-by: Jason Stephenson --- src/libopensrf/transport_client.c | 4 +--- src/libopensrf/transport_session.c | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libopensrf/transport_client.c b/src/libopensrf/transport_client.c index 79f0aa6..2a86d0c 100644 --- a/src/libopensrf/transport_client.c +++ b/src/libopensrf/transport_client.c @@ -250,9 +250,7 @@ transport_message* client_recv( transport_client* client, int timeout ) { 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; diff --git a/src/libopensrf/transport_session.c b/src/libopensrf/transport_session.c index 67bda87..4d2f7f6 100644 --- a/src/libopensrf/transport_session.c +++ b/src/libopensrf/transport_session.c @@ -285,7 +285,6 @@ int session_wait( transport_session* session, int timeout ) { if( ret ) { osrfLogDebug(OSRF_LOG_MARK, "socket_wait returned error code %d", ret); - session->state_machine->connected = 0; } return ret; } -- 2.43.2