#include "librpc/ndr/libndr.h"
#include "librpc/gen_ndr/ndr_drsblobs.h"
#include "libcli/auth/libcli_auth.h"
+#include "param/param.h"
enum hdb_ldb_ent_type
{ HDB_LDB_ENT_TYPE_CLIENT, HDB_LDB_ENT_TYPE_SERVER,
HDB_LDB_ENT_TYPE_KRBTGT, HDB_LDB_ENT_TYPE_ANY };
-static const char * const krb5_attrs[] = {
- "objectClass",
- "sAMAccountName",
-
- "userPrincipalName",
- "servicePrincipalName",
-
- "userAccountControl",
-
- "pwdLastSet",
- "accountExpires",
-
- "whenCreated",
- "whenChanged",
-
- "msDS-KeyVersionNumber",
-
- "unicodePwd",
- "supplementalCredentials",
-
- NULL
-};
-
static const char *realm_ref_attrs[] = {
"nCName",
"dnsRoot",
krb5_error_code ret;
int lret;
char *filter = NULL;
- const char * const *princ_attrs = krb5_attrs;
+ const char * const *princ_attrs = user_attrs;
char *short_princ;
char *short_princ_talloc;
}
ldb_ret = gendb_search_dn((struct ldb_context *)db->hdb_db,
- mem_ctx, user_dn, &msg, krb5_attrs);
+ mem_ctx, user_dn, &msg, user_attrs);
if (ldb_ret != 1) {
return HDB_ERR_NOENTRY;
static krb5_error_code LDB_seq(krb5_context context, HDB *db, unsigned flags, hdb_entry_ex *entry)
{
krb5_error_code ret;
- struct hdb_ldb_seq *priv = (struct hdb_ldb_seq *)db->hdb_openp;
+ struct hdb_ldb_seq *priv = (struct hdb_ldb_seq *)db->hdb_dbc;
TALLOC_CTX *mem_ctx;
hdb_entry_ex entry_ex;
memset(&entry_ex, '\0', sizeof(entry_ex));
if (ret != 0) {
talloc_free(priv);
- db->hdb_openp = 0;
+ db->hdb_dbc = NULL;
} else {
talloc_free(mem_ctx);
}
hdb_entry_ex *entry)
{
struct ldb_context *ldb_ctx = (struct ldb_context *)db->hdb_db;
- struct hdb_ldb_seq *priv = (struct hdb_ldb_seq *)db->hdb_openp;
+ struct hdb_ldb_seq *priv = (struct hdb_ldb_seq *)db->hdb_dbc;
char *realm;
struct ldb_dn *realm_dn = NULL;
struct ldb_result *res = NULL;
if (priv) {
talloc_free(priv);
- db->hdb_openp = 0;
+ db->hdb_dbc = NULL;
}
priv = (struct hdb_ldb_seq *) talloc(db, struct hdb_ldb_seq);
lret = ldb_search(ldb_ctx, realm_dn,
LDB_SCOPE_SUBTREE, "(objectClass=user)",
- krb5_attrs, &res);
+ user_attrs, &res);
if (lret != LDB_SUCCESS) {
talloc_free(priv);
priv->msgs = talloc_steal(priv, res->msgs);
talloc_free(res);
- /* why has hdb_openp changed from (void *) to (int) ??? */
- db->hdb_openp = (int)priv;
+ db->hdb_dbc = priv;
ret = LDB_seq(context, db, flags, entry);
if (ret != 0) {
talloc_free(priv);
- db->hdb_openp = 0;
+ db->hdb_dbc = NULL;
} else {
talloc_free(mem_ctx);
}
return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
}
- (*db)->hdb_openp = 0;
+ (*db)->hdb_dbc = NULL;
(*db)->hdb_open = LDB_open;
(*db)->hdb_close = LDB_close;
(*db)->hdb_fetch = LDB_fetch;