prterrors.cpp
资源名称:h323.zip [点击查看]
上传用户:hnnddl
上传日期:2007-01-06
资源大小:3580k
文件大小:11k
源码类别:
IP电话/视频会议
开发平台:
WINDOWS
- /*
- * $Revision: 1.1 $
- * $Date: 1998/10/14 22:47:51 $
- */
- #include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include "api/apierr.h"
- #include "api/h225csperr.h"
- #include "api/h245sigerr.h"
- #include "api/connmgrerr.h"
- #include "api/h225raserr.h"
- #include "q931/q931err.h"
- #include "api/h450err.h"
- void doError(ProtReturnCode,int);
- char *printError(ProtReturnCode ret, char *msg);
- #define PRINTERR printf
- void
- doError(ProtReturnCode ret, int stop)
- {
- char msg[256];
- PRINTERR("%sn",printError(ret,msg));
- if (stop) {
- PRINTERR("exiting due to error...n");
- exit(1);
- /* NOTREACHED */
- }
- }
- char *
- printError(ProtReturnCode ret, char *msg)
- {
- unsigned int sev, fac, sub, code;
- char num[5];
- msg[0] = ' '; /* so we can use the str functions */
- num[0] = ' '; /* so we can use the str functions */
- PROT_EXTRACT_CODES(ret, sev, fac, sub, code);
- sprintf(num,"%d",code); /* we may need this later */
- switch (sev) {
- case PROT_SEVERITY_SUCCESS:
- strcpy(msg, "SUCCESS: ");
- break;
- case PROT_SEVERITY_INFORMATIONAL:
- strcpy(msg, "INFORMATION: ");
- break;
- case PROT_SEVERITY_WARNING:
- strcpy(msg, "WARNING: ");
- break;
- case PROT_SEVERITY_ERROR:
- strcpy(msg, "ERROR: ");
- break;
- default:
- strcpy(msg, "SEVERITY-DEFAULT: ");
- break;
- }
- switch (fac) {
- case PROT_FACILITY_CODE_OS:
- strcat(msg, "Operating System: ");
- break;
- case PROT_FACILITY_CODE_TRANSPORT:
- strcat(msg, "Transport Layer: ");
- break;
- case PROT_FACILITY_CODE_RTP:
- strcat(msg, "RTP: ");
- break;
- case PROT_FACILITY_CODE_Q931:
- strcat(msg, "Q.931: ");
- break;
- case PROT_FACILITY_CODE_H225:
- strcat(msg, "H.225: ");
- break;
- case PROT_FACILITY_CODE_H245:
- strcat(msg, "H.245: ");
- break;
- case PROT_FACILITY_CODE_H450:
- // strcat(msg, "H.450: ");
- break;
- default:
- strcat(msg, "FACILITY-DEFAULT: ");
- break;
- }
- switch (sub) {
- case PROT_FACILITY_SUB_CODE_SOCKETS:
- strcat(msg, "socket layer: ");
- strcat(msg, "error code = ");
- strcat(msg, num);
- break;
- case PROT_FACILITY_SUB_CODE_CONNMGR:
- strcat(msg, "Connection Manager: ");
- switch (code) {
- case CONNMGR_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case CONNMGR_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case CONNMGR_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case CONNMGR_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case CONNMGR_PENDING:
- strcat(msg, "error code = pending");
- break;
- case CONNMGR_NOT_IMPLEMENTED:
- strcat(msg, "error code = not implemented");
- break;
- case CONNMGR_TRANS_UNINITIALIZED:
- strcat(msg, "error code = transport layer uninitialized");
- break;
- case CONNMGR_CONNECTED:
- strcat(msg, "error code = connected");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H245ENGINE:
- strcat(msg, "lower H.245 engine: ");
- switch (code) {
- case H245SIG_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H245SIG_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H245SIG_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H245SIG_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H245SIG_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H245SIG_NOT_IMPLEMENTED:
- strcat(msg, "error code = not implemented");
- break;
- case H245SIG_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H245SIG_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H245SIG:
- strcat(msg, "H.245 signalling: ");
- switch (code) {
- case H245SIG_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H245SIG_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H245SIG_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H245SIG_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H245SIG_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H245SIG_NOT_IMPLEMENTED:
- strcat(msg, "error code = not implemented");
- break;
- case H245SIG_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H245SIG_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H225RAS:
- strcat(msg, "RAS: ");
- switch (code) {
- case H225RAS_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H225RAS_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H225RAS_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H225RAS_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H225RAS_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H225RAS_NOT_SUPPORTED:
- strcat(msg, "error code = not supported");
- break;
- case H225RAS_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H225RAS_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- case H225RAS_ASN1_ENCODE_FAILED:
- strcat(msg, "error code = ASN.1 encode failed");
- break;
- case H225RAS_BAD_MESSAGE:
- strcat(msg, "error code = bad message");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H225CS:
- strcat(msg, "H.225.0 call signalling: ");
- if (fac == PROT_FACILITY_CODE_Q931) {
- switch (code) {
- case Q931_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case Q931_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case Q931_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case Q931_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case Q931_PENDING:
- strcat(msg, "error code = pending");
- break;
- case Q931_NOT_IMPLEMENTED:
- strcat(msg, "error code = not implemented");
- break;
- case Q931_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- case Q931_ENGINE_LISTENING:
- strcat(msg, "error code = engine listening");
- break;
- case Q931_INVALID_MESSAGE:
- strcat(msg, "error code = invalid message");
- break;
- case Q931_INVALID_IE:
- strcat(msg, "error code = invalid information element");
- break;
- case Q931_GOT_RELEASE_COMPLETE:
- strcat(msg, "error code = received RELEASE COMPLETE");
- break;
- case Q931_REMOTE_END_TIMEDOUT:
- strcat(msg, "error code = remote endpoint timed out");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- }
- if (fac == PROT_FACILITY_CODE_H225) {
- switch (code) {
- case H225CS_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H225CS_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H225CS_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H225CS_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H225CS_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H225CS_NOT_IMPLEMENTED:
- strcat(msg, "error code = not implemented");
- break;
- case H225CS_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H225CS_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- }
- break;
- case PROT_FACILITY_SUB_CODE_H4501:
- strcat(msg, "H.450.1: ");
- switch (code) {
- case H450_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H450_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H450_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H450_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H450_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H450_NOT_IMPLEMENTED:
- strcat(msg, "error code = item not implemented");
- break;
- case H450_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H450_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- case H450_INCONSISTENT_TYPES:
- strcat(msg, "error code = inconsistent types");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H4502:
- strcat(msg, "H.450.2: ");
- switch (code) {
- case H450_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H450_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H450_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H450_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H450_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H450_NOT_IMPLEMENTED:
- strcat(msg, "error code = item not implemented");
- break;
- case H450_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H450_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- case H450_INCONSISTENT_TYPES:
- strcat(msg, "error code = inconsistent types");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_H4503:
- strcat(msg, "H.450.3: ");
- switch (code) {
- case H450_SUCCESS:
- strcat(msg, "error code = success");
- break;
- case H450_UNKNOWN_ERROR:
- strcat(msg, "error code = unknown error");
- break;
- case H450_MEM_ALLOC_FAILED:
- strcat(msg, "error code = memory allocation failed");
- break;
- case H450_INVALID_PARAM:
- strcat(msg, "error code = invalid parameter");
- break;
- case H450_PENDING:
- strcat(msg, "error code = pending");
- break;
- case H450_NOT_IMPLEMENTED:
- strcat(msg, "error code = item not implemented");
- break;
- case H450_ITEM_NOT_PRESENT:
- strcat(msg, "error code = item not present");
- break;
- case H450_BUFFER_TOO_SMALL:
- strcat(msg, "error code = buffer too small");
- break;
- case H450_INCONSISTENT_TYPES:
- strcat(msg, "error code = inconsistent types");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- case PROT_FACILITY_SUB_CODE_ASN1:
- strcat(msg, "H.450 ASN.1: ");
- switch (code) {
- case H450_ASN1_ENCODE_FAIL:
- strcat(msg, "error code = ASN.1 encoding failure");
- break;
- case H450_ASN1_DECODE_FAIL:
- strcat(msg, "error code = ASN.1 decoding failure");
- break;
- default:
- strcat(msg, "error code = default");
- break;
- }
- break;
- default:
- strcat(msg, "SUBCODE-DEFAULT: ");
- break;
- }
- return(msg);
- }