* Revert to using rpc for mixed mode AD domains.
authorGerald Carter <jerry@samba.org>
Wed, 14 Jan 2004 16:26:14 +0000 (16:26 +0000)
committerGerald Carter <jerry@samba.org>
Wed, 14 Jan 2004 16:26:14 +0000 (16:26 +0000)
  The reason for this are:
  (a) the set_dc_type_and_flags() cannot tell the different
      between connecting to an NT4 domain and an NT4 BDC
      of a mixed mode domain.
  (b) the connection management for the rpc backend only
      provides on named pipe per cli_state.  So it is possible
      to connect to an NT4 BDC for netlogon and an AD mixed mode
      DC for lsarpc.  RPC is the lowest common demonimator here.
  (c) Issue with the sequence number value between the
      highestCommittedUSN LDAP attribute and the seq_num returned
      via RPC.

We will revisit this later, but the changes need to make this
work right now are too broad and risky.
(This used to be commit 86f24908c395cc832ae87b04c9da3d32449acad3)

source3/nsswitch/winbindd_cache.c

index 8dec89a6aa33ab3605aaf53befc565ae888107ec..91834e476fc7a522f5b631a5a2538a932646e7e1 100644 (file)
@@ -112,9 +112,13 @@ static struct winbind_cache *get_cache(struct winbindd_domain *domain)
                                break;
                        }
 
-                       /* if it have either of the indications of ADS, 
-                          use ads_methods */
-                       if ( domain->active_directory || domain->native_mode ) {
+                       /* only use ADS for native modes at the momment.
+                          The problem is the correct detection of mixed 
+                          mode domains from NT4 BDC's    --jerry */
+                       
+                       if ( domain->native_mode ) {
+                               DEBUG(5,("get_cache: Setting ADS methods for domain %s\n",
+                                       domain->name));
                                domain->backend = &ads_methods;
                                break;
                        }
@@ -123,6 +127,8 @@ static struct winbind_cache *get_cache(struct winbindd_domain *domain)
                }       
 #endif
                default:
+                       DEBUG(5,("get_cache: Setting MS-RPC methods for domain %s\n",
+                               domain->name));
                        domain->backend = &msrpc_methods;
                }
        }