Changeset 673
- Timestamp:
- 04/10/06 17:53:19 (4 years ago)
- Files:
-
- 1 modified
-
trunk/pdns/pdns/pdns_recursor.cc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pdns/pdns/pdns_recursor.cc
r672 r673 186 186 } 187 187 188 void set ReceiveBuffer(int fd, uint32_t size)188 void setBuffer(int fd, int optname, uint32_t size) 189 189 { 190 190 uint32_t psize=0; 191 191 socklen_t len=sizeof(psize); 192 192 193 if(!getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&psize, &len) && psize > size) {193 if(!getsockopt(fd, SOL_SOCKET, optname, (char*)&psize, &len) && psize > size) { 194 194 L<<Logger::Error<<"Not decreasing socket buffer size from "<<psize<<" to "<<size<<endl; 195 195 return; 196 196 } 197 197 198 if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&size, sizeof(size)) < 0 )198 if (setsockopt(fd, SOL_SOCKET, optname, (char*)&size, sizeof(size)) < 0 ) 199 199 L<<Logger::Error<<"Warning: unable to raise socket buffer size to "<<size<<": "<<strerror(errno)<<endl; 200 200 } 201 201 202 203 static void setReceiveBuffer(int fd, uint32_t size) 204 { 205 setBuffer(fd, SO_RCVBUF, size); 206 } 207 208 static void setSendBuffer(int fd, uint32_t size) 209 { 210 setBuffer(fd, SO_SNDBUF, size); 211 } 202 212 203 213 static void writePid(void) … … 346 356 L<<Logger::Error<<"Error writing TCP answer to "<<dc->getRemote()<<": "<< (ret ? strerror(errno) : "EOF") <<endl; 347 357 else if((unsigned int)ret != 2 + packet.size()) 348 L<<Logger::Error<<"Oops, partial answer sent to "<<dc->getRemote()<<" - probably would have trouble receiving our answer anyhow (size="<<packet.size()<<")"<<endl;358 L<<Logger::Error<<"Oops, partial answer sent to "<<dc->getRemote()<<" for "<<dc->d_mdp.d_qname<<" (size="<< (2 + packet.size()) <<", sent "<<ret<<")"<<endl; 349 359 } 350 360 … … 466 476 467 477 Utility::setNonBlocking(fd); 478 setSendBuffer(fd, 65000); 468 479 listen(fd, 128); 469 480 s_tcpserversocks.push_back(fd); … … 939 950 } 940 951 catch(MOADNSException& mde) { 941 L<<Logger::Error<<"Unable to parse packet from remote udpclient "<< sockAddrToString((struct sockaddr_in*) &fromaddr, addrlen) <<": "<<mde.what()<<endl;952 L<<Logger::Error<<"Unable to parse packet from remote UDP client "<< sockAddrToString((struct sockaddr_in*) &fromaddr, addrlen) <<": "<<mde.what()<<endl; 942 953 } 943 954 }