Commit 7b0ec744 authored by Nick Mathewson's avatar Nick Mathewson
Browse files

Switch routerlist.c to using memcmp on digests rather than...

Switch routerlist.c to using memcmp on digests rather than crypto_pk_cmp_keys(); speed up find_whitespace a lot (8x for me) by using a switch statement.  This should speed parsing a lot of routers at once by a lot.

svn:r8430
parent e9abe750
Changes in version 0.1.2.2-alpha - 2006-??-??
o Minor Bugfixes
- Small performance improvements on parsing and inserting
descriptors.
Changes in version 0.1.2.1-alpha - 2006-08-27
o Major features:
- Add "eventdns" async dns library from Adam Langley, tweaked to
......
......@@ -434,11 +434,20 @@ const char *
find_whitespace(const char *s)
{
/* tor_assert(s); */
while (*s && !TOR_ISSPACE(*s) && *s != '#')
s++;
return s;
while (1) {
switch (*s)
{
case '\0':
case '#':
case ' ':
case '\r':
case '\n':
case '\t':
return s;
default:
++s;
}
}
}
/** Return true iff the 'len' bytes at 'mem' are all zero. */
......
......@@ -1674,7 +1674,8 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
routerinfo_t *old_router = smartlist_get(routerlist->routers, i);
/* XXXX This might be a slow point; can't we just look up in one of the
* digestmaps? -NM */
if (!crypto_pk_cmp_keys(router->identity_pkey,old_router->identity_pkey)) {
if (!memcmp(router->cache_info.identity_digest,
old_router->cache_info.identity_digest, DIGEST_LEN)) {
if (router->cache_info.published_on <=
old_router->cache_info.published_on) {
/* Same key, but old */
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment