HostDnsServiceResolvConf.cpp revision 3f2299591cfeb8a37a3578bef9c44c1790860948
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync/* -*- indent-tabs-mode: nil; -*- */
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsync Data(const char *fileName):resolvConfFilename(fileName){};
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsyncconst std::string& HostDnsServiceResolvConf::resolvConf()
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsyncstatic int fileGets(RTFILE File, void *pvBuf, size_t cbBufSize, size_t *pcbRead)
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync while ( RT_SUCCESS(rc = RTFileRead(File, &bTest, 1, &cbRead))
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsyncHostDnsServiceResolvConf::~HostDnsServiceResolvConf()
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsync if (m) delete m;
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsyncHRESULT HostDnsServiceResolvConf::init(const char *aResolvConfFileName)
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsync int rc = RTFileOpen(&resolvConfFile, m->resolvConfFilename.c_str(),
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsync RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_NONE);
3f2299591cfeb8a37a3578bef9c44c1790860948vboxsync while ( RT_SUCCESS(rc = fileGets(resolvConfFile, buff, sizeof(buff), &bytes))
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync && sscanf(buff, "nameserver%*[ \t]%255s", buff2) == 1)
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync LogRel(("NAT: too many nameservers registered.\n"));
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync if ( sscanf(buff, "nameserver%*[ \t]%255s", buff2) == 1
18b1f1bb3429f8bfc1a52cfaeb2445e9fb1f55cdvboxsync && cNameserversFound < 4) /* Unix doesn't accept more than 4 name servers*/