commit e145633cf10c92aa6f24b8a1a322435b4e874b02 Author: Steve Dickson Date: Thu Nov 20 08:55:31 2008 -0500 Changed clnt_spcreateerror() to return clearer and more concise error messages. Signed-off-by: Steve Dickson diff --git a/src/clnt_perror.c b/src/clnt_perror.c index 8f53f8e..1c1c705 100644 --- a/src/clnt_perror.c +++ b/src/clnt_perror.c @@ -239,7 +239,7 @@ char * clnt_spcreateerror(s) const char *s; { - char *str; + char *str, *err; size_t len, i; if (s == NULL) @@ -257,8 +257,21 @@ clnt_spcreateerror(s) switch (rpc_createerr.cf_stat) { case RPC_PMAPFAILURE: (void) strncat(str, " - ", len - 1); - (void) strncat(str, - clnt_sperrno(rpc_createerr.cf_error.re_status), len - 4); + err = clnt_sperrno(rpc_createerr.cf_error.re_status); + if (err) + (void) strncat(str, err+5, len-5); + switch(rpc_createerr.cf_error.re_status) { + case RPC_CANTSEND: + case RPC_CANTRECV: + i = strlen(str); + len -= i; + snprintf(str+i, len, ": errno %d (%s)", + rpc_createerr.cf_error.re_errno, + strerror(rpc_createerr.cf_error.re_errno)); + break; + default: + break; + } break; case RPC_SYSTEMERROR: