summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-02-27 19:09:28 +0100
committerVolker Lendecke <vl@samba.org>2011-02-27 19:11:31 +0100
commitc427b795c7e649ae7f747cde11f47ad021406fb2 (patch)
treed10659c2ec57b284fbc09cb669b1f30f6950b89a
parent0decc29b3a641b735ac1b0e71435490cd5958b73 (diff)
downloadsamba-c427b795c7e649ae7f747cde11f47ad021406fb2.tar.gz
samba-c427b795c7e649ae7f747cde11f47ad021406fb2.tar.bz2
samba-c427b795c7e649ae7f747cde11f47ad021406fb2.zip
s3: properly find our standard nss_info backends
Right now, the nss_info backends are tied to the idmap backends (which is wrong IMHO). In the domain child we don't load the idmap backend anymore, so we don't have the nss info modules. This needs fixing properly.
-rw-r--r--source3/winbindd/nss_info.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/winbindd/nss_info.c b/source3/winbindd/nss_info.c
index 67ffbf21cc..a243a03948 100644
--- a/source3/winbindd/nss_info.c
+++ b/source3/winbindd/nss_info.c
@@ -205,6 +205,19 @@ static NTSTATUS nss_init(const char **nss_list)
nss_backend = nss_get_backend(backend);
if (nss_backend == NULL) {
+ /*
+ * This is a freaking hack. We don't have proper
+ * modules for nss_info backends. Right now we have
+ * our standard nss_info backends in the ad backend.
+ */
+ status = smb_probe_module("idmap", "ad");
+ if ( !NT_STATUS_IS_OK(status) ) {
+ continue;
+ }
+ }
+
+ nss_backend = nss_get_backend(backend);
+ if (nss_backend == NULL) {
/* attempt to register the backend */
status = smb_probe_module( "nss_info", backend );
if ( !NT_STATUS_IS_OK(status) ) {