From 962802b04737362c5b06de3b2de510f54b39899f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 4 Feb 2009 22:09:11 +0000 Subject: [PATCH] make --anonymous only take realm. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24608 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kuser/kinit.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/kuser/kinit.c b/kuser/kinit.c index 1f4c80f22..09e24e37e 100644 --- a/kuser/kinit.c +++ b/kuser/kinit.c @@ -443,10 +443,8 @@ get_new_tickets(krb5_context context, krb5_get_init_creds_opt_set_forwardable (opt, forwardable_flag); if(proxiable_flag != -1) krb5_get_init_creds_opt_set_proxiable (opt, proxiable_flag); - if(anonymous_flag) { + if(anonymous_flag) krb5_get_init_creds_opt_set_anonymous (opt, anonymous_flag); - krb5_principal_set_type(context, principal, KRB5_NT_WELLKNOWN); - } if (pac_flag != -1) krb5_get_init_creds_opt_set_pac_request(context, opt, pac_flag ? TRUE : FALSE); @@ -776,14 +774,30 @@ main (int argc, char **argv) if (canonicalize_flag || enterprise_flag) parseflags |= KRB5_PRINCIPAL_PARSE_ENTERPRISE; - if (argv[0]) { - ret = krb5_parse_name_flags (context, argv[0], parseflags, &principal); + if (anonymous_flag) { + krb5_realm realm = NULL; + + if (argv[0]) + realm = argv[0]; + + ret = krb5_make_principal(context, &principal, realm, + KRB5_WELLKNOWN_NAME, KRB5_ANON_NAME, + NULL); if (ret) - krb5_err (context, 1, ret, "krb5_parse_name"); + krb5_err(context, 1, ret, "krb5_build_principal"); + krb5_principal_set_type(context, principal, KRB5_NT_WELLKNOWN); + } else { - ret = krb5_get_default_principal (context, &principal); - if (ret) - krb5_err (context, 1, ret, "krb5_get_default_principal"); + if (argv[0]) { + ret = krb5_parse_name_flags (context, argv[0], parseflags, + &principal); + if (ret) + krb5_err (context, 1, ret, "krb5_parse_name"); + } else { + ret = krb5_get_default_principal (context, &principal); + if (ret) + krb5_err (context, 1, ret, "krb5_get_default_principal"); + } } if(fcache_version)