Changeset 174 for trunk/pdns/pdns/communicator.cc
- Timestamp:
- 06/21/03 11:59:08 (10 years ago)
- Files:
-
- 1 modified
-
trunk/pdns/pdns/communicator.cc (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pdns/pdns/communicator.cc
r157 r174 17 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 18 */ 19 19 20 #include "utility.hh" 20 21 #include <errno.h> … … 32 33 33 34 34 void CommunicatorClass::addSuckRequest(const string &domain, const string &master )35 void CommunicatorClass::addSuckRequest(const string &domain, const string &master, bool priority) 35 36 { 36 37 Lock l(&d_lock); … … 40 41 sr.master = master; 41 42 42 d_suckdomains.push(sr); 43 if(priority) { 44 d_suckdomains.push_front(sr); 45 d_havepriosuckrequest=true; 46 } 47 else 48 d_suckdomains.push_back(sr); 43 49 44 50 d_suck_sem.post(); … … 234 240 (sdomains.size()>1 ? "" : "s")<< 235 241 " checking"<<endl; 236 242 243 Resolver resolver; 244 resolver.makeUDPSocket(); 237 245 for(vector<DomainInfo>::const_iterator i=sdomains.begin();i!=sdomains.end();++i) { 238 246 d_slaveschanged=true; … … 240 248 241 249 try { 242 Resolver resolver; 243 int res=resolver.getSoaSerial(i->master,i->zone, &theirserial); 250 if(d_havepriosuckrequest) { 251 d_havepriosuckrequest=false; 252 break; 253 } 254 255 resolver.sendSoaSerialRequest(i->master,i->zone); 256 string master, zone; 257 int res=resolver.getSoaSerialAnswer(master,zone,&theirserial); 258 244 259 if(res<=0) { 245 260 L<<Logger::Error<<"Unable to determine SOA serial for "<<i->zone<<" at "<<i->master<<endl; … … 427 442 Lock l(&d_lock); 428 443 sr=d_suckdomains.front(); 429 d_suckdomains.pop ();444 d_suckdomains.pop_front(); 430 445 } 431 446 suck(sr.domain,sr.master);