static krb5_error_code samba_kdc_seq(krb5_context context,
struct samba_kdc_db_context *kdc_db_ctx,
+ const unsigned sdb_flags,
struct sdb_entry *entry)
{
krb5_error_code ret;
ret = samba_kdc_message2entry(context, kdc_db_ctx, mem_ctx,
principal, SAMBA_KDC_ENT_TYPE_ANY,
- SDB_F_ADMIN_DATA|SDB_F_GET_ANY,
+ sdb_flags|SDB_F_GET_ANY,
0 /* kvno */,
priv->realm_dn, msg, entry);
krb5_free_principal(context, principal);
mem_ctx,
trust_direction,
priv->realm_dn,
- SDB_F_ADMIN_DATA|SDB_F_GET_ANY,
+ sdb_flags|SDB_F_GET_ANY,
0, /* kvno */
msg,
entry);
krb5_error_code samba_kdc_firstkey(krb5_context context,
struct samba_kdc_db_context *kdc_db_ctx,
+ const unsigned sdb_flags,
struct sdb_entry *entry)
{
struct ldb_context *ldb_ctx = kdc_db_ctx->samdb;
kdc_db_ctx->seq_ctx = priv;
- ret = samba_kdc_seq(context, kdc_db_ctx, entry);
+ ret = samba_kdc_seq(context, kdc_db_ctx, sdb_flags, entry);
if (ret != 0) {
TALLOC_FREE(priv);
krb5_error_code samba_kdc_nextkey(krb5_context context,
struct samba_kdc_db_context *kdc_db_ctx,
+ const unsigned sdb_flags,
struct sdb_entry *entry)
{
- return samba_kdc_seq(context, kdc_db_ctx, entry);
+ return samba_kdc_seq(context, kdc_db_ctx, sdb_flags, entry);
}
/* Check if a given entry may delegate or do s4u2self to this target principal
krb5_error_code samba_kdc_firstkey(krb5_context context,
struct samba_kdc_db_context *kdc_db_ctx,
+ const unsigned sdb_flags,
struct sdb_entry *entry);
krb5_error_code samba_kdc_nextkey(krb5_context context,
struct samba_kdc_db_context *kdc_db_ctx,
+ const unsigned sdb_flags,
struct sdb_entry *entry);
krb5_error_code
kdc_db_ctx = talloc_get_type_abort(db->hdb_db,
struct samba_kdc_db_context);
- ret = samba_kdc_firstkey(context, kdc_db_ctx, &sentry);
+ ret = samba_kdc_firstkey(context, kdc_db_ctx, SDB_F_ADMIN_DATA, &sentry);
switch (ret) {
case 0:
break;
kdc_db_ctx = talloc_get_type_abort(db->hdb_db,
struct samba_kdc_db_context);
- ret = samba_kdc_nextkey(context, kdc_db_ctx, &sentry);
+ ret = samba_kdc_nextkey(context, kdc_db_ctx, SDB_F_ADMIN_DATA, &sentry);
switch (ret) {
case 0:
break;
return ENOMEM;
}
- ret = samba_kdc_firstkey(ctx->context, ctx->db_ctx, &sentry);
+ ret = samba_kdc_firstkey(ctx->context, ctx->db_ctx, SDB_F_ADMIN_DATA, &sentry);
switch (ret) {
case 0:
break;
return ENOMEM;
}
- ret = samba_kdc_nextkey(ctx->context, ctx->db_ctx, &sentry);
+ ret = samba_kdc_nextkey(ctx->context, ctx->db_ctx, SDB_F_ADMIN_DATA, &sentry);
switch (ret) {
case 0:
break;
const char *principal,
bool keep_stale_entries,
bool include_historic_keys,
+ const unsigned sdb_flags,
const char **error_string)
{
struct sdb_entry sentry = {};
}
code = samba_kdc_fetch(context, db_ctx, k5_princ,
- SDB_F_GET_ANY | SDB_F_ADMIN_DATA,
+ SDB_F_GET_ANY | sdb_flags,
0, &sentry);
krb5_free_principal(context, k5_princ);
} else {
- code = samba_kdc_firstkey(context, db_ctx, &sentry);
+ code = samba_kdc_firstkey(context, db_ctx, sdb_flags, &sentry);
}
- for (; code == 0; code = samba_kdc_nextkey(context, db_ctx, &sentry)) {
+ for (; code == 0; code = samba_kdc_nextkey(context, db_ctx, sdb_flags, &sentry)) {
int i;
bool found_previous = false;
tmp_ctx = talloc_new(mem_ctx);
struct samba_kdc_base_context *base_ctx;
struct samba_kdc_db_context *db_ctx = NULL;
const char *error_string = NULL;
+ unsigned sdb_flags;
NTSTATUS status;
bool keep_stale_entries = r->in.keep_stale_entries;
}
}
+ sdb_flags = SDB_F_ADMIN_DATA;
status = sdb_kt_copy(mem_ctx,
smb_krb5_context,
r->in.principal,
keep_stale_entries,
!r->in.only_current_keys,
+ sdb_flags,
&error_string);
talloc_free(db_ctx);