[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Thu Apr 20 12:24:03 UTC 2017
The branch, master has been updated
via fef69a1 smbldap: Bump version number
via e4d013c smbldap: Privatize struct smbldap_state
via 848067a smbldap: Introduce "smbldap_get_paged_results"
via 84b7125 smbldap: Introduce "smbldap_get_paged_results"
via 46968fc smbldap: Introduce "smbldap_get_ldap"
via ebc80f4 smbldap: Fix a typo
from 9f7ed6b autobuild: Do not require cmocka to be installed for samba-libs to build
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit fef69a132be265398c693183c2cd69b7e5ff6068
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 19 14:54:11 2017 +0200
smbldap: Bump version number
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Thu Apr 20 14:23:14 CEST 2017 on sn-devel-144
commit e4d013caa2c6d65e4632cb1bc79fd49ec86391cd
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 19 13:43:39 2017 +0200
smbldap: Privatize struct smbldap_state
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
commit 848067abbcf62d68e25a4f069237787163aea8e6
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 19 13:39:25 2017 +0200
smbldap: Introduce "smbldap_get_paged_results"
This should be hidden inside smbldap.c, but this is a quick way to
get smbldap_state private to smbldap.c
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
commit 84b7125b990e1742e742bf2919aaf753df345726
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 19 13:39:25 2017 +0200
smbldap: Introduce "smbldap_get_paged_results"
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
commit 46968fc60fa6a5c001c79407c71563af2807a440
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 19 13:29:31 2017 +0200
smbldap: Introduce "smbldap_get_ldap"
This is a pretty big boiler-plate change. I've renamed the struct member
temporarily to find all accessors. Not sure where this leads in the end, but
the goal is to make struct smbldap_struct private to smbldap.c
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
commit ebc80f4ac3eb4edaec1fd6354d1dcab625ded0cd
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 18 20:49:12 2017 +0200
smbldap: Fix a typo
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Alexander Bokovoy <ab at samba.org>
Reviewed-by: Ralph Böhme <slow at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/include/smbldap.h | 30 +-
source3/lib/ABI/{smbldap-0.sigs => smbldap-1.sigs} | 3 +
source3/lib/smbldap.c | 100 +++--
source3/passdb/pdb_ldap.c | 418 +++++++++++++--------
source3/passdb/pdb_ldap_util.c | 9 +-
source3/passdb/pdb_nds.c | 16 +-
source3/winbindd/idmap_ldap.c | 52 +--
source3/winbindd/idmap_rfc2307.c | 2 +-
source3/wscript_build | 2 +-
9 files changed, 392 insertions(+), 240 deletions(-)
copy source3/lib/ABI/{smbldap-0.sigs => smbldap-1.sigs} (93%)
Changeset truncated at 500 lines:
diff --git a/source3/include/smbldap.h b/source3/include/smbldap.h
index b287d62..6af0806 100644
--- a/source3/include/smbldap.h
+++ b/source3/include/smbldap.h
@@ -33,30 +33,7 @@
*
*/
-struct smbldap_state {
- LDAP *ldap_struct;
- pid_t pid;
- time_t last_ping; /* monotonic */
- /* retrive-once info */
- const char *uri;
-
- /* credentials */
- bool anonymous;
- char *bind_dn;
- char *bind_secret;
- int (*bind_callback)(LDAP *ldap_struct, struct smbldap_state *ldap_state, void *data);
- void *bind_callback_data;
-
- bool paged_results;
-
- unsigned int num_failures;
-
- time_t last_use; /* monotonic */
- struct tevent_context *tevent_context;
- struct tevent_timer *idle_event;
-
- struct timeval last_rebind; /* monotonic */
-};
+struct smbldap_state;
/* The following definitions come from lib/smbldap.c */
@@ -68,6 +45,11 @@ NTSTATUS smbldap_init(TALLOC_CTX *mem_ctx,
const char *bind_secret,
struct smbldap_state **smbldap_state);
+LDAP *smbldap_get_ldap(struct smbldap_state *state);
+bool smbldap_get_paged_results(struct smbldap_state *state);
+void smbldap_set_paged_results(struct smbldap_state *state,
+ bool paged_results);
+
void smbldap_set_mod (LDAPMod *** modlist, int modop, const char *attribute, const char *value);
void smbldap_set_mod_blob(LDAPMod *** modlist, int modop, const char *attribute, const DATA_BLOB *newblob);
void smbldap_make_mod(LDAP *ldap_struct, LDAPMessage *existing,
diff --git a/source3/lib/ABI/smbldap-0.sigs b/source3/lib/ABI/smbldap-1.sigs
similarity index 93%
copy from source3/lib/ABI/smbldap-0.sigs
copy to source3/lib/ABI/smbldap-1.sigs
index d0e1d2f..cacc56d 100644
--- a/source3/lib/ABI/smbldap-0.sigs
+++ b/source3/lib/ABI/smbldap-1.sigs
@@ -2,6 +2,8 @@ smbldap_add: int (struct smbldap_state *, const char *, LDAPMod **)
smbldap_delete: int (struct smbldap_state *, const char *)
smbldap_extended_operation: int (struct smbldap_state *, const char *, struct berval *, LDAPControl **, LDAPControl **, char **, struct berval **)
smbldap_free_struct: void (struct smbldap_state **)
+smbldap_get_ldap: LDAP *(struct smbldap_state *)
+smbldap_get_paged_results: bool (struct smbldap_state *)
smbldap_get_single_attribute: bool (LDAP *, LDAPMessage *, const char *, char *, int)
smbldap_has_control: bool (LDAP *, const char *)
smbldap_has_extension: bool (LDAP *, const char *)
@@ -17,6 +19,7 @@ smbldap_search_suffix: int (struct smbldap_state *, const char *, const char **,
smbldap_set_creds: bool (struct smbldap_state *, bool, const char *, const char *)
smbldap_set_mod: void (LDAPMod ***, int, const char *, const char *)
smbldap_set_mod_blob: void (LDAPMod ***, int, const char *, const DATA_BLOB *)
+smbldap_set_paged_results: void (struct smbldap_state *, bool)
smbldap_setup_full_conn: int (LDAP **, const char *)
smbldap_start_tls: int (LDAP *, int)
smbldap_talloc_autofree_ldapmod: void (TALLOC_CTX *, LDAPMod **)
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c
index 2ef112f..3e7cdd4 100644
--- a/source3/lib/smbldap.c
+++ b/source3/lib/smbldap.c
@@ -35,6 +35,47 @@
#define SMBLDAP_IDLE_TIME 150 /* After 2.5 minutes disconnect */
+struct smbldap_state {
+ LDAP *ldap_struct;
+ pid_t pid;
+ time_t last_ping; /* monotonic */
+ /* retrieve-once info */
+ const char *uri;
+
+ /* credentials */
+ bool anonymous;
+ char *bind_dn;
+ char *bind_secret;
+ int (*bind_callback)(LDAP *ldap_struct,
+ struct smbldap_state *ldap_state, void *data);
+ void *bind_callback_data;
+
+ bool paged_results;
+
+ unsigned int num_failures;
+
+ time_t last_use; /* monotonic */
+ struct tevent_context *tevent_context;
+ struct tevent_timer *idle_event;
+
+ struct timeval last_rebind; /* monotonic */
+};
+
+LDAP *smbldap_get_ldap(struct smbldap_state *state)
+{
+ return state->ldap_struct;
+}
+
+bool smbldap_get_paged_results(struct smbldap_state *state)
+{
+ return state->paged_results;
+}
+
+void smbldap_set_paged_results(struct smbldap_state *state,
+ bool paged_results)
+{
+ state->paged_results = paged_results;
+}
/*******************************************************************
Search an attribute and return the first value found.
@@ -943,7 +984,7 @@ static int rebindproc_connect (LDAP * ld, LDAP_CONST char *url, int request,
******************************************************************/
static int smbldap_connect_system(struct smbldap_state *ldap_state)
{
- LDAP *ldap_struct = ldap_state->ldap_struct;
+ LDAP *ldap_struct = smbldap_get_ldap(ldap_state);
int rc;
int version;
@@ -988,7 +1029,8 @@ static int smbldap_connect_system(struct smbldap_state *ldap_state)
if (rc != LDAP_SUCCESS) {
char *ld_error = NULL;
- ldap_get_option(ldap_state->ldap_struct, LDAP_OPT_ERROR_STRING,
+ ldap_get_option(smbldap_get_ldap(ldap_state),
+ LDAP_OPT_ERROR_STRING,
&ld_error);
DEBUG(ldap_state->num_failures ? 2 : 0,
("failed to bind to server %s with dn=\"%s\" Error: %s\n\t%s\n",
@@ -1004,9 +1046,11 @@ static int smbldap_connect_system(struct smbldap_state *ldap_state)
ldap_state->num_failures = 0;
ldap_state->paged_results = False;
- ldap_get_option(ldap_state->ldap_struct, LDAP_OPT_PROTOCOL_VERSION, &version);
+ ldap_get_option(smbldap_get_ldap(ldap_state),
+ LDAP_OPT_PROTOCOL_VERSION, &version);
- if (smbldap_has_control(ldap_state->ldap_struct, ADS_PAGE_CTL_OID) && version == 3) {
+ if (smbldap_has_control(smbldap_get_ldap(ldap_state), ADS_PAGE_CTL_OID)
+ && version == 3) {
ldap_state->paged_results = True;
}
@@ -1035,7 +1079,9 @@ static int smbldap_open(struct smbldap_state *ldap_state)
bool reopen = False;
SMB_ASSERT(ldap_state);
- if ((ldap_state->ldap_struct != NULL) && ((ldap_state->last_ping + SMBLDAP_DONT_PING_TIME) < time_mono(NULL))) {
+ if ((smbldap_get_ldap(ldap_state) != NULL) &&
+ ((ldap_state->last_ping + SMBLDAP_DONT_PING_TIME) <
+ time_mono(NULL))) {
#ifdef HAVE_UNIXSOCKET
struct sockaddr_un addr;
@@ -1045,7 +1091,8 @@ static int smbldap_open(struct smbldap_state *ldap_state)
socklen_t len = sizeof(addr);
int sd;
- opt_rc = ldap_get_option(ldap_state->ldap_struct, LDAP_OPT_DESC, &sd);
+ opt_rc = ldap_get_option(smbldap_get_ldap(ldap_state),
+ LDAP_OPT_DESC, &sd);
if (opt_rc == 0 && (getpeername(sd, (struct sockaddr *) &addr, &len)) < 0 )
reopen = True;
@@ -1055,15 +1102,15 @@ static int smbldap_open(struct smbldap_state *ldap_state)
#endif
if (reopen) {
/* the other end has died. reopen. */
- ldap_unbind(ldap_state->ldap_struct);
- ldap_state->ldap_struct = NULL;
+ ldap_unbind(smbldap_get_ldap(ldap_state));
+ ldap_state->ldap_struct = NULL;
ldap_state->last_ping = (time_t)0;
} else {
ldap_state->last_ping = time_mono(NULL);
}
}
- if (ldap_state->ldap_struct != NULL) {
+ if (smbldap_get_ldap(ldap_state) != NULL) {
DEBUG(11,("smbldap_open: already connected to the LDAP server\n"));
return LDAP_SUCCESS;
}
@@ -1102,8 +1149,8 @@ static NTSTATUS smbldap_close(struct smbldap_state *ldap_state)
if (!ldap_state)
return NT_STATUS_INVALID_PARAMETER;
- if (ldap_state->ldap_struct != NULL) {
- ldap_unbind(ldap_state->ldap_struct);
+ if (smbldap_get_ldap(ldap_state) != NULL) {
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1172,10 +1219,10 @@ static void setup_ldap_local_alarm(struct smbldap_state *ldap_state, time_t abso
static void get_ldap_errs(struct smbldap_state *ldap_state, char **pp_ld_error, int *p_ld_errno)
{
- ldap_get_option(ldap_state->ldap_struct,
+ ldap_get_option(smbldap_get_ldap(ldap_state),
LDAP_OPT_ERROR_NUMBER, p_ld_errno);
- ldap_get_option(ldap_state->ldap_struct,
+ ldap_get_option(smbldap_get_ldap(ldap_state),
LDAP_OPT_ERROR_STRING, pp_ld_error);
}
@@ -1295,7 +1342,8 @@ static int smbldap_search_ext(struct smbldap_state *ldap_state,
break;
}
- rc = ldap_search_ext_s(ldap_state->ldap_struct, base, scope,
+ rc = ldap_search_ext_s(smbldap_get_ldap(ldap_state),
+ base, scope,
utf8_filter,
discard_const_p(char *, attrs),
attrsonly, sctrls, cctrls, timeout_ptr,
@@ -1315,7 +1363,7 @@ static int smbldap_search_ext(struct smbldap_state *ldap_state,
if (ld_errno != LDAP_SERVER_DOWN) {
break;
}
- ldap_unbind(ldap_state->ldap_struct);
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1390,7 +1438,7 @@ int smbldap_search_paged(struct smbldap_state *ldap_state,
DEBUG(3,("smbldap_search_paged: search was successful\n"));
- rc = ldap_parse_result(ldap_state->ldap_struct, *res, NULL, NULL,
+ rc = ldap_parse_result(smbldap_get_ldap(ldap_state), *res, NULL, NULL,
NULL, NULL, &rcontrols, 0);
if (rc != 0) {
DEBUG(3,("smbldap_search_paged: ldap_parse_result failed " \
@@ -1449,7 +1497,8 @@ int smbldap_modify(struct smbldap_state *ldap_state, const char *dn, LDAPMod *at
break;
}
- rc = ldap_modify_s(ldap_state->ldap_struct, utf8_dn, attrs);
+ rc = ldap_modify_s(smbldap_get_ldap(ldap_state), utf8_dn,
+ attrs);
if (rc == LDAP_SUCCESS) {
break;
}
@@ -1465,7 +1514,7 @@ int smbldap_modify(struct smbldap_state *ldap_state, const char *dn, LDAPMod *at
if (ld_errno != LDAP_SERVER_DOWN) {
break;
}
- ldap_unbind(ldap_state->ldap_struct);
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1499,7 +1548,7 @@ int smbldap_add(struct smbldap_state *ldap_state, const char *dn, LDAPMod *attrs
break;
}
- rc = ldap_add_s(ldap_state->ldap_struct, utf8_dn, attrs);
+ rc = ldap_add_s(smbldap_get_ldap(ldap_state), utf8_dn, attrs);
if (rc == LDAP_SUCCESS) {
break;
}
@@ -1515,7 +1564,7 @@ int smbldap_add(struct smbldap_state *ldap_state, const char *dn, LDAPMod *attrs
if (ld_errno != LDAP_SERVER_DOWN) {
break;
}
- ldap_unbind(ldap_state->ldap_struct);
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1549,7 +1598,7 @@ int smbldap_delete(struct smbldap_state *ldap_state, const char *dn)
break;
}
- rc = ldap_delete_s(ldap_state->ldap_struct, utf8_dn);
+ rc = ldap_delete_s(smbldap_get_ldap(ldap_state), utf8_dn);
if (rc == LDAP_SUCCESS) {
break;
}
@@ -1565,7 +1614,7 @@ int smbldap_delete(struct smbldap_state *ldap_state, const char *dn)
if (ld_errno != LDAP_SERVER_DOWN) {
break;
}
- ldap_unbind(ldap_state->ldap_struct);
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1595,7 +1644,8 @@ int smbldap_extended_operation(struct smbldap_state *ldap_state,
break;
}
- rc = ldap_extended_operation_s(ldap_state->ldap_struct, reqoid,
+ rc = ldap_extended_operation_s(smbldap_get_ldap(ldap_state),
+ reqoid,
reqdata, serverctrls,
clientctrls, retoidp, retdatap);
if (rc == LDAP_SUCCESS) {
@@ -1613,7 +1663,7 @@ int smbldap_extended_operation(struct smbldap_state *ldap_state,
if (ld_errno != LDAP_SERVER_DOWN) {
break;
}
- ldap_unbind(ldap_state->ldap_struct);
+ ldap_unbind(smbldap_get_ldap(ldap_state));
ldap_state->ldap_struct = NULL;
}
@@ -1641,7 +1691,7 @@ static void smbldap_idle_fn(struct tevent_context *tevent_ctx,
TALLOC_FREE(state->idle_event);
- if (state->ldap_struct == NULL) {
+ if (smbldap_get_ldap(state) == NULL) {
DEBUG(10,("ldap connection not connected...\n"));
return;
}
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index b5c6cbf..9514175 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -74,7 +74,7 @@
LDAP *priv2ld(struct ldapsam_privates *priv)
{
- return priv->smbldap_state->ldap_struct;
+ return smbldap_get_ldap(priv->smbldap_state);
}
/**********************************************************************
@@ -191,7 +191,9 @@ static NTSTATUS ldapsam_get_seq_num(struct pdb_methods *my_methods, time_t *seq_
return ntstatus;
}
- if (!smbldap_has_naming_context(ldap_state->smbldap_state->ldap_struct, lp_ldap_suffix(talloc_tos()))) {
+ if (!smbldap_has_naming_context(
+ smbldap_get_ldap(ldap_state->smbldap_state),
+ lp_ldap_suffix(talloc_tos()))) {
DEBUG(3,("ldapsam_get_seq_num: DIT not configured to hold %s "
"as top-level namingContext\n", lp_ldap_suffix(talloc_tos())));
return ntstatus;
@@ -243,19 +245,22 @@ static NTSTATUS ldapsam_get_seq_num(struct pdb_methods *my_methods, time_t *seq_
goto done;
}
- num_result = ldap_count_entries(ldap_state->smbldap_state->ldap_struct, msg);
+ num_result = ldap_count_entries(
+ smbldap_get_ldap(ldap_state->smbldap_state), msg);
if (num_result != 1) {
DEBUG(3,("ldapsam_get_seq_num: Expected one entry, got %d\n", num_result));
goto done;
}
- entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, msg);
+ entry = ldap_first_entry(
+ smbldap_get_ldap(ldap_state->smbldap_state), msg);
if (entry == NULL) {
DEBUG(3,("ldapsam_get_seq_num: Could not retrieve entry\n"));
goto done;
}
- values = ldap_get_values(ldap_state->smbldap_state->ldap_struct, entry, attrs[0]);
+ values = ldap_get_values(
+ smbldap_get_ldap(ldap_state->smbldap_state), entry, attrs[0]);
if (values == NULL) {
DEBUG(3,("ldapsam_get_seq_num: no values\n"));
goto done;
@@ -435,8 +440,10 @@ static time_t ldapsam_get_entry_timestamp( struct ldapsam_privates *ldap_state,
char *temp;
struct tm tm;
- temp = smbldap_talloc_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
- get_userattr_key2string(ldap_state->schema_ver,LDAP_ATTR_MOD_TIMESTAMP),
+ temp = smbldap_talloc_single_attribute(
+ smbldap_get_ldap(ldap_state->smbldap_state), entry,
+ get_userattr_key2string(ldap_state->schema_ver,
+ LDAP_ATTR_MOD_TIMESTAMP),
talloc_tos());
if (!temp) {
return (time_t) 0;
@@ -541,7 +548,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
if ( ldap_state->schema_ver == SCHEMAVER_SAMBASAMACCOUNT ) {
if ((temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_USER_SID),
@@ -550,7 +557,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
} else {
if ((temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_USER_RID),
@@ -571,7 +578,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_PWD_LAST_SET),
@@ -583,7 +590,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_LOGON_TIME),
@@ -594,7 +601,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_LOGOFF_TIME),
@@ -605,7 +612,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_KICKOFF_TIME),
@@ -616,7 +623,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
temp = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_PWD_CAN_CHANGE),
@@ -634,7 +641,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
*/
fullname = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_DISPLAY_NAME),
@@ -643,7 +650,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
pdb_set_fullname(sampass, fullname, PDB_SET);
} else {
fullname = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_CN),
@@ -654,7 +661,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
dir_drive = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_HOME_DRIVE),
@@ -666,7 +673,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
homedir = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
entry,
get_userattr_key2string(ldap_state->schema_ver,
LDAP_ATTR_HOME_PATH),
@@ -690,7 +697,7 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
}
logon_script = smbldap_talloc_single_attribute(
- ldap_state->smbldap_state->ldap_struct,
+ smbldap_get_ldap(ldap_state->smbldap_state),
--
Samba Shared Repository
More information about the samba-cvs
mailing list