Ignore:
Timestamp:
May 1, 2007 12:25:01 PM (14 years ago)
Author:
bennylp
Message:

Ported PJLIB-UTIL and PJNATH to Symbian

File:
1 edited

Legend:

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

    r1031 r1239  
    6767 
    6868    /* Initialize header */ 
    69     hdr = packet; 
     69    hdr = (pj_dns_hdr*) packet; 
    7070    pj_bzero(hdr, sizeof(struct pj_dns_hdr)); 
    7171    hdr->id = pj_htons(id); 
     
    111111 * it may contain pointers when name compression is applied)  
    112112 */ 
    113 static pj_status_t get_name_len(int rec_counter, const char *pkt,  
    114                                 const char *start, const char *max,  
     113static pj_status_t get_name_len(int rec_counter, const pj_uint8_t *pkt,  
     114                                const pj_uint8_t *start, const pj_uint8_t *max, 
    115115                                int *parsed_len, int *name_len) 
    116116{ 
    117     const char *p; 
     117    const pj_uint8_t *p; 
    118118    pj_status_t status; 
    119119 
     
    181181 * it may contain pointers when compression is applied). 
    182182 */ 
    183 static pj_status_t get_name(int rec_counter, const char *pkt,  
    184                             const char *start, const char *max, 
     183static pj_status_t get_name(int rec_counter, const pj_uint8_t *pkt,  
     184                            const pj_uint8_t *start, const pj_uint8_t *max, 
    185185                            pj_str_t *name) 
    186186{ 
    187     const char *p; 
     187    const pj_uint8_t *p; 
    188188    pj_status_t status; 
    189189 
     
    242242/* Skip query records. */ 
    243243static pj_status_t parse_query(pj_dns_parsed_query *q, pj_pool_t *pool, 
    244                                const char *pkt, const char *start,  
    245                                const char *max, int *parsed_len) 
    246 { 
    247     const char *p = start; 
     244                               const pj_uint8_t *pkt, const pj_uint8_t *start, 
     245                               const pj_uint8_t *max, int *parsed_len) 
     246{ 
     247    const pj_uint8_t *p = start; 
    248248    int name_len, name_part_len; 
    249249    pj_status_t status; 
     
    255255 
    256256    /* Allocate memory for the name */ 
    257     q->name.ptr = pj_pool_alloc(pool, name_len+4); 
     257    q->name.ptr = (char*) pj_pool_alloc(pool, name_len+4); 
    258258    q->name.slen = 0; 
    259259 
     
    283283/* Parse RR records */ 
    284284static pj_status_t parse_rr(pj_dns_parsed_rr *rr, pj_pool_t *pool, 
    285                             const char *pkt, 
    286                             const char *start, const char *max,  
     285                            const pj_uint8_t *pkt, 
     286                            const pj_uint8_t *start, const pj_uint8_t *max, 
    287287                            int *parsed_len) 
    288288{ 
    289     const char *p = start; 
     289    const pj_uint8_t *p = start; 
    290290    int name_len, name_part_len; 
    291291    pj_status_t status; 
     
    297297 
    298298    /* Allocate memory for the name */ 
    299     rr->name.ptr = pj_pool_alloc(pool, name_len+4); 
     299    rr->name.ptr = (char*) pj_pool_alloc(pool, name_len+4); 
    300300    rr->name.slen = 0; 
    301301 
     
    355355 
    356356        /* Allocate memory for the name */ 
    357         rr->rdata.cname.name.ptr = pj_pool_alloc(pool, name_len); 
     357        rr->rdata.cname.name.ptr = (char*) pj_pool_alloc(pool, name_len); 
    358358        rr->rdata.cname.name.slen = 0; 
    359359 
     
    388388 
    389389        /* Allocate memory for the name */ 
    390         rr->rdata.srv.target.ptr = pj_pool_alloc(pool, name_len); 
     390        rr->rdata.srv.target.ptr = (char*) pj_pool_alloc(pool, name_len); 
    391391        rr->rdata.srv.target.slen = 0; 
    392392 
     
    419419{ 
    420420    pj_dns_parsed_packet *res; 
    421     char *start, *end; 
     421    const pj_uint8_t *start, *end; 
    422422    pj_status_t status; 
    423423    unsigned i; 
     
    431431 
    432432    /* Create the structure */ 
    433     res = pj_pool_zalloc(pool, sizeof(pj_dns_parsed_packet)); 
     433    res = PJ_POOL_ZALLOC_T(pool, pj_dns_parsed_packet); 
    434434 
    435435    /* Copy the DNS header, and convert endianness to host byte order */ 
     
    443443 
    444444    /* Mark start and end of payload */ 
    445     start = ((char*)packet) + sizeof(pj_dns_hdr); 
    446     end = ((char*)packet) + size; 
     445    start = ((const pj_uint8_t*)packet) + sizeof(pj_dns_hdr); 
     446    end = ((const pj_uint8_t*)packet) + size; 
    447447 
    448448    /* Parse query records (if any). 
    449449     */ 
    450450    if (res->hdr.qdcount) { 
    451         res->q = pj_pool_zalloc(pool, res->hdr.qdcount * 
     451        res->q = (pj_dns_parsed_query*) 
     452                 pj_pool_zalloc(pool, res->hdr.qdcount * 
    452453                                      sizeof(pj_dns_parsed_query)); 
    453454        for (i=0; i<res->hdr.qdcount; ++i) { 
    454455            int parsed_len = 0; 
    455456             
    456             status = parse_query(&res->q[i], pool, packet, start, end, 
    457                                 &parsed_len); 
     457            status = parse_query(&res->q[i], pool, (const pj_uint8_t*)packet,  
     458                                 start, end, &parsed_len); 
    458459            if (status != PJ_SUCCESS) 
    459460                return status; 
     
    465466    /* Parse answer, if any */ 
    466467    if (res->hdr.anscount) { 
    467         res->ans = pj_pool_zalloc(pool, res->hdr.anscount *  
     468        res->ans = (pj_dns_parsed_rr*) 
     469                   pj_pool_zalloc(pool, res->hdr.anscount *  
    468470                                        sizeof(pj_dns_parsed_rr)); 
    469471 
     
    471473            int parsed_len; 
    472474 
    473             status = parse_rr(&res->ans[i], pool, packet, start, end,  
    474                               &parsed_len); 
     475            status = parse_rr(&res->ans[i], pool, (const pj_uint8_t*)packet,  
     476                              start, end, &parsed_len); 
    475477            if (status != PJ_SUCCESS) 
    476478                return status; 
     
    482484    /* Parse authoritative NS records, if any */ 
    483485    if (res->hdr.nscount) { 
    484         res->ns = pj_pool_zalloc(pool, res->hdr.nscount * 
     486        res->ns = (pj_dns_parsed_rr*) 
     487                  pj_pool_zalloc(pool, res->hdr.nscount * 
    485488                                       sizeof(pj_dns_parsed_rr)); 
    486489 
     
    488491            int parsed_len; 
    489492 
    490             status = parse_rr(&res->ns[i], pool, packet, start, end,  
    491                               &parsed_len); 
     493            status = parse_rr(&res->ns[i], pool, (const pj_uint8_t*)packet,  
     494                              start, end, &parsed_len); 
    492495            if (status != PJ_SUCCESS) 
    493496                return status; 
     
    499502    /* Parse additional RR answer, if any */ 
    500503    if (res->hdr.arcount) { 
    501         res->arr = pj_pool_zalloc(pool, res->hdr.arcount * 
     504        res->arr = (pj_dns_parsed_rr*) 
     505                   pj_pool_zalloc(pool, res->hdr.arcount * 
    502506                                        sizeof(pj_dns_parsed_rr)); 
    503507 
     
    505509            int parsed_len; 
    506510 
    507             status = parse_rr(&res->arr[i], pool, packet, start, end,  
    508                               &parsed_len); 
     511            status = parse_rr(&res->arr[i], pool, (const pj_uint8_t*)packet,  
     512                              start, end, &parsed_len); 
    509513            if (status != PJ_SUCCESS) 
    510514                return status; 
     
    614618 
    615619    /* Create packet and copy header */ 
    616     *p_dst = dst = pj_pool_zalloc(pool, sizeof(pj_dns_parsed_packet)); 
     620    *p_dst = dst = PJ_POOL_ZALLOC_T(pool, pj_dns_parsed_packet); 
    617621    pj_memcpy(&dst->hdr, &p->hdr, sizeof(p->hdr)); 
    618622 
     
    629633    /* Copy query section */ 
    630634    if (p->hdr.qdcount && (options & PJ_DNS_NO_QD)==0) { 
    631         dst->q = pj_pool_alloc(pool, p->hdr.qdcount *  
     635        dst->q = (pj_dns_parsed_query*) 
     636                 pj_pool_alloc(pool, p->hdr.qdcount *  
    632637                                     sizeof(pj_dns_parsed_query)); 
    633638        for (i=0; i<p->hdr.qdcount; ++i) { 
     
    640645    /* Copy answer section */ 
    641646    if (p->hdr.anscount && (options & PJ_DNS_NO_ANS)==0) { 
    642         dst->ans = pj_pool_alloc(pool, p->hdr.anscount *  
     647        dst->ans = (pj_dns_parsed_rr*) 
     648                   pj_pool_alloc(pool, p->hdr.anscount *  
    643649                                       sizeof(pj_dns_parsed_rr)); 
    644650        for (i=0; i<p->hdr.anscount; ++i) { 
     
    651657    /* Copy NS section */ 
    652658    if (p->hdr.nscount && (options & PJ_DNS_NO_NS)==0) { 
    653         dst->ns = pj_pool_alloc(pool, p->hdr.nscount *  
     659        dst->ns = (pj_dns_parsed_rr*) 
     660                  pj_pool_alloc(pool, p->hdr.nscount *  
    654661                                      sizeof(pj_dns_parsed_rr)); 
    655662        for (i=0; i<p->hdr.nscount; ++i) { 
     
    662669    /* Copy additional info section */ 
    663670    if (p->hdr.arcount && (options & PJ_DNS_NO_AR)==0) { 
    664         dst->arr = pj_pool_alloc(pool, p->hdr.arcount *  
     671        dst->arr = (pj_dns_parsed_rr*) 
     672                   pj_pool_alloc(pool, p->hdr.arcount *  
    665673                                       sizeof(pj_dns_parsed_rr)); 
    666674        for (i=0; i<p->hdr.arcount; ++i) { 
Note: See TracChangeset for help on using the changeset viewer.