Changeset 953

Show
Ignore:
Timestamp:
02/18/07 20:39:27 (6 years ago)
Author:
ahu
Message:

add stripDot() for use by bindbackend, spiff up zoneparser-tng.cc to know about the 'relative' directory

Location:
trunk/pdns/pdns
Files:
4 modified

Legend:

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

    r950 r953  
    198198  int ret=Utility::writev(outsock,iov,2); 
    199199 
    200   if(ret<0)  // "EOF is error" - we can't deal with EAGAIN errors at this stage yet 
     200  if(ret <= 0)  // "EOF is error" - we can't deal with EAGAIN errors at this stage yet 
    201201    return -1; 
    202202 
     
    588588  } 
    589589} 
     590 
     591string stripDot(const string& dom) 
     592{ 
     593  if(dom.empty()) 
     594    return dom; 
     595 
     596  if(dom[dom.size()-1]!='.') 
     597    return dom; 
     598 
     599  return dom.substr(0,dom.size()-1); 
     600} 
  • trunk/pdns/pdns/misc.hh

    r931 r953  
    384384  return ret; 
    385385} 
     386 
     387string stripDot(const string& dom); 
     388 
    386389#endif 
  • trunk/pdns/pdns/zoneparser-tng.cc

    r952 r953  
    3030#include <boost/lexical_cast.hpp> 
    3131 
    32 ZoneParserTNG::ZoneParserTNG(const string& fname, const string& zname) : d_zonename(zname), d_defaultttl(3600) 
     32ZoneParserTNG::ZoneParserTNG(const string& fname, const string& zname, const string& reldir) : d_reldir(reldir), d_zonename(zname), d_defaultttl(3600) 
    3333{ 
    3434  stackFile(fname); 
     
    181181      d_defaultttl=makeTTLFromZone(makeString(d_line,parts[1])); 
    182182    else if(command=="$INCLUDE" && parts.size() > 1) { 
    183       stackFile(unquotify(makeString(d_line, parts[1]))); 
     183      string fname=unquotify(makeString(d_line, parts[1])); 
     184      if(!fname.empty() && fname[0]!='/' && !d_reldir.empty()) 
     185        fname=d_reldir+"/"+fname; 
     186      stackFile(fname); 
    184187    } 
    185188    else if(command=="$ORIGIN" && parts.size() > 1) { 
  • trunk/pdns/pdns/zoneparser-tng.hh

    r952 r953  
    2929{ 
    3030public: 
    31   ZoneParserTNG(const string& fname, const string& zname=""); 
     31  ZoneParserTNG(const string& fname, const string& zname="", const string& reldir=""); 
    3232 
    3333  ~ZoneParserTNG(); 
     
    4141  void stackFile(const std::string& fname); 
    4242  stack<FILE *> d_fps; 
     43  string d_reldir; 
    4344  string d_line; 
    4445  string d_prevqname;