Chromium Code Reviews| Index: net/dns/dns_config_service_posix.cc |
| diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc |
| index 0224c39cb9ec0273a79f5b4d86efe7983f803776..1341badefcb6cdae5815b70cb10d63be8b76f3ce 100644 |
| --- a/net/dns/dns_config_service_posix.cc |
| +++ b/net/dns/dns_config_service_posix.cc |
| @@ -30,16 +30,21 @@ class DnsConfigServicePosix::ConfigReader : public SerialWorker { |
| success_(false) {} |
| void DoWork() OVERRIDE { |
| +#if defined(OS_OPENBSD) |
| + if ((res_init() == 0) && (_res.options & RES_INIT)) { |
| + success_ = ConvertResToConfig(_res, &dns_config_); |
| +#else |
| struct __res_state res; |
| if ((res_ninit(&res) == 0) && (res.options & RES_INIT)) { |
| success_ = ConvertResToConfig(res, &dns_config_); |
| +#endif |
| } else { |
| // Note: res_ninit in glibc always returns 0 and sets RES_INIT. |
| success_ = false; |
| } |
| #if defined(OS_MACOSX) |
| res_ndestroy(&res); |
| -#else |
| +#elif !defined(OS_OPENBSD) |
| res_nclose(&res); |
| #endif |
|
wtc
2011/10/20 14:01:46
It may be better to apply #if defined(OS_OPENBSD)
Robert Nagy
2011/10/20 17:44:44
It is fine like this, but I extended the comment i
|
| } |
| @@ -123,7 +128,9 @@ bool ConvertResToConfig(const struct __res_state& res, DnsConfig* dns_config) { |
| dns_config->ndots = res.ndots; |
| dns_config->timeout = base::TimeDelta::FromSeconds(res.retrans); |
| dns_config->attempts = res.retry; |
| +#if defined(RES_ROTATE) |
| dns_config->rotate = res.options & RES_ROTATE; |
| +#endif |
| dns_config->edns0 = res.options & RES_USE_EDNS0; |
| return true; |