DEVEL15-windows-netidmgr-vs-referrals-20081111
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 11 Nov 2008 03:33:51 +0000 (03:33 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 11 Nov 2008 03:33:51 +0000 (03:33 +0000)
LICENSE MIT

kfw referrals logic broke the logic for automated configuration of
the workstation cell with a new identity.  Now if a referrals
response is returned, assume the cell belongs with the new identity.

In the long term, we need to change the logic as follows:
 1. if realm indicates referrals, try to obtain the krb5 service ticket
    but do not generate a token
 2. if the service ticket can be obtained and
  a. if the cell is not bound to any other identities,
     then bind it to this one
  b. if the cell is bound to another identity, prompt the user to ask
     which identity (or both) should this cell be bound to and follow
     the user's instruction

(cherry picked from commit de2044ca66f0de5bcdf0505373fb189b09cd49ef)

src/WINNT/netidmgr_plugin/afsfuncs.c

index 34a564f..51db4ce 100644 (file)
@@ -1614,8 +1614,8 @@ afs_check_for_cell_realm_match(khm_handle identity, char * cell) {
     realm = afs_realm_of_cell(&cellconfig, FALSE);
     if (cellconfig.linkedCell)
         free(cellconfig.linkedCell);
-    if (realm == NULL)
-        return FALSE;
+    if (!realm[0])      /* referral; assume it matches */
+        return TRUE;
 
     AnsiStrToUnicode(wrealm, sizeof(wrealm), realm);