summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Shepard <andrea@torproject.org>2013-05-09 08:23:53 -0700
committerAndrea Shepard <andrea@torproject.org>2013-05-09 10:55:02 -0700
commitc0d96bae666c1dc0c16b4df69190fa126131aa65 (patch)
tree1843f7405d11ca73bb18dbf8aec4ddb0862942ed
parent7b6ee54bdc96faf1cc72445a6dd7a1130148129c (diff)
downloadtor-c0d96bae666c1dc0c16b4df69190fa126131aa65.tar.gz
tor-c0d96bae666c1dc0c16b4df69190fa126131aa65.zip
Clean up ugly constants in connection_dir_download_cert_failed(), and fix a broken one
-rw-r--r--src/or/directory.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index 8dd5a7cdc8..f65ac87cfd 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -803,6 +803,8 @@ connection_dir_bridge_routerdesc_failed(dir_connection_t *conn)
static void
connection_dir_download_cert_failed(dir_connection_t *conn, int status)
{
+ const char *fp_pfx = "fp/";
+ const char *fpsk_pfx = "fp-sk/";
smartlist_t *failed;
tor_assert(conn->_base.purpose == DIR_PURPOSE_FETCH_CERTIFICATE);
@@ -814,19 +816,20 @@ connection_dir_download_cert_failed(dir_connection_t *conn, int status)
* with "fp/") or download by fingerprint/signing key pair
* (resource starts with "fp-sk/").
*/
- if (!strcmpstart(conn->requested_resource, "fp/")) {
+ if (!strcmpstart(conn->requested_resource, fp_pfx)) {
/* Download by fingerprint case */
- dir_split_resource_into_fingerprints(conn->requested_resource + 3,
+ dir_split_resource_into_fingerprints(conn->requested_resource +
+ strlen(fp_pfx),
failed, NULL, DSR_HEX);
SMARTLIST_FOREACH_BEGIN(failed, char *, cp) {
/* Null signing key digest indicates download by fp only */
authority_cert_dl_failed(cp, NULL, status);
tor_free(cp);
} SMARTLIST_FOREACH_END(cp);
- } else if (!strcmpstart(conn->requested_resource, "fp-sk/")) {
+ } else if (!strcmpstart(conn->requested_resource, fpsk_pfx)) {
/* Download by (fp,sk) pairs */
- dir_split_resource_into_fingerprint_pairs(conn->requested_resource + 5,
- failed);
+ dir_split_resource_into_fingerprint_pairs(conn->requested_resource +
+ strlen(fpsk_pfx), failed);
SMARTLIST_FOREACH_BEGIN(failed, fp_pair_t *, cp) {
authority_cert_dl_failed(cp->first, cp->second, status);
tor_free(cp);