Changeset 440

Show
Ignore:
Timestamp:
07/11/05 20:27:36 (8 years ago)
Author:
ahu
Message:

fix TCP related crashes due to HUUUUGE daum.net records (3.5kbyte!)

Location:
trunk/pdns/pdns
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/pdns/pdns/lwres.cc

    r434 r440  
    9292  } 
    9393  else { 
     94    //    cerr<<"do tcp"<<endl; 
    9495    Socket s(InterNetwork, Stream); 
    9596    IPEndpoint ie(ip, 53); 
     
    9798    s.connect(ie); 
    9899 
    99     int len=htons(p.len); 
     100    unsigned int len=htons(p.len); 
    100101    char *lenP=(char*)&len; 
    101102    const char *msgP=p.getData(); 
     
    122123      return 0; 
    123124    } 
    124  
     125    if(len > d_bufsize) { 
     126      d_bufsize=len; 
     127      delete[] d_buf; 
     128      d_buf = new unsigned char[d_bufsize]; 
     129    } 
    125130    memcpy(d_buf, packet.c_str(), len); 
    126131    d_len=len; 
  • trunk/pdns/pdns/pdns_recursor.cc

    r439 r440  
    247247 
    248248    if(!R->d_tcp) { 
    249       if(R->len > 512)  
     249      if(R->len > 512) { 
    250250        R->truncate(512); 
     251      } 
    251252 
    252253      sendto(R->getSocket(),buffer,R->len,0,(struct sockaddr *)(R->remote),R->d_socklen); 
  • trunk/pdns/pdns/syncres.cc

    r434 r440  
    412412 
    413413      result=d_lwr.result(); 
    414  
     414       
    415415      if(d_lwr.d_tcbit) { 
    416416        if(!doTCP) {