|
|
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: ! 46: /* ! 47: * Print reply error info ! 48: */ ! 49: void ! 50: clnt_perror(rpch, s) ! 51: CLIENT *rpch; ! 52: char *s; ! 53: { ! 54: struct rpc_err e; ! 55: void clnt_perrno(); ! 56: ! 57: CLNT_GETERR(rpch, &e); ! 58: fprintf(stderr, "%s: ", s); ! 59: switch (e.re_status) { ! 60: case RPC_SUCCESS: ! 61: case RPC_CANTENCODEARGS: ! 62: case RPC_CANTDECODERES: ! 63: case RPC_TIMEDOUT: ! 64: case RPC_PROGUNAVAIL: ! 65: case RPC_PROCUNAVAIL: ! 66: case RPC_CANTDECODEARGS: ! 67: clnt_perrno(e.re_status); ! 68: break; ! 69: case RPC_CANTSEND: ! 70: clnt_perrno(e.re_status); ! 71: fprintf(stderr, "; errno = %s", ! 72: strerror(e.re_errno)); ! 73: break; ! 74: ! 75: case RPC_CANTRECV: ! 76: clnt_perrno(e.re_status); ! 77: fprintf(stderr, "; errno = %s", ! 78: strerror(e.re_errno)); ! 79: break; ! 80: ! 81: case RPC_VERSMISMATCH: ! 82: clnt_perrno(e.re_status); ! 83: fprintf(stderr, "; low version = %lu, high version = %lu", e.re_vers.low, e.re_vers.high); ! 84: break; ! 85: ! 86: case RPC_AUTHERROR: ! 87: clnt_perrno(e.re_status); ! 88: fprintf(stderr, "; why = "); ! 89: switch (e.re_why) { ! 90: case AUTH_OK: ! 91: fprintf(stderr, "AUTH_OK"); ! 92: break; ! 93: ! 94: case AUTH_BADCRED: ! 95: fprintf(stderr, "AUTH_BOGUS_CREDENTIAL"); ! 96: break; ! 97: ! 98: case AUTH_REJECTEDCRED: ! 99: fprintf(stderr, "AUTH_REJECTED_CREDENTIAL"); ! 100: break; ! 101: ! 102: case AUTH_BADVERF: ! 103: fprintf(stderr, "AUTH_BOGUS_VERIFIER"); ! 104: break; ! 105: ! 106: case AUTH_REJECTEDVERF: ! 107: fprintf(stderr, "AUTH_REJECTED_VERIFIER"); ! 108: break; ! 109: ! 110: case AUTH_TOOWEAK: ! 111: fprintf(stderr, "AUTH_TOO_WEAK (remote error)"); ! 112: break; ! 113: ! 114: case AUTH_INVALIDRESP: ! 115: fprintf(stderr, "AUTH_INVALID_RESPONSE"); ! 116: break; ! 117: ! 118: default: ! 119: fprintf(stderr, "AUTH_UNKNOWN_FAILURE"); ! 120: break; ! 121: } ! 122: break; ! 123: ! 124: case RPC_PROGVERSMISMATCH: ! 125: clnt_perrno(e.re_status); ! 126: fprintf(stderr, "; low version = %lu, high version = %lu", e.re_vers.low, e.re_vers.high); ! 127: break; ! 128: ! 129: default: ! 130: fprintf(stderr, "RPC_UNKNOWN_FAILURE; s1 = %lu, s2 = %lu", e.re_lb.s1, e.re_lb.s2); ! 131: break; ! 132: } ! 133: fprintf(stderr, "\n"); ! 134: } ! 135: ! 136: /* ! 137: * This interface for use by clntrpc ! 138: */ ! 139: void ! 140: clnt_perrno(num) ! 141: enum clnt_stat num; ! 142: { ! 143: switch (num) { ! 144: case RPC_SUCCESS: ! 145: fprintf(stderr, "RPC_SUCCESS"); ! 146: break; ! 147: ! 148: case RPC_CANTENCODEARGS: ! 149: fprintf(stderr, "RPC_CANT_ENCODE_ARGS"); ! 150: break; ! 151: ! 152: case RPC_CANTDECODERES: ! 153: fprintf(stderr, "RPC_CANT_DECODE_RESULTS"); ! 154: break; ! 155: ! 156: case RPC_CANTSEND: ! 157: fprintf(stderr, "RPC_CANT_SEND"); ! 158: break; ! 159: ! 160: case RPC_CANTRECV: ! 161: fprintf(stderr, "RPC_CANT_RECV"); ! 162: break; ! 163: ! 164: case RPC_TIMEDOUT: ! 165: fprintf(stderr, "RPC_TIMED_OUT"); ! 166: break; ! 167: ! 168: case RPC_VERSMISMATCH: ! 169: fprintf(stderr, "RPC_VERSION_MISMATCH"); ! 170: break; ! 171: ! 172: case RPC_AUTHERROR: ! 173: fprintf(stderr, "RPC_AUTH_ERROR"); ! 174: break; ! 175: ! 176: case RPC_PROGUNAVAIL: ! 177: fprintf(stderr, "RPC_REMOTE_PROGRAM_UNAVAILABLE"); ! 178: break; ! 179: ! 180: case RPC_PROGVERSMISMATCH: ! 181: fprintf(stderr, "RPC_PROGRAM_MISMATCH"); ! 182: break; ! 183: ! 184: case RPC_PROCUNAVAIL: ! 185: fprintf(stderr, "RPC_UNKNOWN_PROCEDURE"); ! 186: break; ! 187: ! 188: case RPC_CANTDECODEARGS: ! 189: fprintf(stderr, "RPC_CANT_DECODE_ARGS"); ! 190: break; ! 191: case RPC_UNKNOWNHOST: ! 192: fprintf(stderr, "RPC_UNKNOWNHOST"); ! 193: break; ! 194: case RPC_PMAPFAILURE: ! 195: fprintf(stderr, "RPC_PMAP_FAILURE"); ! 196: break; ! 197: case RPC_PROGNOTREGISTERED: ! 198: fprintf(stderr, "RPC_PROG_NOT_REGISTERED"); ! 199: break; ! 200: case RPC_SYSTEMERROR: ! 201: fprintf(stderr, "RPC_SYSTEM_ERROR"); ! 202: break; ! 203: } ! 204: } ! 205: ! 206: /* ! 207: * A handle on why an rpc creation routine failed (returned NULL.) ! 208: */ ! 209: struct rpc_createerr rpc_createerr; ! 210: ! 211: clnt_pcreateerror(s) ! 212: char *s; ! 213: { ! 214: ! 215: fprintf(stderr, "%s: ", s); ! 216: clnt_perrno(rpc_createerr.cf_stat); ! 217: switch (rpc_createerr.cf_stat) { ! 218: case RPC_PMAPFAILURE: ! 219: fprintf(stderr, " - "); ! 220: clnt_perrno(rpc_createerr.cf_error.re_status); ! 221: break; ! 222: ! 223: case RPC_SYSTEMERROR: ! 224: fprintf(stderr, " - %s", ! 225: strerror(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.