47 lines
1.2 KiB
Diff
47 lines
1.2 KiB
Diff
|
commit e145633cf10c92aa6f24b8a1a322435b4e874b02
|
||
|
Author: Steve Dickson <steved@redhat.com>
|
||
|
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 <steved@redhat.com>
|
||
|
|
||
|
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:
|