summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2004-10-01 04:45:14 +0000
committerNick Mathewson <nickm@torproject.org>2004-10-01 04:45:14 +0000
commit91044765f2e6e734569523c41d88ba782a2542bf (patch)
tree0dc70b23db2908faa7e684d1d3c79514be2b620a
parenteff780c815d1f5ffdc25cf15db7282e6e7f61e8c (diff)
downloadtor-91044765f2e6e734569523c41d88ba782a2542bf.tar.gz
tor-91044765f2e6e734569523c41d88ba782a2542bf.zip
Decode Content-Encoding header correctly.
svn:r2403
-rw-r--r--src/or/directory.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index 62958d5790..f6995305fa 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -229,10 +229,13 @@ static void directory_send_command(connection_t *conn, int purpose,
switch(purpose) {
case DIR_PURPOSE_FETCH_DIR:
tor_assert(payload == NULL);
- if(use_newer)
+ if(use_newer) {
+ log_fn(LOG_DEBUG, "Asking for compressed directory from server running %s", router->platform);
connection_write_to_buf(fetchwholedir_z, strlen(fetchwholedir_z), conn);
- else
+ } else {
+ log_fn(LOG_DEBUG, "Asking for uncompressed directory from server running %s", router->platform);
connection_write_to_buf(fetchwholedir, strlen(fetchwholedir), conn);
+ }
break;
case DIR_PURPOSE_FETCH_RUNNING_LIST:
tor_assert(payload == NULL);
@@ -349,9 +352,9 @@ parse_http_response(char *headers, int *code, char **message, time_t *date,
const char *enc = NULL;
SMARTLIST_FOREACH(parsed_headers, const char *, s,
if (!strcmpstart(s, "Content-Encoding: ")) {
- enc = s+16; break;
+ enc = s+18; break;
});
- if (!enc || strcmp(enc, "identity")) {
+ if (!enc || !strcmp(enc, "identity")) {
*compression = 0;
} else if (!strcmp(enc, "deflate") || !strcmp(enc, "x-deflate")) {
*compression = ZLIB_METHOD;