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