From 7943cbbe048553b90f810765f34699a03749e433 Mon Sep 17 00:00:00 2001 From: Wouter Verhelst Date: Sat, 12 Feb 2011 20:18:45 +0100 Subject: [PATCH] Check return value of read_all in all cases ... to avoid nbd-tester-client going berzerk if the server dies (this is a test suite! It should deal with servers dying!) --- nbd-tester-client.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/nbd-tester-client.c b/nbd-tester-client.c index f97a4ee..37981c4 100644 --- a/nbd-tester-client.c +++ b/nbd-tester-client.c @@ -56,7 +56,7 @@ typedef enum { CONNECTION_CLOSE_FAST, } CLOSE_TYPE; -inline int read_all(int f, void *buf, size_t len) { +static inline int read_all(int f, void *buf, size_t len) { ssize_t res; size_t retval=0; @@ -72,6 +72,9 @@ inline int read_all(int f, void *buf, size_t len) { return retval; } +#define READ_ALL_ERRCHK(f, buf, len, whereto, errmsg...) if((read_all(f, buf, len))<=0) { snprintf(errstr, errstr_len, ##errmsg); goto whereto; } +#define READ_ALL_ERR_RT(f, buf, len, whereto, rval, errmsg...) if((read_all(f, buf, len))<=0) { snprintf(errstr, errstr_len, ##errmsg); retval = rval; goto whereto; } + int setup_connection(gchar *hostname, int port, gchar* name, CONNECTION_TYPE ctype) { int sock; struct hostent *host; @@ -102,11 +105,7 @@ int setup_connection(gchar *hostname, int port, gchar* name, CONNECTION_TYPE cty } if(ctype