mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
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
This commit is contained in:
parent
e9abe750ea
commit
7b0ec744bc
@ -1,3 +1,9 @@
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user