diff options
author | Theodore Tso <tytso@mit.edu> | 1997-02-19 19:23:14 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1997-02-19 19:23:14 +0000 |
commit | 7a5f79fb6c8b8d8be7b36b034a42c0f52779b50f (patch) | |
tree | 4e61e9153e3934ee2ae090fa70009b598d1462bf /src/lib/krb5/krb/t_kerb.c | |
parent | 03b7083b9059f89d07f6befbc9e5da638e8affd9 (diff) | |
download | krb5-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.c | 42 |
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); |