Do not call ExitThread() on server communication errors.
This commit is contained in:
parent
c2795b7376
commit
5eca3afa9f
|
@ -27,6 +27,17 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* CLIENT_Die
|
||||||
|
*
|
||||||
|
* Die on protocol errors or socket close
|
||||||
|
*/
|
||||||
|
static void CLIENT_Die( THDB *thdb )
|
||||||
|
{
|
||||||
|
close( thdb->socket );
|
||||||
|
SYSDEPS_ExitThread();
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CLIENT_ProtocolError
|
* CLIENT_ProtocolError
|
||||||
*/
|
*/
|
||||||
|
@ -39,7 +50,7 @@ static void CLIENT_ProtocolError( const char *err, ... )
|
||||||
fprintf( stderr, "Client protocol error:%p: ", thdb->server_tid );
|
fprintf( stderr, "Client protocol error:%p: ", thdb->server_tid );
|
||||||
vfprintf( stderr, err, args );
|
vfprintf( stderr, err, args );
|
||||||
va_end( args );
|
va_end( args );
|
||||||
ExitThread(1);
|
CLIENT_Die( thdb );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -145,7 +156,7 @@ static unsigned int CLIENT_WaitReply_v( int *len, int *passed_fd,
|
||||||
perror("recvmsg");
|
perror("recvmsg");
|
||||||
CLIENT_ProtocolError( "recvmsg\n" );
|
CLIENT_ProtocolError( "recvmsg\n" );
|
||||||
}
|
}
|
||||||
if (!ret) ExitThread(1); /* the server closed the connection; time to die... */
|
if (!ret) CLIENT_Die( thdb ); /* the server closed the connection; time to die... */
|
||||||
|
|
||||||
/* sanity checks */
|
/* sanity checks */
|
||||||
|
|
||||||
|
@ -189,7 +200,7 @@ static unsigned int CLIENT_WaitReply_v( int *len, int *passed_fd,
|
||||||
perror( "recv" );
|
perror( "recv" );
|
||||||
CLIENT_ProtocolError( "recv\n" );
|
CLIENT_ProtocolError( "recv\n" );
|
||||||
}
|
}
|
||||||
if (!addlen) ExitThread(1); /* the server closed the connection; time to die... */
|
if (!addlen) CLIENT_Die( thdb ); /* the server closed the connection; time to die... */
|
||||||
if (len) *len += addlen;
|
if (len) *len += addlen;
|
||||||
remaining -= addlen;
|
remaining -= addlen;
|
||||||
}
|
}
|
||||||
|
@ -206,7 +217,7 @@ static unsigned int CLIENT_WaitReply_v( int *len, int *passed_fd,
|
||||||
perror( "recv" );
|
perror( "recv" );
|
||||||
CLIENT_ProtocolError( "recv\n" );
|
CLIENT_ProtocolError( "recv\n" );
|
||||||
}
|
}
|
||||||
if (!addlen) ExitThread(1); /* the server closed the connection; time to die... */
|
if (!addlen) CLIENT_Die( thdb ); /* the server closed the connection; time to die... */
|
||||||
remaining -= addlen;
|
remaining -= addlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue