const char *field,
int reverse,
char **_path);
-char *ads_build_dn(const char *realm);
+ADS_STATUS ads_build_dn(const char *realm, char **_dn);
char *ads_build_domain(const char *dn);
ADS_STRUCT *ads_init(TALLOC_CTX *mem_ctx,
const char *realm,
realm of the form AA.BB.CC
caller must free
*/
-char *ads_build_dn(const char *realm)
+ADS_STATUS ads_build_dn(const char *realm, char **_dn)
{
ADS_STATUS status;
char *dn = NULL;
status = ads_build_path(realm, ".", "dc=", 0, &dn);
if (!ADS_ERR_OK(status)) {
- return NULL;
+ return status;
}
- return dn;
+ *_dn = dn;
+
+ return ADS_ERROR_NT(NT_STATUS_OK);
}
/* return a DNS name in the for aa.bb.cc from the DN
TALLOC_CTX *frame = talloc_stackframe();
bool ret = false;
char addr[INET6_ADDRSTRLEN];
+ ADS_STATUS status;
if (ss == NULL) {
TALLOC_FREE(frame);
goto out;
}
- ads->config.bind_path = ads_build_dn(ads->config.realm);
+ status = ads_build_dn(ads->config.realm, &ads->config.bind_path);
+ if (!ADS_ERR_OK(status)) {
+ DBG_DEBUG("Failed to build bind path: %s\n",
+ ads_errstr(status));
+ ret = false;
+ goto out;
+ }
+
if (*cldap_reply.server_site) {
ads->config.server_site_name =
SMB_STRDUP(cldap_reply.server_site);