]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-multiple-local-realms-20070201
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 7 Feb 2007 04:53:18 +0000 (04:53 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 7 Feb 2007 04:53:18 +0000 (04:53 +0000)
FIXES 52459

The Name to ID RPC must distinguish between local and foreign names

(cherry picked from commit 36233e1e318c7864122cf16c85da012f936c03db)

src/ptserver/ptprocs.c
src/util/get_krbrlm.c

index f08a82b67ebc5d13925b070333b69fa42560c2b5..d32aee0bfe3e29329d36542714c33b951ab69941 100644 (file)
@@ -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,
index c6f4980410a3cd877b74f2d95ee1e519b0dbe1cb..2f9e7d2c8e1ca0a345369750b6bcdedaf3c20157 100644 (file)
@@ -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;