struct dom_sid *sid)
{
DATA_BLOB blob;
- struct sid_parse_ret ret;
+ ssize_t ret;
if (!smbldap_talloc_single_blob(talloc_tos(), ld, msg, attrib,
&blob)) {
}
ret = sid_parse(blob.data, blob.length, sid);
TALLOC_FREE(blob.data);
- return (ret.len != -1);
+ return (ret != -1);
}
static int ldapmsg_destructor(LDAPMessage **result) {
}
/********************************************************************
- start TLS on an existing LDAP connection
+ start TLS on an existing LDAP connection per config
*******************************************************************/
int smbldap_start_tls(LDAP *ldap_struct, int version)
-{
-#ifdef LDAP_OPT_X_TLS
- int rc,tls;
-#endif
-
+{
if (lp_ldap_ssl() != LDAP_SSL_START_TLS) {
return LDAP_SUCCESS;
}
+ return smbldap_start_tls_start(ldap_struct, version);
+}
+
+/********************************************************************
+ start TLS on an existing LDAP connection unconditionally
+*******************************************************************/
+
+int smbldap_start_tls_start(LDAP *ldap_struct, int version)
+{
#ifdef LDAP_OPT_X_TLS
+ int rc,tls;
+
/* check if we use ldaps already */
ldap_get_option(ldap_struct, LDAP_OPT_X_TLS, &tls);
if (tls == LDAP_OPT_X_TLS_HARD) {
const char *filter, const char **search_attr,
LDAPMessage ** result)
{
- return smbldap_search(ldap_state, lp_ldap_suffix(talloc_tos()),
+ return smbldap_search(ldap_state, lp_ldap_suffix(),
LDAP_SCOPE_SUBTREE,
filter, search_attr, 0, result);
}