diff options
author | Maximilian Wilhelm <max@rfc2324.org> | 2013-07-01 11:58:13 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2013-07-01 12:03:11 -0400 |
commit | a402f768db1dc6497cf7f592b33e142936897de2 (patch) | |
tree | 4f38dfc3069829b9df34696fa22a6f79bd5ecc96 /utils/gssd/krb5_util.c | |
parent | c8887780aec02209db27f397b0e4b1f6fc065071 (diff) | |
download | nfs-utils-a402f768db1dc6497cf7f592b33e142936897de2.tar.gz nfs-utils-a402f768db1dc6497cf7f592b33e142936897de2.tar.xz nfs-utils-a402f768db1dc6497cf7f592b33e142936897de2.zip |
Fix handling of preferred realm command line option.
The current implementation ignores any preferred realm specified on the
command line. Fix this behaviour and make sure the preferred realm is
used as first realm when trying to acquire a keytab entry
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
Signed-off-by: Frederik Moellers <frederik.moellers@upb.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/gssd/krb5_util.c')
-rw-r--r-- | utils/gssd/krb5_util.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c index 9ef80f0..abebdcd 100644 --- a/utils/gssd/krb5_util.c +++ b/utils/gssd/krb5_util.c @@ -852,11 +852,19 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, const char *tgtname, } /* - * Try the "appropriate" realm first, and if nothing found for that - * realm, try the default realm (if it hasn't already been tried). + * Make sure the preferred_realm, which may have been explicitly set + * on the command line, is tried first. If nothing is found go on with + * the host and local default realm (if that hasn't already been tried). */ i = 0; realm = realmnames[i]; + + if (strcmp (realm, preferred_realm) != 0) { + realm = preferred_realm; + /* resetting the realmnames index */ + i = -1; + } + while (1) { if (realm == NULL) { tried_all = 1; |