summaryrefslogtreecommitdiff
path: root/source/libnet
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-08-01 00:05:42 +0200
committerMichael Adam <obnox@samba.org>2008-08-01 16:07:59 +0200
commit6047f7b68548b33a2c132fc4333355a2c6abb19a (patch)
treee22eabb7cb3efc3fe68e4735d5a58bf87999629c /source/libnet
parentf40eb8cc20a297c57f6db22e0c2457ce7425d00c (diff)
downloadsamba-6047f7b68548b33a2c132fc4333355a2c6abb19a.tar.gz
libnet keytab: add parameter ingnore_kvno to libnet_keytab_remove_entries()
to allow for removing all entries with given principal and enctype without repecting the kvno (i.e. cleaning "old" entries...) This is called with ignore_kvno == false from libnet_keytab_add_entry() to keep the original behaviour. Michael
Diffstat (limited to 'source/libnet')
-rw-r--r--source/libnet/libnet_keytab.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/libnet/libnet_keytab.c b/source/libnet/libnet_keytab.c
index ffff0f59ab4..87d83fc46e7 100644
--- a/source/libnet/libnet_keytab.c
+++ b/source/libnet/libnet_keytab.c
@@ -113,7 +113,8 @@ static krb5_error_code libnet_keytab_remove_entries(krb5_context context,
krb5_keytab keytab,
const char *principal,
int kvno,
- const krb5_enctype enctype)
+ const krb5_enctype enctype,
+ bool ignore_kvno)
{
krb5_error_code ret;
krb5_kt_cursor cursor;
@@ -131,7 +132,7 @@ static krb5_error_code libnet_keytab_remove_entries(krb5_context context,
{
char *princ_s = NULL;
- if (kt_entry.vno != kvno) {
+ if (kt_entry.vno != kvno && !ignore_kvno) {
goto cont;
}
@@ -210,7 +211,7 @@ static krb5_error_code libnet_keytab_add_entry(krb5_context context,
/* remove duplicates first ... */
ret = libnet_keytab_remove_entries(context, keytab, princ_s, kvno,
- enctype);
+ enctype, false);
if (ret) {
DEBUG(1, ("libnet_keytab_remove_entries failed: %s\n",
error_message(ret)));