Annotation of 43BSDTahoe/new/xns/examples/filing_common/errmsg.c, revision 1.1.1.1

1.1       root        1: /* $Header: errmsg.c,v 2.3 87/05/12 11:46:32 ed Exp $ */
                      2: 
                      3: /* $Log:       errmsg.c,v $
                      4:  * Revision 2.3  87/05/12  11:46:32  ed
                      5:  * Change to use FilingSubset1_defs.h, new AuthenticationError problems.
                      6:  * 
                      7:  * Revision 2.2  87/03/07  14:44:42  jqj
                      8:  * set problem correctly.  Cardinal != Enum on most UNIX systems
                      9:  * 
                     10:  * Revision 2.1  86/06/02  07:10:30  jqj
                     11:  * print more information on unspecifiedError
                     12:  * 
                     13:  * Revision 2.0  85/11/21  07:22:44  jqj
                     14:  * 4.3BSD standard release
                     15:  * 
                     16:  * Revision 1.1  85/11/20  14:19:04  jqj
                     17:  * Initial revision
                     18:  * 
                     19:  */
                     20: #include "FilingSubset1_defs.h"
                     21: 
                     22: FilingErrMsg(Code, Message)
                     23:        int Code;
                     24:        char *Message;
                     25: {
                     26:        static char *errmsgs[] = {
                     27:                "AttributeTypeError",
                     28:                "AttributeValueError",
                     29:                "ControlTypeError",
                     30:                "ControlValueError",
                     31:                "ScopeTypeError",
                     32:                "ScopeValueError",
                     33:                "AccessError",
                     34:                "AuthenticationError",
                     35:                "ConnectionError",
                     36:                "HandleError",
                     37:                "InsertionError",
                     38:                "ServiceError",
                     39:                "SessionError",
                     40:                "SpaceError",
                     41:                "TransferError",
                     42:                "UndefinedError",
                     43:                "RangeError" };
                     44:        static char *argproblems[] = {
                     45:        "illegal",
                     46:                "disallowed",
                     47:                "unreasonable",
                     48:                "unimplemented",
                     49:                "duplicated",
                     50:                "missing" };
                     51:        static char *accessproblems[] = {
                     52:                "accessRightsInsufficient",
                     53:                "accessRightsIndeterminate",
                     54:                "fileChanged",
                     55:                "fileDamaged",
                     56:                "fileInUse",
                     57:                "fileNotFound",
                     58:                "fileOpen" };
                     59:        static char *connectionproblems[] = {
                     60:                "noRoute",
                     61:                "noResponse",
                     62:                "transmissionHardware",
                     63:                "transportTimeout",
                     64:                "tooManyLocalConnections",
                     65:                "tooManyRemoteConnections",
                     66:                "missingCourier",
                     67:                "missingProgram",
                     68:                "missingProcedure",
                     69:                "protocolMismatch",
                     70:                "parameterInconsistency",
                     71:                "invalidMessage",
                     72:                "returnTimedOut",
                     73:                "otherCallProblem" };
                     74:        static char* handleproblems[] = {
                     75:                "invalid",
                     76:                "nullDisallowed",
                     77:                "directoryRequired" };
                     78:        static char *insertionproblems[] = {
                     79:                "positionUnavailable",
                     80:                "fileNotUnique",
                     81:                "loopInHierarchy" };
                     82:        static char *serviceproblems[] = {
                     83:                "cannotAuthenticate",
                     84:                "serviceFull",
                     85:                "serviceUnavailable",
                     86:                "sessionInUse" };
                     87:        static char *sessionproblems[] = {
                     88:                "tokenInvalid",
                     89:                "serviceAlreadySet" };
                     90:        static char *spaceproblems[] = {
                     91:                "allocationExceeded",
                     92:                "attributeAreadFull",
                     93:                "mediumFull" };
                     94:        static char *transferproblems[] = {
                     95:                "aborted",
                     96:                "checksumIncorrect",
                     97:                "formatIncorrect",
                     98:                "noRendevous",
                     99:                "wrongDirection" };
                    100:        static char *authenticationproblems[] = {
                    101:                "primaryCredentialsInvalid",
                    102:                "verifierInvalid",
                    103:                "verifierExpired",
                    104:                "verifierReused",
                    105:                "primaryCredentialsExpired",
                    106:                "inappropriatePrimaryCredentials",
                    107:                "secondaryCredentialsRequired",
                    108:                "secondaryCredentialsTypeInvalid",
                    109:                "secondaryCredentialsValueInvalid" };
                    110:        static char *rejectproblem[] = {
                    111:                "noSuchProgramNumber",
                    112:                "noSuchVersionNumber",
                    113:                "noSuchProcedureValue",
                    114:                "invalidArgument" };
                    115:        char *msg, *problemstr;
                    116:        int problem;
                    117:        char tempbuf[40];
                    118: 
                    119:        if (Code < 1000) {
                    120:                if (Message != (char *) 0)
                    121:                  printf("ERROR: %s\n", Message);
                    122:                return;
                    123:        }
                    124: 
                    125:        msg = "";
                    126:        problem = 0;
                    127:        if (Code-ERROR_OFFSET >= 0 && Code-ERROR_OFFSET <= 16) {
                    128:                msg = errmsgs[Code-ERROR_OFFSET];
                    129:        }
                    130:        switch (Code) {
                    131:        case AttributeTypeError:
                    132:        case AttributeValueError:
                    133:        case ControlTypeError:
                    134:        case ControlValueError:
                    135:        case ScopeTypeError:
                    136:        case ScopeValueError:
                    137: /* the following fails because "type" is defined as "Filing4_type".  Argh!!
                    138: /*             problem = (int) (((ScopeTypeErrorArgs *) Message)->problem);
                    139: /*             (void)sprintf(tempbuf,"problem: %s; type: %d",
                    140: /*                             argproblems[problem],
                    141: /*                             ((ScopeTypeErrorArgs *) Message)->type);
                    142: /*             problemstr = tempbuf;
                    143: /*             break;
                    144:  */
                    145:        case RangeError:
                    146:                problem = (int) (((RangeErrorArgs *) Message)->problem);
                    147:                problemstr = argproblems[problem];
                    148:                break;
                    149:        case AccessError:
                    150:                problem = (int) (((AccessErrorArgs *) Message)->problem);
                    151:                problemstr = accessproblems[problem];
                    152:                  break;
                    153:        case AuthenticationError:
                    154:                problem = (int) (((AuthenticationErrorArgs *) Message)->problem);
                    155:                problemstr = authenticationproblems[problem];
                    156:                break;
                    157:        case ConnectionError:
                    158:                problem = (int) (((ConnectionErrorArgs *) Message)->problem);
                    159:                problemstr = connectionproblems[problem];
                    160:                break;
                    161:        case HandleError:
                    162:                problem = (int) (((HandleErrorArgs *) Message)->problem);
                    163:                problemstr = handleproblems[problem];
                    164:                break;
                    165:        case InsertionError:
                    166:                problem = (int) (((InsertionErrorArgs *) Message)->problem);
                    167:                problemstr = insertionproblems[problem];
                    168:                break;
                    169:        case ServiceError:
                    170:                problem = (int) (((ServiceErrorArgs *) Message)->problem);
                    171:                problemstr = serviceproblems[problem];
                    172:                break;
                    173:        case SessionError:
                    174:                problem = (int) (((SessionErrorArgs *) Message)->problem);
                    175:                problemstr = sessionproblems[problem];
                    176:                break;
                    177:        case SpaceError:
                    178:                problem = (int) (((SpaceErrorArgs *) Message)->problem);
                    179:                problemstr = spaceproblems[problem];
                    180:                break;
                    181:        case TransferError:
                    182:                problem = (int) (((TransferErrorArgs *) Message)->problem);
                    183:                problemstr = transferproblems[problem];
                    184:                break;
                    185:        case UndefinedError:
                    186:                problem = (int) (((UndefinedErrorArgs *) Message)->problem);
                    187:                problemstr = tempbuf;
                    188:                sprintf(problemstr,"number %d",problem);
                    189:                break;
                    190:        case REJECT_ERROR:
                    191:                msg = "Courier REJECT";
                    192:                problem = (int) (((rejectionDetails *) Message)->designator);
                    193:                if (problem <= 3)
                    194:                        problemstr = rejectproblem[problem];
                    195:                else {
                    196:                        problemstr = tempbuf;
                    197:                        sprintf(problemstr,"unspecifiedError (%d)", problem);
                    198:                }
                    199:                break;
                    200:        case PROTOCOL_VIOLATION:
                    201:                problemstr = "Courier protocol violation";
                    202:                break;
                    203:        default:
                    204:                problemstr = tempbuf;
                    205:                sprintf(problemstr,"unexpected error number %d", Code);
                    206:                break;
                    207:        }
                    208:        printf("ERROR: %s, %s\n", msg, problemstr);
                    209: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.