Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Side by Side Diff: net/dns/dns_config_service_posix.cc

Issue 1283543003: [Android] Add a java.lang.System wrapper. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/dns/dns_config_service_posix.h" 5 #include "net/dns/dns_config_service_posix.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 12 matching lines...) Expand all
23 #include "net/dns/dns_hosts.h" 23 #include "net/dns/dns_hosts.h"
24 #include "net/dns/dns_protocol.h" 24 #include "net/dns/dns_protocol.h"
25 #include "net/dns/notify_watcher_mac.h" 25 #include "net/dns/notify_watcher_mac.h"
26 #include "net/dns/serial_worker.h" 26 #include "net/dns/serial_worker.h"
27 27
28 #if defined(OS_MACOSX) && !defined(OS_IOS) 28 #if defined(OS_MACOSX) && !defined(OS_IOS)
29 #include "net/dns/dns_config_watcher_mac.h" 29 #include "net/dns/dns_config_watcher_mac.h"
30 #endif 30 #endif
31 31
32 #if defined(OS_ANDROID) 32 #if defined(OS_ANDROID)
33 #include <sys/system_properties.h> 33 #include "base/android/java_system.h"
34 #include "net/base/network_change_notifier.h" 34 #include "net/base/network_change_notifier.h"
35 #endif 35 #endif
36 36
37 namespace net { 37 namespace net {
38 38
39 namespace internal { 39 namespace internal {
40 40
41 namespace { 41 namespace {
42 42
43 #if !defined(OS_ANDROID) 43 #if !defined(OS_ANDROID)
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 config->unhandled_options = true; 147 config->unhandled_options = true;
148 default: 148 default:
149 return error; 149 return error;
150 } 150 }
151 #endif // defined(OS_MACOSX) && !defined(OS_IOS) 151 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
152 // Override timeout value to match default setting on Windows. 152 // Override timeout value to match default setting on Windows.
153 config->timeout = base::TimeDelta::FromSeconds(kDnsTimeoutSeconds); 153 config->timeout = base::TimeDelta::FromSeconds(kDnsTimeoutSeconds);
154 return result; 154 return result;
155 } 155 }
156 #else // defined(OS_ANDROID) 156 #else // defined(OS_ANDROID)
157 // Theoretically, this is bad. __system_property_get is not a supported API 157 // Theoretically, this is bad. The DNS system properties are implementation
158 // (but it's currently visible to anyone using Bionic), and the properties 158 // details that may disappear in future Android releases. Practically, the DNS
159 // are implementation details that may disappear in future Android releases. 159 // code (and its clients) are already robust against failing to get the DNS
160 // Practically, libcutils provides property_get, which is a public API, and the
161 // DNS code (and its clients) are already robust against failing to get the DNS
162 // config for whatever reason, so the properties can disappear and the world 160 // config for whatever reason, so the properties can disappear and the world
163 // won't end. 161 // won't end.
164 // TODO(ttuttle): Depend on libcutils, then switch this (and other uses of
165 // __system_property_get) to property_get.
166 ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) { 162 ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) {
167 std::string dns1_string, dns2_string; 163 std::string dns1_string = base::android::JavaSystem::GetProperty("net.dns1");
168 char property_value[PROP_VALUE_MAX]; 164 std::string dns2_string = base::android::JavaSystem::GetProperty("net.dns2");
169 __system_property_get("net.dns1", property_value);
170 dns1_string = property_value;
171 __system_property_get("net.dns2", property_value);
172 dns2_string = property_value;
173 if (dns1_string.length() == 0 && dns2_string.length() == 0) 165 if (dns1_string.length() == 0 && dns2_string.length() == 0)
174 return CONFIG_PARSE_POSIX_NO_NAMESERVERS; 166 return CONFIG_PARSE_POSIX_NO_NAMESERVERS;
175 167
176 IPAddressNumber dns1_number, dns2_number; 168 IPAddressNumber dns1_number, dns2_number;
177 bool parsed1 = ParseIPLiteralToNumber(dns1_string, &dns1_number); 169 bool parsed1 = ParseIPLiteralToNumber(dns1_string, &dns1_number);
178 bool parsed2 = ParseIPLiteralToNumber(dns2_string, &dns2_number); 170 bool parsed2 = ParseIPLiteralToNumber(dns2_string, &dns2_number);
179 if (!parsed1 && !parsed2) 171 if (!parsed1 && !parsed2)
180 return CONFIG_PARSE_POSIX_BAD_ADDRESS; 172 return CONFIG_PARSE_POSIX_BAD_ADDRESS;
181 173
182 if (parsed1) { 174 if (parsed1) {
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 #endif // defined(OS_ANDROID) 540 #endif // defined(OS_ANDROID)
549 541
550 } // namespace internal 542 } // namespace internal
551 543
552 // static 544 // static
553 scoped_ptr<DnsConfigService> DnsConfigService::CreateSystemService() { 545 scoped_ptr<DnsConfigService> DnsConfigService::CreateSystemService() {
554 return scoped_ptr<DnsConfigService>(new internal::DnsConfigServicePosix()); 546 return scoped_ptr<DnsConfigService>(new internal::DnsConfigServicePosix());
555 } 547 }
556 548
557 } // namespace net 549 } // namespace net
OLDNEW
« no previous file with comments | « net/android/java/src/org/chromium/net/ProxyChangeListener.java ('k') | net/proxy/proxy_config_service_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698