error checking.
svn:r6576
routerinfo_t *router;
entry_guard_t *entry;
- if (chosen)
+ if (chosen) {
router = chosen;
- else
+ if (is_an_entry_guard(router->cache_info.identity_digest))
+ return NULL;
+ } else {
router = choose_good_entry_server(CIRCUIT_PURPOSE_C_GENERAL, NULL);
- if (!router)
- return NULL;
+ if (!router)
+ return NULL;
+ }
entry = tor_malloc_zero(sizeof(entry_guard_t));
log_info(LD_CIRC, "Chose '%s' as new entry guard.", router->nickname);
strlcpy(entry->nickname, router->nickname, sizeof(entry->nickname));