From 6047f7b68548b33a2c132fc4333355a2c6abb19a Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 1 Aug 2008 00:05:42 +0200 Subject: 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 --- source/libnet/libnet_keytab.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/libnet') 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))); -- cgit v1.2.1