aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2004-08-12 21:33:18 +0000
committerTom Yu <tlyu@mit.edu>2004-08-12 21:33:18 +0000
commit27b8c74a7adfcefbec493d957ba798e232ecd404 (patch)
treeee403222635e8defb0093f3950a511d9b2986210 /src
parent3e02a517faf35beb5dbee510ca9097bb536b00b4 (diff)
downloadkrb5-27b8c74a7adfcefbec493d957ba798e232ecd404.zip
krb5-27b8c74a7adfcefbec493d957ba798e232ecd404.tar.gz
krb5-27b8c74a7adfcefbec493d957ba798e232ecd404.tar.bz2
pullup from trunk
ticket: 2634 version_fixed: 1.3.5 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-3@16657 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/include/ChangeLog5
-rw-r--r--src/include/k5-int.h1
-rw-r--r--src/lib/krb4/CCache-glue.c48
-rw-r--r--src/lib/krb4/ChangeLog5
-rw-r--r--src/lib/krb5/ccache/ChangeLog5
-rw-r--r--src/lib/krb5/ccache/ccdefault.c94
-rw-r--r--src/lib/krb5/os/ChangeLog6
-rw-r--r--src/lib/krb5/os/ccdefname.c7
-rw-r--r--src/lib/krb5/os/init_os_ctx.c6
9 files changed, 55 insertions, 122 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog
index f7283b9..4eb59a4 100644
--- a/src/include/ChangeLog
+++ b/src/include/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Alexandra Ellwood <lxs@mit.edu>
+
+ * k5-int.h (krb5_os_context)
+ Removed default_ccprincipal field from krb5_context
+
2004-01-04 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h: conditionally define strcasecmp/strncasecmp macros
diff --git a/src/include/k5-int.h b/src/include/k5-int.h
index 61333e4..6ea6d63 100644
--- a/src/include/k5-int.h
+++ b/src/include/k5-int.h
@@ -774,7 +774,6 @@ typedef struct _krb5_os_context {
krb5_int32 usec_offset;
krb5_int32 os_flags;
char * default_ccname;
- krb5_principal default_ccprincipal;
} *krb5_os_context;
/*
diff --git a/src/lib/krb4/CCache-glue.c b/src/lib/krb4/CCache-glue.c
index 3a58537..db00631 100644
--- a/src/lib/krb4/CCache-glue.c
+++ b/src/lib/krb4/CCache-glue.c
@@ -68,11 +68,7 @@ static void UpdateDefaultCache (void);
/*
* Name of the default cache
*/
-char* gDefaultCacheName = NULL;
-char gDefaultName[ANAME_SZ];
-char gDefaultInstance[INST_SZ];
-char gDefaultRealm[REALM_SZ];
-Boolean gHaveDefaultPrincipal = false;
+char* gDefaultCacheName = NULL;
/*
* Initialize credentials cache
@@ -329,44 +325,13 @@ krb_get_cred (
if (strncmp (service, KRB_TICKET_GRANTING_TICKET, ANAME_SZ) == 0) {
OSStatus err;
char *cacheName;
- KLPrincipal defaultPrincipal = nil;
KLPrincipal outPrincipal;
- if (gHaveDefaultPrincipal) {
- err = KLCreatePrincipalFromTriplet (gDefaultName, gDefaultInstance, gDefaultRealm, &defaultPrincipal);
- if (err != klNoErr)
- defaultPrincipal = nil;
- }
-
- err = __KLInternalAcquireInitialTicketsForCache (defaultPrincipal, NULL, TKT_FILE,
- kerberosVersion_V4, &outPrincipal, &cacheName);
- if (defaultPrincipal != nil)
- KLDisposePrincipal (defaultPrincipal);
-
- if (err == noErr) {
- char* newName = nil;
- char* newInstance = nil;
- char* newRealm = nil;
-
- gHaveDefaultPrincipal = false;
- err = KLGetTripletFromPrincipal (outPrincipal, &newName, &newInstance, &newRealm);
- if (err == noErr) {
- // If this isn't a valid krb4 principal, don't store it or track the cache name
- if ((strlen (newName) < ANAME_SZ) && (strlen (newInstance) < INST_SZ) &&
- (strlen (newRealm) < REALM_SZ)) {
- strcpy (gDefaultName, newName);
- strcpy (gDefaultInstance, newInstance);
- strcpy (gDefaultRealm, newRealm);
- krb_set_tkt_string (cacheName); // Tickets for the krb4 principal went here
-
- gHaveDefaultPrincipal = true;
- }
-
- KLDisposeString (newName);
- KLDisposeString (newInstance);
- KLDisposeString (newRealm);
- }
-
+ err = __KLInternalAcquireInitialTicketsForCache (TKT_FILE, kerberosVersion_V4, NULL,
+ &outPrincipal, &cacheName);
+
+ if (err == klNoErr) {
+ krb_set_tkt_string (cacheName); // Tickets for the krb4 principal went here
KLDisposeString (cacheName);
KLDisposePrincipal (outPrincipal);
} else {
@@ -498,7 +463,6 @@ krb_set_tkt_string (
gDefaultCacheName = malloc (strlen (val) + 1);
if (gDefaultCacheName != NULL)
strcpy (gDefaultCacheName, val);
- gHaveDefaultPrincipal = false;
}
}
diff --git a/src/lib/krb4/ChangeLog b/src/lib/krb4/ChangeLog
index 0842831..ae5e548 100644
--- a/src/lib/krb4/ChangeLog
+++ b/src/lib/krb4/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Alexandra Ellwood <lxs@mit.edu>
+
+ * CCache-glue.c (krb_get_cred)
+ Removed default principal tracking.
+
2003-08-15 Alexandra Ellwood <lxs@mit.edu>
* mk_auth.c: krb_check_auth clears the return value for the
diff --git a/src/lib/krb5/ccache/ChangeLog b/src/lib/krb5/ccache/ChangeLog
index afcbdd2..16de041 100644
--- a/src/lib/krb5/ccache/ChangeLog
+++ b/src/lib/krb5/ccache/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Alexandra Ellwood <lxs@mit.edu>
+
+ * ccdefault.c (krb5_cc_default, krb5int_cc_default)
+ Removed default_ccprincipal field from krb5_context
+
2004-07-07 Jeffrey Altman <jaltman@mit.edu>
* cc_mslsa.c: Fix thread safety
diff --git a/src/lib/krb5/ccache/ccdefault.c b/src/lib/krb5/ccache/ccdefault.c
index 3dfb1a3..8a45a24 100644
--- a/src/lib/krb5/ccache/ccdefault.c
+++ b/src/lib/krb5/ccache/ccdefault.c
@@ -42,7 +42,7 @@ static HANDLE hLeashDLL = INVALID_HANDLE_VALUE;
krb5_error_code KRB5_CALLCONV
krb5_cc_default(krb5_context context, krb5_ccache *ccache)
{
- krb5_error_code retval;
+ krb5_error_code retval;
krb5_os_context os_ctx;
if (!context || context->magic != KV5M_CONTEXT)
@@ -50,13 +50,7 @@ krb5_cc_default(krb5_context context, krb5_ccache *ccache)
os_ctx = context->os_context;
- retval = krb5_cc_resolve(context, krb5_cc_default_name(context), ccache);
- if (!retval && ccache && !os_ctx->default_ccprincipal) {
- /* We got a ccache... remember what principal is associated with it */
- if (krb5_cc_get_principal (context, *ccache, &os_ctx->default_ccprincipal) != 0)
- os_ctx->default_ccprincipal = 0;
- }
- return retval;
+ return krb5_cc_resolve(context, krb5_cc_default_name(context), ccache);
}
/* This is the internal function which opens the default ccache. On platforms supporting
@@ -69,53 +63,29 @@ krb5_cc_default(krb5_context context, krb5_ccache *ccache)
krb5_error_code KRB5_CALLCONV
krb5int_cc_default(krb5_context context, krb5_ccache *ccache)
{
-#ifdef USE_LOGIN_LIBRARY
- {
- /* make sure the default cache has tix before you open it */
- char *outCacheName;
- KLPrincipal desiredPrincipal = nil;
- krb5_principal desiredKrb5Principal;
- krb5_error_code err;
- krb5_os_context os_ctx;
+ if (!context || context->magic != KV5M_CONTEXT) {
+ return KV5M_CONTEXT;
+ }
- if (!context || context->magic != KV5M_CONTEXT)
- return KV5M_CONTEXT;
-
- os_ctx = context->os_context;
-
- desiredKrb5Principal = os_ctx->default_ccprincipal;
-
- /* do we want a specific client principal? */
- if (desiredKrb5Principal != NULL) {
- char *desiredName;
-
- err = krb5_unparse_name (context, desiredKrb5Principal, &desiredName);
- if (!err) {
- err = KLCreatePrincipalFromString (desiredName,
- kerberosVersion_V5, &desiredPrincipal);
- krb5_free_unparsed_name (context, desiredName);
- if (err != klNoErr)
- desiredPrincipal = nil;
- }
- }
-
- /* Try to make sure a krb5 tgt is in the cache */
- err = __KLInternalAcquireInitialTicketsForCache (desiredPrincipal, NULL,
- krb5_cc_default_name (context),
- kerberosVersion_V5, nil, &outCacheName);
- if (err == klNoErr) {
- /* This function tries to get tickets and put them in the specified
- cache, however, if the cache does not exist, it may choose to put
- them elsewhere (ie: the system default) so we set that here */
- if (strcmp (krb5_cc_default_name (context), outCacheName) != 0) {
- krb5_cc_set_default_name (context, outCacheName);
- }
- KLDisposeString (outCacheName);
- }
-
- if (desiredPrincipal != nil)
- KLDisposePrincipal (desiredPrincipal);
- }
+#ifdef USE_LOGIN_LIBRARY
+ {
+ /* make sure the default cache has tix before you open it */
+ KLStatus err = klNoErr;
+ char *outCacheName = NULL;
+
+ /* Try to make sure a krb5 tgt is in the cache */
+ err = __KLInternalAcquireInitialTicketsForCache (krb5_cc_default_name (context), kerberosVersion_V5,
+ NULL, NULL, &outCacheName);
+ if (err == klNoErr) {
+ /* This function tries to get tickets and put them in the specified
+ cache, however, if the cache does not exist, it may choose to put
+ them elsewhere (ie: the system default) so we set that here */
+ if (strcmp (krb5_cc_default_name (context), outCacheName) != 0) {
+ krb5_cc_set_default_name (context, outCacheName);
+ }
+ KLDisposeString (outCacheName);
+ }
+ }
#else
#ifdef USE_LEASH
@@ -123,20 +93,12 @@ krb5int_cc_default(krb5_context context, krb5_ccache *ccache)
hLeashDLL = LoadLibrary("leashw32.dll");
if ( hLeashDLL != INVALID_HANDLE_VALUE ) {
(FARPROC) pLeash_AcquireInitialTicketsIfNeeded =
- GetProcAddress(hLeashDLL, "not_an_API_Leash_AcquireInitialTicketsIfNeeded");
+ GetProcAddress(hLeashDLL, "not_an_API_Leash_AcquireInitialTicketsIfNeeded");
}
}
-
- if ( pLeash_AcquireInitialTicketsIfNeeded )
- {
- krb5_os_context os_ctx;
-
- if (!context || context->magic != KV5M_CONTEXT)
- return KV5M_CONTEXT;
-
- os_ctx = context->os_context;
-
- pLeash_AcquireInitialTicketsIfNeeded(context,os_ctx->default_ccprincipal);
+
+ if ( pLeash_AcquireInitialTicketsIfNeeded ) {
+ pLeash_AcquireInitialTicketsIfNeeded(context, NULL);
}
#endif
#endif
diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog
index 074a62a..3d312b4 100644
--- a/src/lib/krb5/os/ChangeLog
+++ b/src/lib/krb5/os/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-15 Alexandra Ellwood <lxs@mit.edu>
+
+ * init_os_ctx.c (krb5_os_init_context, krb5_os_free_context)
+ ccdefname.c (krb5_cc_set_default_name):
+ Removed default_ccprincipal field from krb5_context
+
2004-06-02 Tom Yu <tlyu@mit.edu>
* an_to_ln.c (do_replacement): Patch from Bill Dodd to fix missing
diff --git a/src/lib/krb5/os/ccdefname.c b/src/lib/krb5/os/ccdefname.c
index e77bcfe..9db56d4 100644
--- a/src/lib/krb5/os/ccdefname.c
+++ b/src/lib/krb5/os/ccdefname.c
@@ -259,13 +259,6 @@ krb5_cc_set_default_name(krb5_context context, const char *name)
return ENOMEM;
strcpy(new_name, name_buf);
- if (!os_ctx->default_ccname || (strcmp(os_ctx->default_ccname, new_name) != 0)) {
- /* the ccache changed... forget the old principal */
- if (os_ctx->default_ccprincipal)
- krb5_free_principal (context, os_ctx->default_ccprincipal);
- os_ctx->default_ccprincipal = 0; /* we don't care until we use it */
- }
-
if (os_ctx->default_ccname)
free(os_ctx->default_ccname);
diff --git a/src/lib/krb5/os/init_os_ctx.c b/src/lib/krb5/os/init_os_ctx.c
index c43771d..f46638e 100644
--- a/src/lib/krb5/os/init_os_ctx.c
+++ b/src/lib/krb5/os/init_os_ctx.c
@@ -358,7 +358,6 @@ krb5_os_init_context(krb5_context ctx)
os_ctx->usec_offset = 0;
os_ctx->os_flags = 0;
os_ctx->default_ccname = 0;
- os_ctx->default_ccprincipal = 0;
krb5_cc_set_default_name(ctx, NULL);
@@ -471,11 +470,6 @@ krb5_os_free_context(krb5_context ctx)
os_ctx->default_ccname = 0;
}
- if (os_ctx->default_ccprincipal) {
- krb5_free_principal (ctx, os_ctx->default_ccprincipal);
- os_ctx->default_ccprincipal = 0;
- }
-
os_ctx->magic = 0;
free(os_ctx);
ctx->os_context = 0;