[OpenAFS] uw-imap & tokens

Derrick J Brashear shadow@dementia.org
Wed, 4 Apr 2007 15:55:10 -0400 (EDT)


> That's not a good solution.  The afs_pag gets attached to the root user's
> default session keyring, displacing any afs_pag that was previously there.
>
> What does the setpag code look like?

It's in setpag() in src/afs/LINUX/osi_group.c,
http://www.openafs.org/cgi-bin/cvsweb.cgi/openafs/src/afs/LINUX/osi_groups.c?rev=1.25.2.10&content-type=text/x-cvsweb-markup

It's basically:
         (void) install_session_keyring(current, NULL);

         if (current->signal->session_keyring) {
             struct key *key;
             key_perm_t perm;

             perm = KEY_POS_VIEW | KEY_POS_SEARCH;
             perm |= KEY_USR_VIEW | KEY_USR_SEARCH;

#ifdef KEY_ALLOC_NEEDS_STRUCT_TASK
             key = key_alloc(&key_type_afs_pag, "_pag", 0, 0, current, perm, 1);
#else
             key = key_alloc(&key_type_afs_pag, "_pag", 0, 0, perm, 1);
#endif

             if (!IS_ERR(key)) {
                 key_instantiate_and_link(key, (void *) newpag, sizeof(afs_uint32),
                                          current->signal->session_keyring, NULL);
                 key_put(key);
             }
         }