mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* keyring.h, keyring.c (keyring_register_filename): Return the pointer if
a given keyring is registered twice. * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a default keyring. (keydb_locate_writable): Prefer the default keyring if possible. * g10.c (main): Add --default-keyring option.
This commit is contained in:
parent
bf4a893586
commit
7911a5ed86
6 changed files with 89 additions and 29 deletions
|
@ -190,25 +190,28 @@ update_offset_hash_table_from_kb (OffsetHashTable tbl, KBNODE node, off_t off)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Register a filename for plain keyring files. Returns a pointer to
|
||||
* be used to create a handles etc or NULL to indicate that it has
|
||||
* already been registered */
|
||||
void *
|
||||
keyring_register_filename (const char *fname, int secret)
|
||||
* Register a filename for plain keyring files. ptr is set to a
|
||||
* pointer to be used to create a handles etc, or the already-issued
|
||||
* pointer if it has already been registered. The function returns 1
|
||||
* if a new keyring was registered.
|
||||
*/
|
||||
int
|
||||
keyring_register_filename (const char *fname, int secret, void **ptr)
|
||||
{
|
||||
KR_NAME kr;
|
||||
|
||||
if (active_handles)
|
||||
BUG (); /* We don't allow that */
|
||||
|
||||
for (kr=kr_names; kr; kr = kr->next) {
|
||||
for (kr=kr_names; kr; kr = kr->next)
|
||||
{
|
||||
if ( !compare_filenames (kr->fname, fname) )
|
||||
return NULL; /* already registered */
|
||||
}
|
||||
{
|
||||
*ptr=kr;
|
||||
return 0; /* already registered */
|
||||
}
|
||||
}
|
||||
|
||||
kr = m_alloc (sizeof *kr + strlen (fname));
|
||||
strcpy (kr->fname, fname);
|
||||
|
@ -224,7 +227,9 @@ keyring_register_filename (const char *fname, int secret)
|
|||
if (!kr_offtbl)
|
||||
kr_offtbl = new_offset_hash_table ();
|
||||
|
||||
return kr;
|
||||
*ptr=kr;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue