Ignore:
Timestamp:
Mar 2, 2007 2:51:03 PM (17 years ago)
Author:
bennylp
Message:

Fixed ticket #156: Not enough memory to parse DNS packets in resolver (thanks Frank Wiersma)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/pjproject-0.5-stable/pjsip/src/pjsip/sip_resolve.c

    r974 r1033  
    536536            if (pj_stricmp(&rr->name, &query->srv[j].target_name)==0) { 
    537537                unsigned cnt = query->srv[j].addr_cnt; 
    538                 query->srv[j].addr[cnt] = pj_inet_addr(&rr->rdata.a.ip_addr); 
     538                query->srv[j].addr[cnt].s_addr = rr->rdata.a.ip_addr.s_addr; 
    539539                ++query->srv[j].addr_cnt; 
    540540                ++query->host_resolved; 
     
    778778                unsigned j; 
    779779 
    780                 query->srv[i].addr[query->srv[i].addr_cnt++] = 
    781                     pj_inet_addr(&pkt->ans[0].rdata.a.ip_addr); 
     780                query->srv[i].addr[query->srv[i].addr_cnt++].s_addr = 
     781                    pkt->ans[0].rdata.a.ip_addr.s_addr; 
    782782 
    783783                PJ_LOG(5,(query->objname,  
    784                           "DNS A for %.*s: %.*s", 
     784                          "DNS A for %.*s: %s", 
    785785                          (int)query->srv[i].target_name.slen,  
    786786                          query->srv[i].target_name.ptr, 
    787                           (int)pkt->ans[0].rdata.a.ip_addr.slen, 
    788                           pkt->ans[0].rdata.a.ip_addr.ptr)); 
     787                          pj_inet_ntoa(pkt->ans[0].rdata.a.ip_addr))); 
    789788 
    790789                /* Check for multiple IP addresses */ 
     
    792791                            query->srv[i].addr_cnt < ADDR_MAX_COUNT; ++j) 
    793792                { 
    794                     query->srv[i].addr[query->srv[i].addr_cnt++] =  
    795                         pj_inet_addr(&pkt->ans[j].rdata.a.ip_addr); 
     793                    query->srv[i].addr[query->srv[i].addr_cnt++].s_addr =  
     794                        pkt->ans[j].rdata.a.ip_addr.s_addr; 
    796795 
    797796                    PJ_LOG(5,(query->objname,  
    798                               "Additional DNS A for %.*s: %.*s", 
     797                              "Additional DNS A for %.*s: %s", 
    799798                              (int)query->srv[i].target_name.slen,  
    800799                              query->srv[i].target_name.ptr, 
    801                               (int)pkt->ans[j].rdata.a.ip_addr.slen, 
    802                               pkt->ans[j].rdata.a.ip_addr.ptr)); 
     800                              pj_inet_ntoa(pkt->ans[j].rdata.a.ip_addr))); 
    803801                } 
    804802            } 
Note: See TracChangeset for help on using the changeset viewer.