Extract guard_selection_infer_type into its own function.

This commit is contained in:
Nick Mathewson 2016-11-30 10:16:24 -05:00
parent 13315812e8
commit 217590ad05
2 changed files with 21 additions and 6 deletions

View File

@ -194,14 +194,13 @@ should_apply_guardfraction(const networkstatus_t *ns)
}
/**
* Allocate and return a new guard_selection_t, with the name <b>name</b>.
* Try to determine the correct type for a selection named "name",
* if <b>type</b> is GS_TYPE_INFER.
*/
STATIC guard_selection_t *
guard_selection_new(const char *name,
guard_selection_type_t type)
STATIC guard_selection_type_t
guard_selection_infer_type(guard_selection_type_t type,
const char *name)
{
guard_selection_t *gs;
if (type == GS_TYPE_INFER) {
if (!strcmp(name, "legacy"))
type = GS_TYPE_LEGACY;
@ -212,6 +211,19 @@ guard_selection_new(const char *name,
else
type = GS_TYPE_NORMAL;
}
return type;
}
/**
* Allocate and return a new guard_selection_t, with the name <b>name</b>.
*/
STATIC guard_selection_t *
guard_selection_new(const char *name,
guard_selection_type_t type)
{
guard_selection_t *gs;
type = guard_selection_infer_type(type, name);
gs = tor_malloc_zero(sizeof(*gs));
gs->name = tor_strdup(name);

View File

@ -490,6 +490,9 @@ STATIC double get_extreme_restriction_threshold(void);
// ---------- XXXX these functions and definitions are post-prop271.
HANDLE_DECL(entry_guard, entry_guard_t, STATIC)
STATIC guard_selection_type_t guard_selection_infer_type(
guard_selection_type_t type_in,
const char *name);
STATIC guard_selection_t *guard_selection_new(const char *name,
guard_selection_type_t type);
STATIC guard_selection_t *get_guard_selection_by_name(