summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorpvalchev@google.com <pvalchev@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-29 03:36:45 +0000
committerpvalchev@google.com <pvalchev@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-29 03:36:45 +0000
commit1a1573001d8e6ed63e7ee5755be26c7c1405619b (patch)
tree822acc1afdd0d1619c8961e1938cc6fb87faafe2 /net
parent21a74c315ec4c5f1978740ac6d3d8d1b969a293c (diff)
downloadchromium_src-1a1573001d8e6ed63e7ee5755be26c7c1405619b.zip
chromium_src-1a1573001d8e6ed63e7ee5755be26c7c1405619b.tar.gz
chromium_src-1a1573001d8e6ed63e7ee5755be26c7c1405619b.tar.bz2
BSD port: USE_NSS and other macros instead of OS_LINUX where applicable
Review URL: http://codereview.chromium.org/556068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37492 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/cert_verifier.cc4
-rw-r--r--net/base/ev_root_ca_metadata.cc4
-rw-r--r--net/base/ev_root_ca_metadata.h4
-rw-r--r--net/base/host_resolver_proc.cc21
-rw-r--r--net/base/telnet_server.cc1
-rw-r--r--net/base/x509_certificate.h4
-rw-r--r--net/socket/client_socket.h3
-rw-r--r--net/socket/client_socket_factory.cc4
-rw-r--r--net/url_request/url_request_unittest.cc2
9 files changed, 27 insertions, 20 deletions
diff --git a/net/base/cert_verifier.cc b/net/base/cert_verifier.cc
index 703ecfe..4e94133 100644
--- a/net/base/cert_verifier.cc
+++ b/net/base/cert_verifier.cc
@@ -4,7 +4,7 @@
#include "net/base/cert_verifier.h"
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
#include <private/pprthred.h> // PR_DetatchThread
#endif
@@ -38,7 +38,7 @@ class CertVerifier::Request :
void DoVerify() {
// Running on the worker thread
error_ = cert_->Verify(hostname_, flags_, &result_);
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
// Detach the thread from NSPR.
// Calling NSS functions attaches the thread to NSPR, which stores
// the NSPR thread ID in thread-specific data.
diff --git a/net/base/ev_root_ca_metadata.cc b/net/base/ev_root_ca_metadata.cc
index e2200fe..621a174 100644
--- a/net/base/ev_root_ca_metadata.cc
+++ b/net/base/ev_root_ca_metadata.cc
@@ -4,7 +4,7 @@
#include "net/base/ev_root_ca_metadata.h"
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
#include <cert.h>
#include <pkcs11n.h>
#include <secerr.h>
@@ -232,7 +232,7 @@ bool EVRootCAMetadata::GetPolicyOID(
EVRootCAMetadata::EVRootCAMetadata() {
// Constructs the object from the raw metadata in ev_root_ca_metadata.
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) {
const EVMetadata& metadata = ev_root_ca_metadata[i];
PRUint8 buf[1024];
diff --git a/net/base/ev_root_ca_metadata.h b/net/base/ev_root_ca_metadata.h
index 5b12337..f006878 100644
--- a/net/base/ev_root_ca_metadata.h
+++ b/net/base/ev_root_ca_metadata.h
@@ -7,7 +7,7 @@
#include "build/build_config.h"
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
#include <secoidt.h>
#endif
@@ -25,7 +25,7 @@ namespace net {
// extended-validation (EV) certificates.
class EVRootCAMetadata {
public:
-#if defined(OS_LINUX)
+#if defined(USE_NSS)
typedef SECOidTag PolicyOID;
#else
typedef const char* PolicyOID;
diff --git a/net/base/host_resolver_proc.cc b/net/base/host_resolver_proc.cc
index bd0ba2b..5ccf01a 100644
--- a/net/base/host_resolver_proc.cc
+++ b/net/base/host_resolver_proc.cc
@@ -6,7 +6,7 @@
#include "build/build_config.h"
-#if defined(OS_LINUX)
+#if defined(OS_POSIX) && !defined(OS_MACOSX)
#include <resolv.h>
#endif
@@ -16,7 +16,7 @@
#include "net/base/net_errors.h"
#include "net/base/sys_addrinfo.h"
-#if defined(OS_LINUX)
+#if defined(OS_POSIX) && !defined(OS_MACOSX)
#include "base/singleton.h"
#include "base/thread_local_storage.h"
#endif
@@ -77,9 +77,9 @@ int HostResolverProc::ResolveUsingPrevious(const std::string& host,
return SystemHostResolverProc(host, address_family, addrlist);
}
-#if defined(OS_LINUX)
-// On Linux changes to /etc/resolv.conf can go unnoticed thus resulting in
-// DNS queries failing either because nameservers are unknown on startup
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
+// On Linux/BSD, changes to /etc/resolv.conf can go unnoticed thus resulting
+// in DNS queries failing either because nameservers are unknown on startup
// or because nameserver info has changed as a result of e.g. connecting to
// a new network. Some distributions patch glibc to stat /etc/resolv.conf
// to try to automatically detect such changes but these patches are not
@@ -89,6 +89,9 @@ int HostResolverProc::ResolveUsingPrevious(const std::string& host,
// We adopt the Mozilla solution here which is to call res_ninit when
// lookups fail and to rate limit the reloading to once per second per
// thread.
+//
+// OpenBSD does not have thread-safe res_ninit/res_nclose so we can't do
+// the same trick there.
// Keep a timer per calling thread to rate limit the calling of res_ninit.
class DnsReloadTimer {
@@ -145,7 +148,7 @@ class DnsReloadTimer {
// static
ThreadLocalStorage::Slot DnsReloadTimer::tls_index_(base::LINKER_INITIALIZED);
-#endif // defined(OS_LINUX)
+#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
int SystemHostResolverProc(const std::string& host,
AddressFamily address_family,
@@ -174,7 +177,7 @@ int SystemHostResolverProc(const std::string& host,
hints.ai_family = AF_UNSPEC;
}
-#if defined(OS_WIN)
+#if defined(OS_WIN) || defined(OS_OPENBSD)
// DO NOT USE AI_ADDRCONFIG ON WINDOWS.
//
// The following comment in <winsock2.h> is the best documentation I found
@@ -195,6 +198,8 @@ int SystemHostResolverProc(const std::string& host,
// The IPv4 or IPv6 loopback address is not considered a valid global
// address.
// See http://crbug.com/5234.
+ //
+ // OpenBSD does not support it, either.
hints.ai_flags = 0;
#else
hints.ai_flags = AI_ADDRCONFIG;
@@ -204,7 +209,7 @@ int SystemHostResolverProc(const std::string& host,
hints.ai_socktype = SOCK_STREAM;
int err = getaddrinfo(host.c_str(), NULL, &hints, &ai);
-#if defined(OS_LINUX)
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
net::DnsReloadTimer* dns_timer = Singleton<net::DnsReloadTimer>::get();
// If we fail, re-initialise the resolver just in case there have been any
// changes to /etc/resolv.conf and retry. See http://crbug.com/11380 for info.
diff --git a/net/base/telnet_server.cc b/net/base/telnet_server.cc
index 91c6cac..33eb5b1 100644
--- a/net/base/telnet_server.cc
+++ b/net/base/telnet_server.cc
@@ -10,6 +10,7 @@
#include <winsock2.h>
#elif defined(OS_POSIX)
#include <errno.h>
+#include <sys/types.h>
#include <sys/socket.h>
#include "base/message_loop.h"
#include "net/base/net_errors.h"
diff --git a/net/base/x509_certificate.h b/net/base/x509_certificate.h
index b83bd8a..215489b 100644
--- a/net/base/x509_certificate.h
+++ b/net/base/x509_certificate.h
@@ -22,7 +22,7 @@
#include <wincrypt.h>
#elif defined(OS_MACOSX)
#include <Security/Security.h>
-#elif defined(OS_LINUX)
+#elif defined(USE_NSS)
// Forward declaration; real one in <cert.h>
struct CERTCertificateStr;
#endif
@@ -65,7 +65,7 @@ class X509Certificate : public base::RefCountedThreadSafe<X509Certificate> {
typedef PCCERT_CONTEXT OSCertHandle;
#elif defined(OS_MACOSX)
typedef SecCertificateRef OSCertHandle;
-#elif defined(OS_LINUX)
+#elif defined(USE_NSS)
typedef struct CERTCertificateStr* OSCertHandle;
#else
// TODO(ericroman): not implemented
diff --git a/net/socket/client_socket.h b/net/socket/client_socket.h
index e959d84..28c7b4d 100644
--- a/net/socket/client_socket.h
+++ b/net/socket/client_socket.h
@@ -8,7 +8,8 @@
#include "build/build_config.h"
// For struct sockaddr and socklen_t.
-#if defined(OS_LINUX) || defined(OS_MACOSX)
+#if defined(OS_POSIX)
+#include <sys/types.h>
#include <sys/socket.h>
#elif defined(OS_WIN)
#include <ws2tcpip.h>
diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc
index fe2ce10..9458381 100644
--- a/net/socket/client_socket_factory.cc
+++ b/net/socket/client_socket_factory.cc
@@ -8,7 +8,7 @@
#include "build/build_config.h"
#if defined(OS_WIN)
#include "net/socket/ssl_client_socket_win.h"
-#elif defined(OS_LINUX)
+#elif defined(USE_NSS)
#include "net/socket/ssl_client_socket_nss.h"
#elif defined(OS_MACOSX)
#include "net/socket/ssl_client_socket_mac.h"
@@ -30,7 +30,7 @@ class DefaultClientSocketFactory : public ClientSocketFactory {
const SSLConfig& ssl_config) {
#if defined(OS_WIN)
return new SSLClientSocketWin(transport_socket, hostname, ssl_config);
-#elif defined(OS_LINUX)
+#elif defined(USE_NSS)
return new SSLClientSocketNSS(transport_socket, hostname, ssl_config);
#elif defined(OS_MACOSX)
return new SSLClientSocketMac(transport_socket, hostname, ssl_config);
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index d0ee197..1adeb0c 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -9,7 +9,7 @@
#if defined(OS_WIN)
#include <windows.h>
#include <shlobj.h>
-#elif defined(OS_LINUX)
+#elif defined(USE_NSS)
#include "base/nss_util.h"
#endif