Ignore:
Timestamp:
Mar 24, 2007 1:00:30 PM (17 years ago)
Author:
bennylp
Message:

ICE (work in progress): implement error codes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/src/pjnath/stun_msg.c

    r1094 r1101  
    6565    { PJ_STUN_SC_STALE_NONCE,               "Stale Nonce"}, 
    6666    { PJ_STUN_SC_TRANSITIONING,             "Active Destination Already Set"}, 
    67     { PJ_STUN_SC_WRONG_USERNAME,            "Wrong Username"}, 
    6867    { PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO,    "Unsupported Transport Protocol"}, 
    6968    { PJ_STUN_SC_INVALID_IP_ADDR,           "Invalid IP Address"}, 
     
    514513PJ_DEF(pj_str_t) pj_stun_get_err_reason(int err_code) 
    515514{ 
     515#if 0 
     516    /* Find error using linear search */ 
    516517    unsigned i; 
    517518 
     
    521522    } 
    522523    return pj_str(NULL); 
     524#else 
     525    /* Find error message using binary search */ 
     526    int first = 0; 
     527    int n = PJ_ARRAY_SIZE(stun_err_msg_map); 
     528 
     529    while (n > 0) { 
     530        int half = n/2; 
     531        int mid = first + half; 
     532 
     533        if (stun_err_msg_map[mid].err_code < err_code) { 
     534            first = mid+1; 
     535            n -= (half+1); 
     536        } else if (stun_err_msg_map[mid].err_code > err_code) { 
     537            n = half; 
     538        } else { 
     539            first = mid; 
     540            break; 
     541        } 
     542    } 
     543 
     544 
     545    if (stun_err_msg_map[first].err_code == err_code) { 
     546        return pj_str((char*)stun_err_msg_map[first].err_msg); 
     547    } else { 
     548        return pj_str(NULL); 
     549    } 
     550#endif 
    523551} 
    524552 
     
    15801608 
    15811609    if (pdu_len < sizeof(pj_stun_msg_hdr)) 
    1582         return PJNATH_ESTUNINMSGLEN; 
     1610        return PJNATH_EINSTUNMSGLEN; 
    15831611 
    15841612    /* First byte of STUN message is always 0x00 or 0x01. */ 
    15851613    if (*pdu != 0x00 && *pdu != 0x01) 
    1586         return PJNATH_ESTUNINMSGTYPE; 
     1614        return PJNATH_EINSTUNMSGTYPE; 
    15871615 
    15881616    /* Check the PDU length */ 
     
    15911619        ((options & PJ_STUN_IS_DATAGRAM) && msg_len + 20 != pdu_len)) 
    15921620    { 
    1593         return PJNATH_ESTUNINMSGLEN; 
     1621        return PJNATH_EINSTUNMSGLEN; 
    15941622    } 
    15951623 
     
    16351663 
    16361664    PJ_ASSERT_RETURN(PJ_STUN_IS_REQUEST(msg_type),  
    1637                      PJNATH_ESTUNINMSGTYPE); 
     1665                     PJNATH_EINSTUNMSGTYPE); 
    16381666 
    16391667    /* Create response or error response */ 
     
    17741802                } 
    17751803 
    1776                 return PJNATH_ESTUNUNKNOWNATTR; 
     1804                return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_UNKNOWN_ATTRIBUTE); 
    17771805            } 
    17781806 
     
    21032131            /* Should not happen for message generated by us */ 
    21042132            pj_assert(PJ_FALSE); 
    2105             return PJNATH_ESTUNNOUSERNAME; 
     2133            return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_MISSING_USERNAME); 
    21062134        } 
    21072135 
Note: See TracChangeset for help on using the changeset viewer.