aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/t_kerb.c
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1997-02-19 19:23:14 +0000
committerTheodore Tso <tytso@mit.edu>1997-02-19 19:23:14 +0000
commit7a5f79fb6c8b8d8be7b36b034a42c0f52779b50f (patch)
tree4e61e9153e3934ee2ae090fa70009b598d1462bf /src/lib/krb5/krb/t_kerb.c
parent03b7083b9059f89d07f6befbc9e5da638e8affd9 (diff)
downloadkrb5-7a5f79fb6c8b8d8be7b36b034a42c0f52779b50f.zip
krb5-7a5f79fb6c8b8d8be7b36b034a42c0f52779b50f.tar.gz
krb5-7a5f79fb6c8b8d8be7b36b034a42c0f52779b50f.tar.bz2
Added new function krb5_set_principal_realm(), which is used to
mutate the realm of a principal. This avoids a really heinous abstraction boundary violation by the appl/bsd and appl/telnet code. A test case for this function was added to t_kerb, and a test new test acse to t_ref_kerb.out git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9916 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/t_kerb.c')
-rw-r--r--src/lib/krb5/krb/t_kerb.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/t_kerb.c b/src/lib/krb5/krb/t_kerb.c
index 3a960b8..310d0d1 100644
--- a/src/lib/krb5/krb/t_kerb.c
+++ b/src/lib/krb5/krb/t_kerb.c
@@ -76,12 +76,46 @@ fail:
krb5_free_principal(ctx, princ2);
}
+void test_set_realm(ctx, name, realm)
+ krb5_context ctx;
+ const char *name;
+ const char *realm;
+{
+ krb5_error_code retval;
+ krb5_principal princ = 0;
+ char *outname = 0;
+
+ retval = krb5_parse_name(ctx, name, &princ);
+ if (retval) {
+ com_err("krb5_parse_name", retval, 0);
+ goto fail;
+ }
+ retval = krb5_set_principal_realm(ctx, princ, realm);
+ if (retval) {
+ com_err("krb5_set_principal_realm", retval, 0);
+ goto fail;
+ }
+ retval = krb5_unparse_name(ctx, princ, &outname);
+ if (retval) {
+ com_err("krb5_unparse_name", retval, 0);
+ goto fail;
+ }
+ printf("old principal: %s, modified principal: %s\n", name,
+ outname);
+fail:
+ if (outname)
+ free(outname);
+ if (princ)
+ krb5_free_principal(ctx, princ);
+}
+
void usage(progname)
char *progname;
{
fprintf(stderr, "%s: Usage: %s 425_conv_principal <name> <inst> <realm\n",
progname, progname);
fprintf(stderr, "\t%s parse_name <name>\n", progname);
+ fprintf(stderr, "\t%s set_realm <name> <realm>\n", progname);
exit(1);
}
@@ -123,6 +157,14 @@ main(argc, argv)
if (!argc) usage(progname);
name = *argv;
test_parse_name(ctx, name);
+ } else if (strcmp(*argv, "set_realm") == 0) {
+ argc--; argv++;
+ if (!argc) usage(progname);
+ name = *argv;
+ argc--; argv++;
+ if (!argc) usage(progname);
+ realm = *argv;
+ test_set_realm(ctx, name, realm);
}
else
usage(progname);