]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libads: add ads_connect_simple_anon() helper
authorStefan Metzmacher <metze@samba.org>
Thu, 28 Apr 2022 16:38:17 +0000 (18:38 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 14 May 2024 10:18:31 +0000 (10:18 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/libads/ads_proto.h
source3/libads/ldap.c

index 1256652c5e0856b40ad81d6dbe6a3061d75ac8af..2c9ca5b9898f9accccc998faec5ba0c9a78ec359 100644 (file)
@@ -88,6 +88,7 @@ bool ads_sitename_match(ADS_STRUCT *ads);
 bool ads_closest_dc(ADS_STRUCT *ads);
 ADS_STATUS ads_connect_cldap_only(ADS_STRUCT *ads);
 ADS_STATUS ads_connect_creds(ADS_STRUCT *ads, struct cli_credentials *creds);
+ADS_STATUS ads_connect_simple_anon(ADS_STRUCT *ads);
 ADS_STATUS ads_connect(ADS_STRUCT *ads);
 ADS_STATUS ads_connect_user_creds(ADS_STRUCT *ads);
 void ads_zero_ldap(ADS_STRUCT *ads);
index 1e05d14e4aa97117b7d2894ac826696d18ed5bc2..c909e427fc5e5ff2c58ea330417377ad41532674 100644 (file)
@@ -1150,6 +1150,31 @@ ADS_STATUS ads_connect_creds(ADS_STRUCT *ads, struct cli_credentials *creds)
        return ads_connect_internal(ads, creds);
 }
 
+/**
+ * Connect to the LDAP server using anonymous credentials
+ * using a simple bind without username/password
+ *
+ * @param ads Pointer to an existing ADS_STRUCT
+ * @return status of connection
+ **/
+ADS_STATUS ads_connect_simple_anon(ADS_STRUCT *ads)
+{
+       TALLOC_CTX *frame = talloc_stackframe();
+       struct cli_credentials *creds = NULL;
+       ADS_STATUS status;
+
+       creds = cli_credentials_init_anon(frame);
+       if (creds == NULL) {
+               TALLOC_FREE(frame);
+               return ADS_ERROR_SYSTEM(errno);
+       }
+
+       ads->auth.flags |= ADS_AUTH_ANON_BIND;
+       status = ads_connect_creds(ads, creds);
+       TALLOC_FREE(frame);
+       return status;
+}
+
 /*
  * Connect to the LDAP server
  * @param ads Pointer to an existing ADS_STRUCT