s3: libads: Add an alternate version of cldap_ping_list() that takes an array of...
authorJeremy Allison <jra@samba.org>
Tue, 8 Sep 2020 23:33:25 +0000 (16:33 -0700)
committerNoel Power <npower@samba.org>
Tue, 15 Sep 2020 10:09:38 +0000 (10:09 +0000)
Preparing for get_sorted_dc_list() returning such an array.
ifdef'ed out as not yet used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Noel Power <noel.power@suse.com>
source3/libads/ldap.c

index 1c3677797d94665710ce5ccbe2242770ddc2e022..284d3b31aa3c82c9c81fbf67f4ac58f17e342398 100755 (executable)
@@ -378,6 +378,46 @@ static NTSTATUS cldap_ping_list(ADS_STRUCT *ads,
        return NT_STATUS_NO_LOGON_SERVERS;
 }
 
+#if 0
+/**********************************************************************
+ send a cldap ping to list of servers, one at a time, until one of
+ them answers it's an ldap server. Record success in the ADS_STRUCT.
+ Take note of and update negative connection cache.
+**********************************************************************/
+
+static NTSTATUS cldap_ping_list_sa(ADS_STRUCT *ads,
+                       const char *domain,
+                       struct samba_sockaddr *sa_list,
+                       size_t count)
+{
+       size_t i;
+       bool ok;
+
+       for (i = 0; i < count; i++) {
+               char server[INET6_ADDRSTRLEN];
+
+               print_sockaddr(server, sizeof(server), &sa_list[i].u.ss);
+
+               if (!NT_STATUS_IS_OK(
+                       check_negative_conn_cache(domain, server)))
+                       continue;
+
+               /* Returns ok only if it matches the correct server type */
+               ok = ads_try_connect(ads, false, &sa_list[i].u.ss);
+
+               if (ok) {
+                       return NT_STATUS_OK;
+               }
+
+               /* keep track of failures */
+               add_failed_connection_entry(domain, server,
+                                           NT_STATUS_UNSUCCESSFUL);
+       }
+
+       return NT_STATUS_NO_LOGON_SERVERS;
+}
+#endif
+
 /***************************************************************************
  resolve a name and perform an "ldap ping" using NetBIOS and related methods
 ****************************************************************************/