Ignore:
Timestamp:
Feb 23, 2007 1:07:54 AM (17 years ago)
Author:
bennylp
Message:

Ticket #121 and #122: Initial implementation of generic STUN transaction, with Binding request as an example

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib-util/src/pjlib-util/stun_msg_dump.c

    r993 r996  
    3333    int len; 
    3434 
    35     len = pj_ansi_snprintf(buffer, end-p, 
     35    len = pj_ansi_snprintf(p, end-p, 
    3636                           "  %s: length=%d", 
    3737                           pj_stun_get_attr_name(ahdr->type), 
     
    5959 
    6060            if (attr->addr.addr.sa_family == PJ_AF_INET) { 
    61                 len = pj_ansi_snprintf(buffer, end-p, 
     61                len = pj_ansi_snprintf(p, end-p, 
    6262                                       ", IPv4 addr=%s:%d\n", 
    6363                                       pj_inet_ntoa(attr->addr.ipv4.sin_addr), 
     
    6565 
    6666            } else if (attr->addr.addr.sa_family == PJ_AF_INET6) { 
    67                 len = pj_ansi_snprintf(buffer, end-p, 
     67                len = pj_ansi_snprintf(p, end-p, 
    6868                                       ", IPv6 addr present\n"); 
    6969            } else { 
    70                 len = pj_ansi_snprintf(buffer, end-p, 
     70                len = pj_ansi_snprintf(p, end-p, 
    7171                                       ", INVALID ADDRESS FAMILY!\n"); 
    7272            } 
     
    8888 
    8989            attr = (const pj_stun_generic_uint_attr*)ahdr; 
    90             len = pj_ansi_snprintf(buffer, end-p, 
    91                                    ", value=%d (%x)\n", 
     90            len = pj_ansi_snprintf(p, end-p, 
     91                                   ", value=%d (0x%x)\n", 
    9292                                   (pj_uint32_t)attr->value, 
    9393                                   (pj_uint32_t)attr->value); 
     
    104104 
    105105            attr = (pj_stun_generic_string_attr*)ahdr; 
    106             len = pj_ansi_snprintf(buffer, end-p, 
     106            len = pj_ansi_snprintf(p, end-p, 
    107107                                   ", value=\"%.*s\"\n", 
    108108                                   (int)attr->value.slen, 
     
    116116 
    117117            attr = (const pj_stun_error_code_attr*) ahdr; 
    118             len = pj_ansi_snprintf(buffer, end-p, 
     118            len = pj_ansi_snprintf(p, end-p, 
    119119                                   ", err_code=%d, reason=\"%.*s\"\n", 
    120120                                   attr->err_class*100 + attr->number, 
     
    131131            attr = (const pj_stun_unknown_attr*) ahdr; 
    132132 
    133             len = pj_ansi_snprintf(buffer, end-p, 
     133            len = pj_ansi_snprintf(p, end-p, 
    134134                                   ", unknown list:"); 
    135135            APPLY(); 
    136136 
    137137            for (j=0; j<attr->attr_count; ++j) { 
    138                 len = pj_ansi_snprintf(buffer, end-p, 
     138                len = pj_ansi_snprintf(p, end-p, 
    139139                                       " %d", 
    140140                                       (int)attr->attrs[j]); 
     
    148148    case PJ_STUN_ATTR_USE_CANDIDATE: 
    149149    default: 
    150         len = pj_ansi_snprintf(buffer, end-p, "\n"); 
     150        len = pj_ansi_snprintf(p, end-p, "\n"); 
    151151 
    152152        break; 
     
    167167PJ_DEF(char*) pj_stun_msg_dump(const pj_stun_msg *msg, 
    168168                               char *buffer, 
    169                                unsigned *length) 
     169                               unsigned length, 
     170                               unsigned *printed_len) 
    170171{ 
    171172    char *p, *end; 
     
    176177 
    177178    p = buffer; 
    178     end = buffer + (*length); 
     179    end = buffer + length; 
    179180 
    180181    len = pj_ansi_snprintf(p, end-p, "STUN %s %s\n", 
     
    184185 
    185186    len = pj_ansi_snprintf(p, end-p,  
    186                             " Hdr: length=%d, magic=%x, tsx_id=%x %x %x\n" 
    187                             " Attributes:\n", 
     187                           " Hdr: length=%d, magic=%08x, tsx_id=%08x %08x %08x\n" 
     188                           " Attributes:\n", 
    188189                           msg->hdr.length, 
    189190                           msg->hdr.magic, 
     
    200201on_return: 
    201202    *p = '\0'; 
    202     *length = (p-buffer); 
     203    if (printed_len) 
     204        *printed_len = (p-buffer); 
    203205    return buffer; 
    204206 
Note: See TracChangeset for help on using the changeset viewer.