From: Jeffrey Altman Date: Wed, 7 Feb 2007 04:53:18 +0000 (+0000) Subject: DEVEL15-multiple-local-realms-20070201 X-Git-Tag: openafs-devel-1_5_15~37 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=285b5fcefc4302085f7b2e3b263787be61626aa5;p=packages%2Fo%2Fopenafs.git DEVEL15-multiple-local-realms-20070201 FIXES 52459 The Name to ID RPC must distinguish between local and foreign names (cherry picked from commit 36233e1e318c7864122cf16c85da012f936c03db) --- diff --git a/src/ptserver/ptprocs.c b/src/ptserver/ptprocs.c index f08a82b67..d32aee0bf 100644 --- a/src/ptserver/ptprocs.c +++ b/src/ptserver/ptprocs.c @@ -628,7 +628,24 @@ nameToID(call, aname, aid) ABORT_WITH(tt, code); for (i = 0; i < aname->namelist_len; i++) { - code = NameToID(tt, aname->namelist_val[i], &aid->idlist_val[i]); + char vname[256]; + char *nameinst, *cell; + + strncpy(vname, aname->namelist_val[i], sizeof(vname)); + vname[sizeof(vname)-1] ='\0'; + + nameinst = vname; + cell = strchr(vname, '@'); + if (cell) { + *cell = '\0'; + cell++; + } + + if (cell && afs_is_foreign_ticket_name(nameinst,NULL,cell,pr_realmName)) + code = NameToID(tt, aname->namelist_val[i], &aid->idlist_val[i]); + else + code = NameToID(tt, nameinst, &aid->idlist_val[i]); + if (code != PRSUCCESS) aid->idlist_val[i] = ANONYMOUSID; osi_audit(PTS_NmToIdEvent, code, AUD_STR, diff --git a/src/util/get_krbrlm.c b/src/util/get_krbrlm.c index c6f498041..2f9e7d2c8 100644 --- a/src/util/get_krbrlm.c +++ b/src/util/get_krbrlm.c @@ -122,7 +122,7 @@ afs_is_foreign_ticket_name(char *tname, char *tinst, char * tcell, char *localre foreign = 1; #if defined(AFS_ATHENA_STDENV) || defined(AFS_KERBREALM_ENV) - if (!foreign) { + if (foreign) { static char local_realms[AFS_NUM_LREALMS][AFS_REALM_SZ]; static int num_lrealms = -1; int lrealm_match, i;