summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authordpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-24 12:38:19 +0000
committerdpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-24 12:38:19 +0000
commit1b6e1d2f72217d4bd9c9a164db70cbfc1b869d1c (patch)
treecdad2f08fdc26c5a15ec7e45609717d829a2ccd5 /net/http
parentb69f4ffd2ff73ba0cad80f80555e4b15fc211257 (diff)
downloadchromium_src-1b6e1d2f72217d4bd9c9a164db70cbfc1b869d1c.zip
chromium_src-1b6e1d2f72217d4bd9c9a164db70cbfc1b869d1c.tar.gz
chromium_src-1b6e1d2f72217d4bd9c9a164db70cbfc1b869d1c.tar.bz2
Revert 97925 - Linux: allow linking directly with Kerberos instead of using dlopen.
dlopen is still the default for Google Chrome. This option is intended for Linux distro packagers. BUG=92689 Review URL: http://codereview.chromium.org/7655046 TBR=phajdan.jr@chromium.org Review URL: http://codereview.chromium.org/7719024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98028 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_auth_gssapi_posix.cc11
-rw-r--r--net/http/http_auth_gssapi_posix.h15
-rw-r--r--net/http/http_auth_gssapi_posix_unittest.cc2
-rw-r--r--net/http/http_auth_handler_factory.cc3
-rw-r--r--net/http/http_auth_handler_negotiate_unittest.cc4
-rw-r--r--net/http/mock_gssapi_library_posix.cc3
-rw-r--r--net/http/mock_gssapi_library_posix.h3
7 files changed, 11 insertions, 30 deletions
diff --git a/net/http/http_auth_gssapi_posix.cc b/net/http/http_auth_gssapi_posix.cc
index cc27e70..25ee910 100644
--- a/net/http/http_auth_gssapi_posix.cc
+++ b/net/http/http_auth_gssapi_posix.cc
@@ -17,7 +17,6 @@
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
-#if defined(DLOPEN_KERBEROS)
// These are defined for the GSSAPI library:
// Paraphrasing the comments from gssapi.h:
// "The implementation must reserve static storage for a
@@ -63,7 +62,6 @@ gss_OID GSS_C_NT_HOSTBASED_SERVICE_X = &GSS_C_NT_HOSTBASED_SERVICE_X_VAL;
gss_OID GSS_C_NT_HOSTBASED_SERVICE = &GSS_C_NT_HOSTBASED_SERVICE_VAL;
gss_OID GSS_C_NT_ANONYMOUS = &GSS_C_NT_ANONYMOUS_VAL;
gss_OID GSS_C_NT_EXPORT_NAME = &GSS_C_NT_EXPORT_NAME_VAL;
-#endif // defined(DLOPEN_KERBEROS)
namespace net {
@@ -412,11 +410,9 @@ bool GSSAPISharedLibrary::Init() {
bool GSSAPISharedLibrary::InitImpl() {
DCHECK(!initialized_);
-#if defined(DLOPEN_KERBEROS)
gssapi_library_ = LoadSharedLibrary();
if (gssapi_library_ == NULL)
return false;
-#endif // defined(DLOPEN_KERBEROS)
initialized_ = true;
return true;
}
@@ -463,20 +459,17 @@ base::NativeLibrary GSSAPISharedLibrary::LoadSharedLibrary() {
return NULL;
}
-#if defined(DLOPEN_KERBEROS)
#define BIND(lib, x) \
- DCHECK(lib); \
gss_##x##_type x = reinterpret_cast<gss_##x##_type>( \
base::GetFunctionPointerFromNativeLibrary(lib, "gss_" #x)); \
if (x == NULL) { \
LOG(WARNING) << "Unable to bind function \"" << "gss_" #x << "\""; \
return false; \
}
-#else
-#define BIND(lib, x) gss_##x##_type x = gss_##x
-#endif
bool GSSAPISharedLibrary::BindMethods(base::NativeLibrary lib) {
+ DCHECK(lib != NULL);
+
BIND(lib, import_name);
BIND(lib, release_name);
BIND(lib, release_buffer);
diff --git a/net/http/http_auth_gssapi_posix.h b/net/http/http_auth_gssapi_posix.h
index 8e8a114..b1b1227 100644
--- a/net/http/http_auth_gssapi_posix.h
+++ b/net/http/http_auth_gssapi_posix.h
@@ -6,8 +6,6 @@
#define NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
#pragma once
-#include <gssapi.h>
-
#include <string>
#include "base/gtest_prod_util.h"
@@ -16,6 +14,9 @@
#include "net/base/net_export.h"
#include "net/http/http_auth.h"
+#define GSS_USE_FUNCTION_POINTERS
+#include "net/third_party/gssapi/gssapi.h"
+
namespace net {
NET_EXPORT_PRIVATE extern gss_OID CHROME_GSS_C_NT_HOSTBASED_SERVICE_X;
@@ -167,16 +168,6 @@ class NET_EXPORT_PRIVATE GSSAPISharedLibrary : public GSSAPILibrary {
int* open);
private:
- typedef typeof(&gss_import_name) gss_import_name_type;
- typedef typeof(&gss_release_name) gss_release_name_type;
- typedef typeof(&gss_release_buffer) gss_release_buffer_type;
- typedef typeof(&gss_display_name) gss_display_name_type;
- typedef typeof(&gss_display_status) gss_display_status_type;
- typedef typeof(&gss_init_sec_context) gss_init_sec_context_type;
- typedef typeof(&gss_wrap_size_limit) gss_wrap_size_limit_type;
- typedef typeof(&gss_delete_sec_context) gss_delete_sec_context_type;
- typedef typeof(&gss_inquire_context) gss_inquire_context_type;
-
FRIEND_TEST_ALL_PREFIXES(HttpAuthGSSAPIPOSIXTest, GSSAPIStartup);
bool InitImpl();
diff --git a/net/http/http_auth_gssapi_posix_unittest.cc b/net/http/http_auth_gssapi_posix_unittest.cc
index f536ee8..f4270e1 100644
--- a/net/http/http_auth_gssapi_posix_unittest.cc
+++ b/net/http/http_auth_gssapi_posix_unittest.cc
@@ -81,13 +81,11 @@ TEST(HttpAuthGSSAPIPOSIXTest, GSSAPIStartup) {
EXPECT_TRUE(gssapi.get()->Init());
}
-#if defined(DLOPEN_KERBEROS)
TEST(HttpAuthGSSAPIPOSIXTest, GSSAPILoadCustomLibrary) {
scoped_ptr<GSSAPILibrary> gssapi(
new GSSAPISharedLibrary("/this/library/does/not/exist"));
EXPECT_FALSE(gssapi.get()->Init());
}
-#endif // defined(DLOPEN_KERBEROS)
TEST(HttpAuthGSSAPIPOSIXTest, GSSAPICycle) {
scoped_ptr<test::MockGSSAPILibrary> mock_library(new test::MockGSSAPILibrary);
diff --git a/net/http/http_auth_handler_factory.cc b/net/http/http_auth_handler_factory.cc
index 6a6b574..fcf2e45 100644
--- a/net/http/http_auth_handler_factory.cc
+++ b/net/http/http_auth_handler_factory.cc
@@ -10,11 +10,10 @@
#include "net/http/http_auth_filter.h"
#include "net/http/http_auth_handler_basic.h"
#include "net/http/http_auth_handler_digest.h"
-#include "net/http/http_auth_handler_ntlm.h"
-
#if defined(USE_KERBEROS)
#include "net/http/http_auth_handler_negotiate.h"
#endif
+#include "net/http/http_auth_handler_ntlm.h"
namespace net {
diff --git a/net/http/http_auth_handler_negotiate_unittest.cc b/net/http/http_auth_handler_negotiate_unittest.cc
index 63eab92..1d3de4e 100644
--- a/net/http/http_auth_handler_negotiate_unittest.cc
+++ b/net/http/http_auth_handler_negotiate_unittest.cc
@@ -15,6 +15,7 @@
#include "net/http/mock_sspi_library_win.h"
#elif defined(OS_POSIX)
#include "net/http/mock_gssapi_library_posix.h"
+#include "net/third_party/gssapi/gssapi.h"
#endif
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
@@ -25,6 +26,7 @@ typedef net::MockSSPILibrary MockAuthLibrary;
typedef net::test::MockGSSAPILibrary MockAuthLibrary;
#endif
+
namespace net {
class HttpAuthHandlerNegotiateTest : public PlatformTest {
@@ -343,7 +345,6 @@ TEST_F(HttpAuthHandlerNegotiateTest, NoKerberosCredentials) {
EXPECT_EQ(ERR_MISSING_AUTH_CREDENTIALS, callback.WaitForResult());
}
-#if defined(DLOPEN_KERBEROS)
TEST_F(HttpAuthHandlerNegotiateTest, MissingGSSAPI) {
scoped_ptr<HostResolver> host_resolver(new MockHostResolver());
MockAllowURLSecurityManager url_security_manager;
@@ -365,7 +366,6 @@ TEST_F(HttpAuthHandlerNegotiateTest, MissingGSSAPI) {
EXPECT_EQ(ERR_UNSUPPORTED_AUTH_SCHEME, rv);
EXPECT_TRUE(generic_handler.get() == NULL);
}
-#endif // defined(DLOPEN_KERBEROS)
#endif // defined(OS_POSIX)
diff --git a/net/http/mock_gssapi_library_posix.cc b/net/http/mock_gssapi_library_posix.cc
index 6d44729..5ae4721 100644
--- a/net/http/mock_gssapi_library_posix.cc
+++ b/net/http/mock_gssapi_library_posix.cc
@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
+#include "net/third_party/gssapi/gssapi.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
@@ -278,7 +279,7 @@ OM_uint32 MockGSSAPILibrary::import_name(
// Save the data.
output->name = BufferToString(input_name_buffer);
CopyOid(&output->name_type, input_name_type);
- *output_name = reinterpret_cast<gss_name_t>(output);
+ *output_name = output;
return GSS_S_COMPLETE;
}
diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h
index 4109f9c..aad5de8 100644
--- a/net/http/mock_gssapi_library_posix.h
+++ b/net/http/mock_gssapi_library_posix.h
@@ -6,13 +6,12 @@
#define NET_HTTP_MOCK_GSSAPI_LIBRARY_POSIX_H_
#pragma once
-#include <gssapi.h>
-
#include <list>
#include <string>
#include "base/gtest_prod_util.h"
#include "net/http/http_auth_gssapi_posix.h"
+#include "net/third_party/gssapi/gssapi.h"
namespace net {