|
@@ -41,6 +41,13 @@ static void list_pending_downloads(digestmap_t *result,
|
|
|
DECLARE_TYPED_DIGESTMAP_FNS(sdmap_, digest_sd_map_t, signed_descriptor_t)
|
|
|
DECLARE_TYPED_DIGESTMAP_FNS(rimap_, digest_ri_map_t, routerinfo_t)
|
|
|
DECLARE_TYPED_DIGESTMAP_FNS(eimap_, digest_ei_map_t, extrainfo_t)
|
|
|
+#define SDMAP_FOREACH(map, keyvar, valvar) \
|
|
|
+ DIGESTMAP_FOREACH(sdmap_to_digestmap(map), keyvar, signed_descriptor_t *, \
|
|
|
+ valvar)
|
|
|
+#define RIMAP_FOREACH(map, keyvar, valvar) \
|
|
|
+ DIGESTMAP_FOREACH(rimap_to_digestmap(map), keyvar, routerinfo_t *, valvar)
|
|
|
+#define EIMAP_FOREACH(map, keyvar, valvar) \
|
|
|
+ DIGESTMAP_FOREACH(eimap_to_digestmap(map), keyvar, extrainfo_t *, valvar)
|
|
|
|
|
|
|
|
|
|
|
@@ -222,7 +229,7 @@ trusted_dirs_flush_certs_to_disk(void)
|
|
|
c->len = cert->cache_info.signed_descriptor_len;
|
|
|
smartlist_add(chunks, c);
|
|
|
});
|
|
|
- } DIGESTMAP_FOREACH_END
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
|
|
|
filename = get_datadir_fname("cached-certs");
|
|
|
if (write_chunks_to_file(filename, chunks, 0)) {
|
|
@@ -259,7 +266,7 @@ trusted_dirs_remove_old_certs(void)
|
|
|
authority_cert_free(cert);
|
|
|
trusted_dir_servers_certs_changed = 1;
|
|
|
});
|
|
|
- } DIGESTMAP_FOREACH_END
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
#undef OLD_CERT_LIFETIME
|
|
|
|
|
|
trusted_dirs_flush_certs_to_disk();
|
|
@@ -299,7 +306,7 @@ authority_cert_get_by_sk_digest(const char *sk_digest)
|
|
|
if (!memcmp(cert->signing_key_digest, sk_digest, DIGEST_LEN))
|
|
|
return cert;
|
|
|
});
|
|
|
- } DIGESTMAP_FOREACH_END
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
@@ -331,7 +338,7 @@ authority_cert_get_all(smartlist_t *certs_out)
|
|
|
DIGESTMAP_FOREACH(trusted_dir_certs, key, cert_list_t *, cl) {
|
|
|
SMARTLIST_FOREACH(cl->certs, authority_cert_t *, c,
|
|
|
smartlist_add(certs_out, c));
|
|
|
- } DIGESTMAP_FOREACH_END
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -4300,7 +4307,6 @@ routerinfo_incompatible_with_extrainfo(routerinfo_t *ri, extrainfo_t *ei,
|
|
|
void
|
|
|
routerlist_assert_ok(routerlist_t *rl)
|
|
|
{
|
|
|
- digestmap_iter_t *iter;
|
|
|
routerinfo_t *r2;
|
|
|
signed_descriptor_t *sd2;
|
|
|
if (!rl)
|
|
@@ -4355,46 +4361,19 @@ routerlist_assert_ok(routerlist_t *rl)
|
|
|
#endif
|
|
|
});
|
|
|
|
|
|
- iter = digestmap_iter_init((digestmap_t*)rl->identity_map);
|
|
|
- while (!digestmap_iter_done(iter)) {
|
|
|
- const char *d;
|
|
|
- void *_r;
|
|
|
- routerinfo_t *r;
|
|
|
- digestmap_iter_get(iter, &d, &_r);
|
|
|
- r = _r;
|
|
|
+ RIMAP_FOREACH(rl->identity_map, d, r) {
|
|
|
tor_assert(!memcmp(r->cache_info.identity_digest, d, DIGEST_LEN));
|
|
|
- iter = digestmap_iter_next((digestmap_t*)rl->identity_map, iter);
|
|
|
- }
|
|
|
- iter = digestmap_iter_init((digestmap_t*)rl->desc_digest_map);
|
|
|
- while (!digestmap_iter_done(iter)) {
|
|
|
- const char *d;
|
|
|
- void *_sd;
|
|
|
- signed_descriptor_t *sd;
|
|
|
- digestmap_iter_get(iter, &d, &_sd);
|
|
|
- sd = _sd;
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
+ SDMAP_FOREACH(rl->desc_digest_map, d, sd) {
|
|
|
tor_assert(!memcmp(sd->signed_descriptor_digest, d, DIGEST_LEN));
|
|
|
- iter = digestmap_iter_next((digestmap_t*)rl->desc_digest_map, iter);
|
|
|
- }
|
|
|
- iter = digestmap_iter_init((digestmap_t*)rl->desc_by_eid_map);
|
|
|
- while (!digestmap_iter_done(iter)) {
|
|
|
- const char *d;
|
|
|
- void *_sd;
|
|
|
- signed_descriptor_t *sd;
|
|
|
- digestmap_iter_get(iter, &d, &_sd);
|
|
|
- sd = _sd;
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
+ SDMAP_FOREACH(rl->desc_by_eid_map, d, sd) {
|
|
|
tor_assert(!tor_digest_is_zero(d));
|
|
|
tor_assert(sd);
|
|
|
tor_assert(!memcmp(sd->extra_info_digest, d, DIGEST_LEN));
|
|
|
- iter = digestmap_iter_next((digestmap_t*)rl->desc_by_eid_map, iter);
|
|
|
- }
|
|
|
- iter = digestmap_iter_init((digestmap_t*)rl->extra_info_map);
|
|
|
- while (!digestmap_iter_done(iter)) {
|
|
|
- const char *d;
|
|
|
- void *_ei;
|
|
|
- extrainfo_t *ei;
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
+ EIMAP_FOREACH(rl->extra_info_map, d, ei) {
|
|
|
signed_descriptor_t *sd;
|
|
|
- digestmap_iter_get(iter, &d, &_ei);
|
|
|
- ei = _ei;
|
|
|
tor_assert(!memcmp(ei->cache_info.signed_descriptor_digest,
|
|
|
d, DIGEST_LEN));
|
|
|
sd = sdmap_get(rl->desc_by_eid_map,
|
|
@@ -4404,8 +4383,7 @@ routerlist_assert_ok(routerlist_t *rl)
|
|
|
tor_assert(!memcmp(ei->cache_info.signed_descriptor_digest,
|
|
|
sd->extra_info_digest, DIGEST_LEN));
|
|
|
}
|
|
|
- iter = digestmap_iter_next((digestmap_t*)rl->extra_info_map, iter);
|
|
|
- }
|
|
|
+ } DIGESTMAP_FOREACH_END;
|
|
|
}
|
|
|
|
|
|
|