|
|
1.1 ! root 1: /* ! 2: * Sun RPC is a product of Sun Microsystems, Inc. and is provided for ! 3: * unrestricted use provided that this legend is included on all tape ! 4: * media and as a part of the software program in whole or part. Users ! 5: * may copy or modify Sun RPC without charge, but are not authorized ! 6: * to license or distribute it to anyone else except as part of a product or ! 7: * program developed by the user. ! 8: * ! 9: * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE ! 10: * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR ! 11: * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. ! 12: * ! 13: * Sun RPC is provided with no support and without any obligation on the ! 14: * part of Sun Microsystems, Inc. to assist in its use, correction, ! 15: * modification or enhancement. ! 16: * ! 17: * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE ! 18: * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC ! 19: * OR ANY PART THEREOF. ! 20: * ! 21: * In no event will Sun Microsystems, Inc. be liable for any lost revenue ! 22: * or profits or other special, indirect and consequential damages, even if ! 23: * Sun has been advised of the possibility of such damages. ! 24: * ! 25: * Sun Microsystems, Inc. ! 26: * 2550 Garcia Avenue ! 27: * Mountain View, California 94043 ! 28: */ ! 29: #ifndef lint ! 30: static char sccsid[] = "@(#)clnt_perror.c 1.1 85/02/08 Copyr 1984 Sun Micro"; ! 31: #endif ! 32: ! 33: /* ! 34: * clnt_perror.c ! 35: * ! 36: * Copyright (C) 1984, Sun Microsystems, Inc. ! 37: * ! 38: */ ! 39: #include "types.h" ! 40: #include "xdr.h" ! 41: #include "auth.h" ! 42: #include "clnt.h" ! 43: #include "rpc_msg.h" ! 44: #include <stdio.h> ! 45: extern char *sys_errlist[]; ! 46: ! 47: /* ! 48: * Print reply error info ! 49: */ ! 50: void ! 51: clnt_perror(rpch, s) ! 52: CLIENT *rpch; ! 53: char *s; ! 54: { ! 55: struct rpc_err e; ! 56: void clnt_perrno(); ! 57: ! 58: CLNT_GETERR(rpch, &e); ! 59: fprintf(stderr, "%s: ", s); ! 60: switch (e.re_status) { ! 61: case RPC_SUCCESS: ! 62: case RPC_CANTENCODEARGS: ! 63: case RPC_CANTDECODERES: ! 64: case RPC_TIMEDOUT: ! 65: case RPC_PROGUNAVAIL: ! 66: case RPC_PROCUNAVAIL: ! 67: case RPC_CANTDECODEARGS: ! 68: clnt_perrno(e.re_status); ! 69: break; ! 70: case RPC_CANTSEND: ! 71: clnt_perrno(e.re_status); ! 72: fprintf(stderr, "; errno = %s", ! 73: sys_errlist[e.re_errno]); ! 74: break; ! 75: ! 76: case RPC_CANTRECV: ! 77: clnt_perrno(e.re_status); ! 78: fprintf(stderr, "; errno = %s", ! 79: sys_errlist[e.re_errno]); ! 80: break; ! 81: ! 82: case RPC_VERSMISMATCH: ! 83: clnt_perrno(e.re_status); ! 84: fprintf(stderr, "; low version = %lu, high version = %lu", e.re_vers.low, e.re_vers.high); ! 85: break; ! 86: ! 87: case RPC_AUTHERROR: ! 88: clnt_perrno(e.re_status); ! 89: fprintf(stderr, "; why = "); ! 90: switch (e.re_why) { ! 91: case AUTH_OK: ! 92: fprintf(stderr, "AUTH_OK"); ! 93: break; ! 94: ! 95: case AUTH_BADCRED: ! 96: fprintf(stderr, "AUTH_BOGUS_CREDENTIAL"); ! 97: break; ! 98: ! 99: case AUTH_REJECTEDCRED: ! 100: fprintf(stderr, "AUTH_REJECTED_CREDENTIAL"); ! 101: break; ! 102: ! 103: case AUTH_BADVERF: ! 104: fprintf(stderr, "AUTH_BOGUS_VERIFIER"); ! 105: break; ! 106: ! 107: case AUTH_REJECTEDVERF: ! 108: fprintf(stderr, "AUTH_REJECTED_VERIFIER"); ! 109: break; ! 110: ! 111: case AUTH_TOOWEAK: ! 112: fprintf(stderr, "AUTH_TOO_WEAK (remote error)"); ! 113: break; ! 114: ! 115: case AUTH_INVALIDRESP: ! 116: fprintf(stderr, "AUTH_INVALID_RESPONSE"); ! 117: break; ! 118: ! 119: default: ! 120: fprintf(stderr, "AUTH_UNKNOWN_FAILURE"); ! 121: break; ! 122: } ! 123: break; ! 124: ! 125: case RPC_PROGVERSMISMATCH: ! 126: clnt_perrno(e.re_status); ! 127: fprintf(stderr, "; low version = %lu, high version = %lu", e.re_vers.low, e.re_vers.high); ! 128: break; ! 129: ! 130: default: ! 131: fprintf(stderr, "RPC_UNKNOWN_FAILURE; s1 = %lu, s2 = %lu", e.re_lb.s1, e.re_lb.s2); ! 132: break; ! 133: } ! 134: fprintf(stderr, "\n"); ! 135: } ! 136: ! 137: /* ! 138: * This interface for use by clntrpc ! 139: */ ! 140: void ! 141: clnt_perrno(num) ! 142: enum clnt_stat num; ! 143: { ! 144: switch (num) { ! 145: case RPC_SUCCESS: ! 146: fprintf(stderr, "RPC_SUCCESS"); ! 147: break; ! 148: ! 149: case RPC_CANTENCODEARGS: ! 150: fprintf(stderr, "RPC_CANT_ENCODE_ARGS"); ! 151: break; ! 152: ! 153: case RPC_CANTDECODERES: ! 154: fprintf(stderr, "RPC_CANT_DECODE_RESULTS"); ! 155: break; ! 156: ! 157: case RPC_CANTSEND: ! 158: fprintf(stderr, "RPC_CANT_SEND"); ! 159: break; ! 160: ! 161: case RPC_CANTRECV: ! 162: fprintf(stderr, "RPC_CANT_RECV"); ! 163: break; ! 164: ! 165: case RPC_TIMEDOUT: ! 166: fprintf(stderr, "RPC_TIMED_OUT"); ! 167: break; ! 168: ! 169: case RPC_VERSMISMATCH: ! 170: fprintf(stderr, "RPC_VERSION_MISMATCH"); ! 171: break; ! 172: ! 173: case RPC_AUTHERROR: ! 174: fprintf(stderr, "RPC_AUTH_ERROR"); ! 175: break; ! 176: ! 177: case RPC_PROGUNAVAIL: ! 178: fprintf(stderr, "RPC_REMOTE_PROGRAM_UNAVAILABLE"); ! 179: break; ! 180: ! 181: case RPC_PROGVERSMISMATCH: ! 182: fprintf(stderr, "RPC_PROGRAM_MISMATCH"); ! 183: break; ! 184: ! 185: case RPC_PROCUNAVAIL: ! 186: fprintf(stderr, "RPC_UNKNOWN_PROCEDURE"); ! 187: break; ! 188: ! 189: case RPC_CANTDECODEARGS: ! 190: fprintf(stderr, "RPC_CANT_DECODE_ARGS"); ! 191: break; ! 192: case RPC_UNKNOWNHOST: ! 193: fprintf(stderr, "RPC_UNKNOWNHOST"); ! 194: break; ! 195: case RPC_PMAPFAILURE: ! 196: fprintf(stderr, "RPC_PMAP_FAILURE"); ! 197: break; ! 198: case RPC_PROGNOTREGISTERED: ! 199: fprintf(stderr, "RPC_PROG_NOT_REGISTERED"); ! 200: break; ! 201: case RPC_SYSTEMERROR: ! 202: fprintf(stderr, "RPC_SYSTEM_ERROR"); ! 203: break; ! 204: } ! 205: } ! 206: ! 207: /* ! 208: * A handle on why an rpc creation routine failed (returned NULL.) ! 209: */ ! 210: struct rpc_createerr rpc_createerr; ! 211: ! 212: clnt_pcreateerror(s) ! 213: char *s; ! 214: { ! 215: ! 216: fprintf(stderr, "%s: ", s); ! 217: clnt_perrno(rpc_createerr.cf_stat); ! 218: switch (rpc_createerr.cf_stat) { ! 219: case RPC_PMAPFAILURE: ! 220: fprintf(stderr, " - "); ! 221: clnt_perrno(rpc_createerr.cf_error.re_status); ! 222: break; ! 223: ! 224: case RPC_SYSTEMERROR: ! 225: fprintf(stderr, " - %s", sys_errlist[rpc_createerr.cf_error.re_errno]); ! 226: break; ! 227: ! 228: } ! 229: fprintf(stderr, "\n"); ! 230: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.