diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-06-22 18:30:13 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-06-22 18:30:13 +0000 |
commit | 7c987a296324d3e28dd27086600c2e51d07ae721 (patch) | |
tree | a2f56a8ab6e91f24f3469b866743ad8f2b3ed20b | |
parent | aebddd09236b938f3d535f888cbc339b92a40817 (diff) |
Added the error code into error messages
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@534 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjlib-util/src/pjlib-util/errno.c | 24 | ||||
-rw-r--r-- | pjlib/include/pj/errno.h | 20 | ||||
-rw-r--r-- | pjlib/src/pj/errno.c | 34 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/errno.c | 154 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_errno.c | 112 |
5 files changed, 182 insertions, 162 deletions
diff --git a/pjlib-util/src/pjlib-util/errno.c b/pjlib-util/src/pjlib-util/errno.c index bce785ae..f686e0be 100644 --- a/pjlib-util/src/pjlib-util/errno.c +++ b/pjlib-util/src/pjlib-util/errno.c @@ -33,20 +33,20 @@ static const struct } err_str[] = { /* STUN errors */ - { PJLIB_UTIL_ESTUNRESOLVE, "Unable to resolve STUN server" }, - { PJLIB_UTIL_ESTUNINMSGTYPE, "Unknown STUN message type" }, - { PJLIB_UTIL_ESTUNINMSGLEN, "Invalid STUN message length" }, - { PJLIB_UTIL_ESTUNINATTRLEN, "STUN attribute length error" }, - { PJLIB_UTIL_ESTUNINATTRTYPE, "Invalid STUN attribute type" }, - { PJLIB_UTIL_ESTUNININDEX, "Invalid STUN server/socket index" }, - { PJLIB_UTIL_ESTUNNOBINDRES, "No STUN binding response in the message" }, - { PJLIB_UTIL_ESTUNRECVERRATTR, "Received STUN error attribute" }, - { PJLIB_UTIL_ESTUNNOMAP, "No STUN mapped address attribute" }, - { PJLIB_UTIL_ESTUNNOTRESPOND, "Received no response from STUN server" }, - { PJLIB_UTIL_ESTUNSYMMETRIC, "Symetric NAT detected by STUN" }, + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNRESOLVE, "Unable to resolve STUN server" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNINMSGTYPE, "Unknown STUN message type" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNINMSGLEN, "Invalid STUN message length" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNINATTRLEN, "STUN attribute length error" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNINATTRTYPE, "Invalid STUN attribute type" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNININDEX, "Invalid STUN server/socket index" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNNOBINDRES, "No STUN binding response in the message" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNRECVERRATTR, "Received STUN error attribute" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNNOMAP, "No STUN mapped address attribute" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNNOTRESPOND, "Received no response from STUN server" ), + PJ_BUILD_ERR( PJLIB_UTIL_ESTUNSYMMETRIC, "Symetric NAT detected by STUN" ), /* XML errors */ - { PJLIB_UTIL_EINXML, "Invalid XML message" }, + PJ_BUILD_ERR( PJLIB_UTIL_EINXML, "Invalid XML message" ), }; #endif /* PJ_HAS_ERROR_STRING */ diff --git a/pjlib/include/pj/errno.h b/pjlib/include/pj/errno.h index 8834a616..8b5906cb 100644 --- a/pjlib/include/pj/errno.h +++ b/pjlib/include/pj/errno.h @@ -66,7 +66,7 @@ PJ_BEGIN_DECL /** * Guidelines on error message length. */ -#define PJ_ERR_MSG_SIZE 64 +#define PJ_ERR_MSG_SIZE 80 /** * Get the last platform error/status, folded into pj_status_t. @@ -189,6 +189,18 @@ PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start_code, */ /** + * Use this macro to generate error message text for your error code, + * so that they look uniformly as the rest of the libraries. + * + * @param code The error code + * @param msg The error test. + */ +#ifndef PJ_BUILD_ERR +# define PJ_BUILD_ERR(code,msg) { code, msg " (" #code ")" } +#endif + + +/** * @hideinitializer * Unknown error has been reported. */ @@ -268,6 +280,12 @@ PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start_code, * End of file. */ #define PJ_EEOF (PJ_ERRNO_START_STATUS + 16)/* 70016 */ +/** + * @hideinitializer + * Size is too big. + */ +#define PJ_ETOOBIG (PJ_ERRNO_START_STATUS + 17)/* 70017 */ + /** @} */ /* pj_errnum */ diff --git a/pjlib/src/pj/errno.c b/pjlib/src/pj/errno.c index 086bfcd7..da06f996 100644 --- a/pjlib/src/pj/errno.c +++ b/pjlib/src/pj/errno.c @@ -40,28 +40,30 @@ static struct err_msg_hnd /* PJLIB's own error codes/messages */ #if defined(PJ_HAS_ERROR_STRING) && PJ_HAS_ERROR_STRING!=0 + static const struct { int code; const char *msg; } err_str[] = { - { PJ_EUNKNOWN, "Unknown Error" }, - { PJ_EPENDING, "Pending operation" }, - { PJ_ETOOMANYCONN, "Too many connecting sockets" }, - { PJ_EINVAL, "Invalid value or argument" }, - { PJ_ENAMETOOLONG, "Name too long" }, - { PJ_ENOTFOUND, "Not found" }, - { PJ_ENOMEM, "Not enough memory" }, - { PJ_EBUG, "BUG DETECTED!" }, - { PJ_ETIMEDOUT, "Operation timed out" }, - { PJ_ETOOMANY, "Too many objects of the specified type"}, - { PJ_EBUSY, "Object is busy"}, - { PJ_ENOTSUP, "Option/operation is not supported"}, - { PJ_EINVALIDOP, "Invalid operation"}, - { PJ_ECANCELLED, "Operation cancelled"}, - { PJ_EEXISTS, "Object already exists" }, - { PJ_EEOF, "End of file" }, + PJ_BUILD_ERR(PJ_EUNKNOWN, "Unknown Error" ), + PJ_BUILD_ERR(PJ_EPENDING, "Pending operation" ), + PJ_BUILD_ERR(PJ_ETOOMANYCONN, "Too many connecting sockets" ), + PJ_BUILD_ERR(PJ_EINVAL, "Invalid value or argument" ), + PJ_BUILD_ERR(PJ_ENAMETOOLONG, "Name too long" ), + PJ_BUILD_ERR(PJ_ENOTFOUND, "Not found" ), + PJ_BUILD_ERR(PJ_ENOMEM, "Not enough memory" ), + PJ_BUILD_ERR(PJ_EBUG, "BUG DETECTED!" ), + PJ_BUILD_ERR(PJ_ETIMEDOUT, "Operation timed out" ), + PJ_BUILD_ERR(PJ_ETOOMANY, "Too many objects of the specified type"), + PJ_BUILD_ERR(PJ_EBUSY, "Object is busy"), + PJ_BUILD_ERR(PJ_ENOTSUP, "Option/operation is not supported"), + PJ_BUILD_ERR(PJ_EINVALIDOP, "Invalid operation"), + PJ_BUILD_ERR(PJ_ECANCELLED, "Operation cancelled"), + PJ_BUILD_ERR(PJ_EEXISTS, "Object already exists" ), + PJ_BUILD_ERR(PJ_EEOF, "End of file" ), + PJ_BUILD_ERR(PJ_ETOOBIG, "Size is too big"), }; #endif /* PJ_HAS_ERROR_STRING */ diff --git a/pjmedia/src/pjmedia/errno.c b/pjmedia/src/pjmedia/errno.c index f7c5082e..4016fecb 100644 --- a/pjmedia/src/pjmedia/errno.c +++ b/pjmedia/src/pjmedia/errno.c @@ -37,101 +37,101 @@ static const struct } err_str[] = { /* Generic PJMEDIA errors, shouldn't be used! */ - { PJMEDIA_ERROR, "Unspecified PJMEDIA error" }, + PJ_BUILD_ERR( PJMEDIA_ERROR, "Unspecified PJMEDIA error" ), /* SDP error. */ - { PJMEDIA_SDP_EINSDP, "Invalid SDP descriptor" }, - { PJMEDIA_SDP_EINVER, "Invalid SDP version line" }, - { PJMEDIA_SDP_EINORIGIN, "Invalid SDP origin line" }, - { PJMEDIA_SDP_EINTIME, "Invalid SDP time line"}, - { PJMEDIA_SDP_EINNAME, "SDP name/subject line is empty"}, - { PJMEDIA_SDP_EINCONN, "Invalid SDP connection line"}, - { PJMEDIA_SDP_EMISSINGCONN, "Missing SDP connection info line"}, - { PJMEDIA_SDP_EINATTR, "Invalid SDP attributes"}, - { PJMEDIA_SDP_EINRTPMAP, "Invalid SDP rtpmap attribute"}, - { PJMEDIA_SDP_ERTPMAPTOOLONG, "SDP rtpmap attribute too long"}, - { PJMEDIA_SDP_EMISSINGRTPMAP, "Missing SDP rtpmap for dynamic payload type"}, - { PJMEDIA_SDP_EINMEDIA, "Invalid SDP media line" }, - { PJMEDIA_SDP_ENOFMT, "No SDP payload format in the media line" }, - { PJMEDIA_SDP_EINPT, "Invalid SDP payload type in media line" }, - { PJMEDIA_SDP_EINFMTP, "Invalid SDP fmtp attribute" }, + PJ_BUILD_ERR( PJMEDIA_SDP_EINSDP, "Invalid SDP descriptor" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EINVER, "Invalid SDP version line" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EINORIGIN, "Invalid SDP origin line" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EINTIME, "Invalid SDP time line"), + PJ_BUILD_ERR( PJMEDIA_SDP_EINNAME, "SDP name/subject line is empty"), + PJ_BUILD_ERR( PJMEDIA_SDP_EINCONN, "Invalid SDP connection line"), + PJ_BUILD_ERR( PJMEDIA_SDP_EMISSINGCONN, "Missing SDP connection info line"), + PJ_BUILD_ERR( PJMEDIA_SDP_EINATTR, "Invalid SDP attributes"), + PJ_BUILD_ERR( PJMEDIA_SDP_EINRTPMAP, "Invalid SDP rtpmap attribute"), + PJ_BUILD_ERR( PJMEDIA_SDP_ERTPMAPTOOLONG,"SDP rtpmap attribute too long"), + PJ_BUILD_ERR( PJMEDIA_SDP_EMISSINGRTPMAP,"Missing SDP rtpmap for dynamic payload type"), + PJ_BUILD_ERR( PJMEDIA_SDP_EINMEDIA, "Invalid SDP media line" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ENOFMT, "No SDP payload format in the media line" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EINPT, "Invalid SDP payload type in media line" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EINFMTP, "Invalid SDP fmtp attribute" ), /* SDP negotiator errors. */ - { PJMEDIA_SDPNEG_EINSTATE, "Invalid SDP negotiator state for operation" }, - { PJMEDIA_SDPNEG_ENOINITIAL, "No initial local SDP in SDP negotiator" }, - { PJMEDIA_SDPNEG_ENOACTIVE, "No active SDP in SDP negotiator" }, - { PJMEDIA_SDPNEG_ENONEG, "No current local/remote offer/answer" }, - { PJMEDIA_SDPNEG_EMISMEDIA, "SDP media count mismatch in offer/answer" }, - { PJMEDIA_SDPNEG_EINVANSMEDIA, "SDP media type mismatch in offer/answer" }, - { PJMEDIA_SDPNEG_EINVANSTP, "SDP media transport type mismatch in offer/answer" }, - { PJMEDIA_SDPNEG_EANSNOMEDIA, "No common SDP media payload in answer" }, - { PJMEDIA_SDPNEG_ENOMEDIA, "No active media stream after negotiation" }, + PJ_BUILD_ERR( PJMEDIA_SDPNEG_EINSTATE, "Invalid SDP negotiator state for operation" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_ENOINITIAL, "No initial local SDP in SDP negotiator" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_ENOACTIVE, "No active SDP in SDP negotiator" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_ENONEG, "No current local/remote offer/answer" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_EMISMEDIA, "SDP media count mismatch in offer/answer" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_EINVANSMEDIA, "SDP media type mismatch in offer/answer" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_EINVANSTP, "SDP media transport type mismatch in offer/answer" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_EANSNOMEDIA, "No common SDP media payload in answer" ), + PJ_BUILD_ERR( PJMEDIA_SDPNEG_ENOMEDIA, "No active media stream after negotiation" ), /* SDP comparison results */ - { PJMEDIA_SDP_EMEDIANOTEQUAL, "SDP media descriptor not equal" }, - { PJMEDIA_SDP_EPORTNOTEQUAL, "Port in SDP media descriptor not equal" }, - { PJMEDIA_SDP_ETPORTNOTEQUAL, "Transport in SDP media descriptor not equal" }, - { PJMEDIA_SDP_EFORMATNOTEQUAL, "Format in SDP media descriptor not equal" }, - { PJMEDIA_SDP_ECONNNOTEQUAL, "SDP connection line not equal" }, - { PJMEDIA_SDP_EATTRNOTEQUAL, "SDP attributes not equal" }, - { PJMEDIA_SDP_EDIRNOTEQUAL, "SDP media direction not equal" }, - { PJMEDIA_SDP_EFMTPNOTEQUAL, "SDP fmtp attribute not equal" }, - { PJMEDIA_SDP_ERTPMAPNOTEQUAL, "SDP rtpmap attribute not equal" }, - { PJMEDIA_SDP_ESESSNOTEQUAL, "SDP session descriptor not equal" }, - { PJMEDIA_SDP_EORIGINNOTEQUAL, "SDP origin line not equal" }, - { PJMEDIA_SDP_ENAMENOTEQUAL, "SDP name/subject line not equal" }, - { PJMEDIA_SDP_ETIMENOTEQUAL, "SDP time line not equal" }, + PJ_BUILD_ERR( PJMEDIA_SDP_EMEDIANOTEQUAL, "SDP media descriptor not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EPORTNOTEQUAL, "Port in SDP media descriptor not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ETPORTNOTEQUAL, "Transport in SDP media descriptor not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EFORMATNOTEQUAL, "Format in SDP media descriptor not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ECONNNOTEQUAL, "SDP connection line not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EATTRNOTEQUAL, "SDP attributes not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EDIRNOTEQUAL, "SDP media direction not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EFMTPNOTEQUAL, "SDP fmtp attribute not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ERTPMAPNOTEQUAL, "SDP rtpmap attribute not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ESESSNOTEQUAL, "SDP session descriptor not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_EORIGINNOTEQUAL, "SDP origin line not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ENAMENOTEQUAL, "SDP name/subject line not equal" ), + PJ_BUILD_ERR( PJMEDIA_SDP_ETIMENOTEQUAL, "SDP time line not equal" ), /* Codec errors. */ - { PJMEDIA_CODEC_EUNSUP, "Unsupported media codec" }, - { PJMEDIA_CODEC_EFAILED, "Codec internal creation error" }, - { PJMEDIA_CODEC_EFRMTOOSHORT, "Codec frame is too short" }, - { PJMEDIA_CODEC_EPCMTOOSHORT, "PCM frame is too short" }, - { PJMEDIA_CODEC_EFRMINLEN, "Invalid codec frame length" }, + PJ_BUILD_ERR( PJMEDIA_CODEC_EUNSUP, "Unsupported media codec" ), + PJ_BUILD_ERR( PJMEDIA_CODEC_EFAILED, "Codec internal creation error" ), + PJ_BUILD_ERR( PJMEDIA_CODEC_EFRMTOOSHORT, "Codec frame is too short" ), + PJ_BUILD_ERR( PJMEDIA_CODEC_EPCMTOOSHORT, "PCM frame is too short" ), + PJ_BUILD_ERR( PJMEDIA_CODEC_EFRMINLEN, "Invalid codec frame length" ), /* Media errors. */ - { PJMEDIA_EINVALIDIP, "Invalid remote media (IP) address" }, - { PJMEDIA_EASYMCODEC, "Asymetric media codec is not supported" }, - { PJMEDIA_EINVALIDPT, "Invalid media payload type" }, - { PJMEDIA_EMISSINGRTPMAP, "Missing rtpmap in media description" }, - { PJMEDIA_EINVALIMEDIATYPE, "Invalid media type" }, - { PJMEDIA_EREMOTENODTMF, "Remote does not support DTMF" }, - { PJMEDIA_RTP_EINDTMF, "Invalid DTMF digit" }, - { PJMEDIA_RTP_EREMNORFC2833, "Remote does not support RFC 2833" }, + PJ_BUILD_ERR( PJMEDIA_EINVALIDIP, "Invalid remote media (IP) address" ), + PJ_BUILD_ERR( PJMEDIA_EASYMCODEC, "Asymetric media codec is not supported" ), + PJ_BUILD_ERR( PJMEDIA_EINVALIDPT, "Invalid media payload type" ), + PJ_BUILD_ERR( PJMEDIA_EMISSINGRTPMAP, "Missing rtpmap in media description" ), + PJ_BUILD_ERR( PJMEDIA_EINVALIMEDIATYPE, "Invalid media type" ), + PJ_BUILD_ERR( PJMEDIA_EREMOTENODTMF, "Remote does not support DTMF" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINDTMF, "Invalid DTMF digit" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EREMNORFC2833,"Remote does not support RFC 2833" ), /* RTP session errors. */ - { PJMEDIA_RTP_EINPKT, "Invalid RTP packet" }, - { PJMEDIA_RTP_EINPACK, "Invalid RTP packing (internal error)" }, - { PJMEDIA_RTP_EINVER, "Invalid RTP version" }, - { PJMEDIA_RTP_EINSSRC, "RTP packet SSRC id mismatch" }, - { PJMEDIA_RTP_EINPT, "RTP packet payload type mismatch" }, - { PJMEDIA_RTP_EINLEN, "Invalid RTP packet length" }, - { PJMEDIA_RTP_ESESSRESTART, "RTP session restarted" }, - { PJMEDIA_RTP_ESESSPROBATION, "RTP session in probation" }, - { PJMEDIA_RTP_EBADSEQ, "Bad sequence number in RTP packet" }, - { PJMEDIA_RTP_EBADDEST, "RTP media port destination is not configured" }, - { PJMEDIA_RTP_ENOCONFIG, "RTP is not configured" }, + PJ_BUILD_ERR( PJMEDIA_RTP_EINPKT, "Invalid RTP packet" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINPACK, "Invalid RTP packing (internal error)" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINVER, "Invalid RTP version" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINSSRC, "RTP packet SSRC id mismatch" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINPT, "RTP packet payload type mismatch" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EINLEN, "Invalid RTP packet length" ), + PJ_BUILD_ERR( PJMEDIA_RTP_ESESSRESTART, "RTP session restarted" ), + PJ_BUILD_ERR( PJMEDIA_RTP_ESESSPROBATION, "RTP session in probation" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EBADSEQ, "Bad sequence number in RTP packet" ), + PJ_BUILD_ERR( PJMEDIA_RTP_EBADDEST, "RTP media port destination is not configured" ), + PJ_BUILD_ERR( PJMEDIA_RTP_ENOCONFIG, "RTP is not configured" ), /* Media port errors: */ - { PJMEDIA_ENOTCOMPATIBLE, "Media ports are not compatible" }, - { PJMEDIA_ENCCLOCKRATE, "Media ports have incompatible clock rate" }, - { PJMEDIA_ENCSAMPLESPFRAME, "Media ports have incompatible samples per frame" }, - { PJMEDIA_ENCTYPE, "Media ports have incompatible media type" }, - { PJMEDIA_ENCBITS, "Media ports have incompatible bits per sample" }, - { PJMEDIA_ENCBYTES, "Media ports have incompatible bytes per frame" }, - { PJMEDIA_ENCCHANNEL, "Media ports have incompatible number of channels" }, + PJ_BUILD_ERR( PJMEDIA_ENOTCOMPATIBLE, "Media ports are not compatible" ), + PJ_BUILD_ERR( PJMEDIA_ENCCLOCKRATE, "Media ports have incompatible clock rate" ), + PJ_BUILD_ERR( PJMEDIA_ENCSAMPLESPFRAME, "Media ports have incompatible samples per frame" ), + PJ_BUILD_ERR( PJMEDIA_ENCTYPE, "Media ports have incompatible media type" ), + PJ_BUILD_ERR( PJMEDIA_ENCBITS, "Media ports have incompatible bits per sample" ), + PJ_BUILD_ERR( PJMEDIA_ENCBYTES, "Media ports have incompatible bytes per frame" ), + PJ_BUILD_ERR( PJMEDIA_ENCCHANNEL, "Media ports have incompatible number of channels" ), /* Media file errors: */ - { PJMEDIA_ENOTVALIDWAVE, "Not a valid WAVE file" }, - { PJMEDIA_EWAVEUNSUPP, "Unsupported WAVE file format" }, - { PJMEDIA_EWAVETOOSHORT, "WAVE file too short" }, - { PJMEDIA_EFRMFILETOOBIG, "Sound frame too large for file buffer"}, + PJ_BUILD_ERR( PJMEDIA_ENOTVALIDWAVE, "Not a valid WAVE file" ), + PJ_BUILD_ERR( PJMEDIA_EWAVEUNSUPP, "Unsupported WAVE file format" ), + PJ_BUILD_ERR( PJMEDIA_EWAVETOOSHORT, "WAVE file too short" ), + PJ_BUILD_ERR( PJMEDIA_EFRMFILETOOBIG, "Sound frame too large for file buffer"), /* Sound device errors: */ - { PJMEDIA_ENOSNDREC, "No suitable sound capture device" }, - { PJMEDIA_ENOSNDPLAY, "No suitable sound playback device" }, - { PJMEDIA_ESNDINDEVID, "Invalid sound device ID" }, - { PJMEDIA_ESNDINSAMPLEFMT, "Invalid sample format for sound device" }, + PJ_BUILD_ERR( PJMEDIA_ENOSNDREC, "No suitable sound capture device" ), + PJ_BUILD_ERR( PJMEDIA_ENOSNDPLAY, "No suitable sound playback device" ), + PJ_BUILD_ERR( PJMEDIA_ESNDINDEVID, "Invalid sound device ID" ), + PJ_BUILD_ERR( PJMEDIA_ESNDINSAMPLEFMT, "Invalid sample format for sound device" ), }; #endif /* PJ_HAS_ERROR_STRING */ diff --git a/pjsip/src/pjsip/sip_errno.c b/pjsip/src/pjsip/sip_errno.c index c9b74acf..c32481c8 100644 --- a/pjsip/src/pjsip/sip_errno.c +++ b/pjsip/src/pjsip/sip_errno.c @@ -34,80 +34,80 @@ static const struct } err_str[] = { /* Generic SIP errors */ - { PJSIP_EBUSY, "Object is busy" }, - { PJSIP_ETYPEEXISTS , "Object with the same type exists" }, - { PJSIP_ESHUTDOWN, "SIP stack shutting down" }, - { PJSIP_ENOTINITIALIZED, "SIP object is not initialized." }, + PJ_BUILD_ERR( PJSIP_EBUSY, "Object is busy" ), + PJ_BUILD_ERR( PJSIP_ETYPEEXISTS , "Object with the same type exists" ), + PJ_BUILD_ERR( PJSIP_ESHUTDOWN, "SIP stack shutting down" ), + PJ_BUILD_ERR( PJSIP_ENOTINITIALIZED,"SIP object is not initialized." ), /* Messaging errors */ - { PJSIP_EINVALIDMSG, "Invalid message/syntax error" }, - { PJSIP_ENOTREQUESTMSG, "Expecting request message"}, - { PJSIP_ENOTRESPONSEMSG, "Expecting response message"}, - { PJSIP_EMSGTOOLONG, "Message too long" }, - { PJSIP_EPARTIALMSG, "Partial message" }, + PJ_BUILD_ERR( PJSIP_EINVALIDMSG, "Invalid message/syntax error" ), + PJ_BUILD_ERR( PJSIP_ENOTREQUESTMSG, "Expecting request message"), + PJ_BUILD_ERR( PJSIP_ENOTRESPONSEMSG,"Expecting response message"), + PJ_BUILD_ERR( PJSIP_EMSGTOOLONG, "Message too long" ), + PJ_BUILD_ERR( PJSIP_EPARTIALMSG, "Partial message" ), - { PJSIP_EINVALIDSTATUS, "Invalid/unexpected SIP status code"}, + PJ_BUILD_ERR( PJSIP_EINVALIDSTATUS, "Invalid/unexpected SIP status code"), - { PJSIP_EINVALIDURI, "Invalid URI" }, - { PJSIP_EINVALIDSCHEME, "Invalid URI scheme" }, - { PJSIP_EMISSINGREQURI, "Missing Request-URI" }, - { PJSIP_EINVALIDREQURI, "Invalid Request URI" }, - { PJSIP_EURITOOLONG, "URI is too long" }, + PJ_BUILD_ERR( PJSIP_EINVALIDURI, "Invalid URI" ), + PJ_BUILD_ERR( PJSIP_EINVALIDSCHEME, "Invalid URI scheme" ), + PJ_BUILD_ERR( PJSIP_EMISSINGREQURI, "Missing Request-URI" ), + PJ_BUILD_ERR( PJSIP_EINVALIDREQURI, "Invalid Request URI" ), + PJ_BUILD_ERR( PJSIP_EURITOOLONG, "URI is too long" ), - { PJSIP_EMISSINGHDR, "Missing required header(s)" }, - { PJSIP_EINVALIDHDR, "Invalid header field"}, - { PJSIP_EINVALIDVIA, "Invalid Via header" }, - { PJSIP_EMULTIPLEVIA, "Multiple Via headers in response" }, + PJ_BUILD_ERR( PJSIP_EMISSINGHDR, "Missing required header(s)" ), + PJ_BUILD_ERR( PJSIP_EINVALIDHDR, "Invalid header field"), + PJ_BUILD_ERR( PJSIP_EINVALIDVIA, "Invalid Via header" ), + PJ_BUILD_ERR( PJSIP_EMULTIPLEVIA, "Multiple Via headers in response" ), - { PJSIP_EMISSINGBODY, "Missing message body" }, - { PJSIP_EINVALIDMETHOD, "Invalid/unexpected method" }, + PJ_BUILD_ERR( PJSIP_EMISSINGBODY, "Missing message body" ), + PJ_BUILD_ERR( PJSIP_EINVALIDMETHOD, "Invalid/unexpected method" ), /* Transport errors */ - { PJSIP_EUNSUPTRANSPORT, "Unsupported transport"}, - { PJSIP_EPENDINGTX, "Transmit buffer already pending"}, - { PJSIP_ERXOVERFLOW, "Rx buffer overflow"}, - { PJSIP_EBUFDESTROYED, "Buffer destroyed"}, + PJ_BUILD_ERR( PJSIP_EUNSUPTRANSPORT,"Unsupported transport"), + PJ_BUILD_ERR( PJSIP_EPENDINGTX, "Transmit buffer already pending"), + PJ_BUILD_ERR( PJSIP_ERXOVERFLOW, "Rx buffer overflow"), + PJ_BUILD_ERR( PJSIP_EBUFDESTROYED, "Buffer destroyed"), /* Transaction errors */ - { PJSIP_ETSXDESTROYED, "Transaction has been destroyed"}, - { PJSIP_ENOTSX, "No transaction is associated with the object " - "(expecting stateful processing)" }, + PJ_BUILD_ERR( PJSIP_ETSXDESTROYED, "Transaction has been destroyed"), + PJ_BUILD_ERR( PJSIP_ENOTSX, "No transaction is associated with the object " + "(expecting stateful processing)" ), /* URI comparison status */ - { PJSIP_ECMPSCHEME, "URI scheme mismatch" }, - { PJSIP_ECMPUSER, "URI user part mismatch" }, - { PJSIP_ECMPPASSWD, "URI password part mismatch" }, - { PJSIP_ECMPHOST, "URI host part mismatch" }, - { PJSIP_ECMPPORT, "URI port mismatch" }, - { PJSIP_ECMPTRANSPORTPRM, "URI transport param mismatch" }, - { PJSIP_ECMPTTLPARAM, "URI ttl param mismatch" }, - { PJSIP_ECMPUSERPARAM, "URI user param mismatch" }, - { PJSIP_ECMPMETHODPARAM, "URI method param mismatch" }, - { PJSIP_ECMPMADDRPARAM, "URI maddr param mismatch" }, - { PJSIP_ECMPOTHERPARAM, "URI other param mismatch" }, - { PJSIP_ECMPHEADERPARAM, "URI header parameter mismatch" }, + PJ_BUILD_ERR( PJSIP_ECMPSCHEME, "URI scheme mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPUSER, "URI user part mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPPASSWD, "URI password part mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPHOST, "URI host part mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPPORT, "URI port mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPTRANSPORTPRM,"URI transport param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPTTLPARAM, "URI ttl param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPUSERPARAM, "URI user param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPMETHODPARAM,"URI method param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPMADDRPARAM, "URI maddr param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPOTHERPARAM, "URI other param mismatch" ), + PJ_BUILD_ERR( PJSIP_ECMPHEADERPARAM,"URI header parameter mismatch" ), /* Authentication. */ - { PJSIP_EFAILEDCREDENTIAL, "Credential failed to authenticate"}, - { PJSIP_ENOCREDENTIAL, "No suitable credential"}, - { PJSIP_EINVALIDALGORITHM, "Invalid/unsupported digest algorithm" }, - { PJSIP_EINVALIDQOP, "Invalid/unsupported digest qop" }, - { PJSIP_EINVALIDAUTHSCHEME, "Unsupported authentication scheme" }, - { PJSIP_EAUTHNOPREVCHAL, "No previous challenge" }, - { PJSIP_EAUTHNOAUTH, "No suitable authorization header" }, - { PJSIP_EAUTHACCNOTFOUND, "Account or credential not found" }, - { PJSIP_EAUTHACCDISABLED, "Account or credential is disabled" }, - { PJSIP_EAUTHINVALIDREALM, "Invalid authorization realm"}, - { PJSIP_EAUTHINVALIDDIGEST, "Invalid authorization digest" }, + PJ_BUILD_ERR( PJSIP_EFAILEDCREDENTIAL, "Credential failed to authenticate"), + PJ_BUILD_ERR( PJSIP_ENOCREDENTIAL, "No suitable credential"), + PJ_BUILD_ERR( PJSIP_EINVALIDALGORITHM, "Invalid/unsupported digest algorithm" ), + PJ_BUILD_ERR( PJSIP_EINVALIDQOP, "Invalid/unsupported digest qop" ), + PJ_BUILD_ERR( PJSIP_EINVALIDAUTHSCHEME,"Unsupported authentication scheme" ), + PJ_BUILD_ERR( PJSIP_EAUTHNOPREVCHAL, "No previous challenge" ), + PJ_BUILD_ERR( PJSIP_EAUTHNOAUTH, "No suitable authorization header" ), + PJ_BUILD_ERR( PJSIP_EAUTHACCNOTFOUND, "Account or credential not found" ), + PJ_BUILD_ERR( PJSIP_EAUTHACCDISABLED, "Account or credential is disabled" ), + PJ_BUILD_ERR( PJSIP_EAUTHINVALIDREALM, "Invalid authorization realm"), + PJ_BUILD_ERR( PJSIP_EAUTHINVALIDDIGEST,"Invalid authorization digest" ), /* UA/dialog layer. */ - { PJSIP_EMISSINGTAG, "Missing From/To tag parameter" }, - { PJSIP_ENOTREFER, "Expecting REFER request"} , - { PJSIP_ENOREFERSESSION, "Not associated with REFER subscription"}, + PJ_BUILD_ERR( PJSIP_EMISSINGTAG, "Missing From/To tag parameter" ), + PJ_BUILD_ERR( PJSIP_ENOTREFER, "Expecting REFER request") , + PJ_BUILD_ERR( PJSIP_ENOREFERSESSION,"Not associated with REFER subscription"), /* Invite session. */ - { PJSIP_ESESSIONTERMINATED, "INVITE session already terminated" }, - { PJSIP_ESESSIONSTATE, "Invalid INVITE session state" }, + PJ_BUILD_ERR( PJSIP_ESESSIONTERMINATED, "INVITE session already terminated" ), + PJ_BUILD_ERR( PJSIP_ESESSIONSTATE, "Invalid INVITE session state" ), }; |