[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);
}
}