From: Alexandra Ellwood Date: Thu, 4 Nov 2004 19:27:24 +0000 (+0000) Subject: * prof_init.c, profile.hin: added profile_is_modified and profile_is_writable so... X-Git-Tag: ms-bug-test-20060525~470 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=428970d0c17cd80ec166e407170fa9553e2efffa;p=krb5.git * prof_init.c, profile.hin: added profile_is_modified and profile_is_writable so that callers can check to see if profile_release() will fail before calling it ticket: 2751 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16860 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/util/profile/ChangeLog b/src/util/profile/ChangeLog index 1a28ddd96..1499d25a0 100644 --- a/src/util/profile/ChangeLog +++ b/src/util/profile/ChangeLog @@ -1,3 +1,9 @@ +2004-11-04 Alexandra Ellwood + + * prof_init.c, profile.hin: added profile_is_modified + and profile_is_writable so that callers can check to see + if profile_release() will fail before calling it. + 2004-11-04 Alexandra Ellwood * prof_set.c: profile calls which set values should not fail diff --git a/src/util/profile/prof_init.c b/src/util/profile/prof_init.c index 02d61ee1f..9aafb3c63 100644 --- a/src/util/profile/prof_init.c +++ b/src/util/profile/prof_init.c @@ -120,6 +120,36 @@ profile_init_path(const_profile_filespec_list_t filepath, return retval; } +errcode_t KRB5_CALLCONV +profile_is_writable(profile_t profile, int *writable) +{ + if (!profile || profile->magic != PROF_MAGIC_PROFILE) + return PROF_MAGIC_PROFILE; + + if (!writable) + return EINVAL; + + if (profile->first_file) + *writable = (profile->first_file->data->flags & PROFILE_FILE_RW); + + return 0; +} + +errcode_t KRB5_CALLCONV +profile_is_modified(profile_t profile, int *modified) +{ + if (!profile || profile->magic != PROF_MAGIC_PROFILE) + return PROF_MAGIC_PROFILE; + + if (!modified) + return EINVAL; + + if (profile->first_file) + *modified = (profile->first_file->data->flags & PROFILE_FILE_DIRTY); + + return 0; +} + errcode_t KRB5_CALLCONV profile_flush(profile_t profile) { diff --git a/src/util/profile/profile.hin b/src/util/profile/profile.hin index ec822ca8b..10abe725a 100644 --- a/src/util/profile/profile.hin +++ b/src/util/profile/profile.hin @@ -54,6 +54,11 @@ long KRB5_CALLCONV profile_flush_to_buffer void KRB5_CALLCONV profile_free_buffer (profile_t profile, char *buf); +long KRB5_CALLCONV profile_is_writable + (profile_t profile, int *writable); +long KRB5_CALLCONV profile_is_modified + (profile_t profile, int *modified); + void KRB5_CALLCONV profile_abandon (profile_t profile);