mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 15:15:07 -05:00
keys: don't cache position for unknown keys
This commit is contained in:
33
keys.c
33
keys.c
@@ -295,13 +295,20 @@ lookup_key(unsigned long id)
|
|||||||
static int
|
static int
|
||||||
get_key_pos(unsigned long key_id)
|
get_key_pos(unsigned long key_id)
|
||||||
{
|
{
|
||||||
if (!cache_valid || key_id != cache_key_id) {
|
int position;
|
||||||
|
|
||||||
|
if (cache_valid && key_id == cache_key_id)
|
||||||
|
return cache_key_pos;
|
||||||
|
|
||||||
|
position = lookup_key(key_id);
|
||||||
|
|
||||||
|
if (position >= 0) {
|
||||||
cache_valid = 1;
|
cache_valid = 1;
|
||||||
cache_key_pos = lookup_key(key_id);
|
cache_key_pos = position;
|
||||||
cache_key_id = key_id;
|
cache_key_id = key_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
return cache_key_pos;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
@@ -321,25 +328,7 @@ KEY_GetCommandKey(void)
|
|||||||
int
|
int
|
||||||
KEY_KeyKnown(unsigned long key_id)
|
KEY_KeyKnown(unsigned long key_id)
|
||||||
{
|
{
|
||||||
int position;
|
return get_key_pos(key_id) >= 0;
|
||||||
|
|
||||||
if (cache_valid && (key_id == cache_key_id)) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
position = lookup_key(key_id);
|
|
||||||
|
|
||||||
if (position >= 0) {
|
|
||||||
/* Store key in cache, we will probably be using it in a
|
|
||||||
minute... */
|
|
||||||
cache_valid = 1;
|
|
||||||
cache_key_pos = position;
|
|
||||||
cache_key_id = key_id;
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|||||||
Reference in New Issue
Block a user