diff options
author | Nick Mathewson <nickm@torproject.org> | 2004-11-28 09:05:49 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2004-11-28 09:05:49 +0000 |
commit | 6f5dbefa7efe0c0c86928777b8821b3fdc91cf45 (patch) | |
tree | e92106bd8cac85684983daf62d952a9d8e6b8f18 /src | |
parent | 67dc7baa59e2b38a6720d843b54257ca0dd9e722 (diff) | |
download | tor-6f5dbefa7efe0c0c86928777b8821b3fdc91cf45.tar.gz tor-6f5dbefa7efe0c0c86928777b8821b3fdc91cf45.zip |
Normalize space: add one between every control keyword and control clause.
svn:r3003
Diffstat (limited to 'src')
38 files changed, 895 insertions, 895 deletions
diff --git a/src/common/compat.c b/src/common/compat.c index 49c8c3a7af..d46077485a 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -158,7 +158,7 @@ int replace_file(const char *from, const char *to) #ifndef MS_WINDOWS return rename(from,to); #else - switch(file_status(to)) + switch (file_status(to)) { case FN_NOENT: break; @@ -318,11 +318,11 @@ int set_max_file_descriptors(unsigned int required_min) { strerror(errno)); return -1; } - if(required_min > rlim.rlim_max) { + if (required_min > rlim.rlim_max) { log_fn(LOG_WARN,"We need %u file descriptors available, and we're limited to %lu. Please change your ulimit.", required_min, (unsigned long int)rlim.rlim_max); return -1; } - if(required_min > rlim.rlim_cur) { + if (required_min > rlim.rlim_cur) { log_fn(LOG_INFO,"Raising max file descriptors from %lu to %lu.", (unsigned long int)rlim.rlim_cur, (unsigned long int)rlim.rlim_max); } diff --git a/src/common/container.c b/src/common/container.c index e26ec81c3f..5ced2b6ff8 100644 --- a/src/common/container.c +++ b/src/common/container.c @@ -104,10 +104,10 @@ void smartlist_add_all(smartlist_t *sl, const smartlist_t *s2) */ void smartlist_remove(smartlist_t *sl, void *element) { int i; - if(element == NULL) + if (element == NULL) return; - for(i=0; i < sl->num_used; i++) - if(sl->list[i] == element) { + for (i=0; i < sl->num_used; i++) + if (sl->list[i] == element) { sl->list[i] = sl->list[--sl->num_used]; /* swap with the end */ i--; /* so we process the new i'th element */ } @@ -117,16 +117,16 @@ void smartlist_remove(smartlist_t *sl, void *element) { */ int smartlist_isin(const smartlist_t *sl, void *element) { int i; - for(i=0; i < sl->num_used; i++) - if(sl->list[i] == element) + for (i=0; i < sl->num_used; i++) + if (sl->list[i] == element) return 1; return 0; } int smartlist_string_isin(const smartlist_t *sl, const char *element) { int i; - for(i=0; i < sl->num_used; i++) - if(strcmp((const char*)sl->list[i],element)==0) + for (i=0; i < sl->num_used; i++) + if (strcmp((const char*)sl->list[i],element)==0) return 1; return 0; } @@ -135,8 +135,8 @@ int smartlist_string_isin(const smartlist_t *sl, const char *element) { */ int smartlist_overlap(const smartlist_t *sl1, const smartlist_t *sl2) { int i; - for(i=0; i < sl2->num_used; i++) - if(smartlist_isin(sl1, sl2->list[i])) + for (i=0; i < sl2->num_used; i++) + if (smartlist_isin(sl1, sl2->list[i])) return 1; return 0; } @@ -146,8 +146,8 @@ int smartlist_overlap(const smartlist_t *sl1, const smartlist_t *sl2) { */ void smartlist_intersect(smartlist_t *sl1, const smartlist_t *sl2) { int i; - for(i=0; i < sl1->num_used; i++) - if(!smartlist_isin(sl2, sl1->list[i])) { + for (i=0; i < sl1->num_used; i++) + if (!smartlist_isin(sl2, sl1->list[i])) { sl1->list[i] = sl1->list[--sl1->num_used]; /* swap with the end */ i--; /* so we process the new i'th element */ } @@ -158,7 +158,7 @@ void smartlist_intersect(smartlist_t *sl1, const smartlist_t *sl2) { */ void smartlist_subtract(smartlist_t *sl1, const smartlist_t *sl2) { int i; - for(i=0; i < sl2->num_used; i++) + for (i=0; i < sl2->num_used; i++) smartlist_remove(sl1, sl2->list[i]); } @@ -544,7 +544,7 @@ void strmap_foreach(strmap_t *map, * iter = strmap_iter_next_rmv(iter); * free(val); * } else { - * for(;*cp;cp++) *cp = toupper(*cp); + * for (;*cp;cp++) *cp = toupper(*cp); * iter = strmap_iter_next(iter); * } * } diff --git a/src/common/container.h b/src/common/container.h index 701af32953..dbe45a31e3 100644 --- a/src/common/container.h +++ b/src/common/container.h @@ -60,7 +60,7 @@ char *smartlist_join_strings2(smartlist_t *sl, const char *join, do { \ int var ## _sl_idx, var ## _sl_len=smartlist_len(sl); \ type var; \ - for(var ## _sl_idx = 0; var ## _sl_idx < var ## _sl_len; \ + for (var ## _sl_idx = 0; var ## _sl_idx < var ## _sl_len; \ ++var ## _sl_idx) { \ var = smartlist_get((sl),var ## _sl_idx); \ cmd; \ diff --git a/src/common/crypto.c b/src/common/crypto.c index d7371fb765..650aad4879 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -103,7 +103,7 @@ DH *_crypto_dh_env_get_dh(crypto_dh_env_t *dh); */ static INLINE int crypto_get_rsa_padding_overhead(int padding) { - switch(padding) + switch (padding) { case RSA_NO_PADDING: return 0; case RSA_PKCS1_OAEP_PADDING: return 42; @@ -116,7 +116,7 @@ crypto_get_rsa_padding_overhead(int padding) { */ static INLINE int crypto_get_rsa_padding(int padding) { - switch(padding) + switch (padding) { case PK_NO_PADDING: return RSA_NO_PADDING; case PK_PKCS1_PADDING: return RSA_PKCS1_PADDING; @@ -238,7 +238,7 @@ void crypto_free_pk_env(crypto_pk_env_t *env) { tor_assert(env); - if(--env->refs > 0) + if (--env->refs > 0) return; if (env->key) @@ -398,7 +398,7 @@ int crypto_pk_write_public_key_to_string(crypto_pk_env_t *env, char **dest, size /* Now you can treat b as if it were a file. Just use the * PEM_*_bio_* functions instead of the non-bio variants. */ - if(!PEM_write_bio_RSAPublicKey(b, env->key)) { + if (!PEM_write_bio_RSAPublicKey(b, env->key)) { crypto_log_errors(LOG_WARN, "writing public key to string"); return -1; } @@ -435,7 +435,7 @@ int crypto_pk_read_public_key_from_string(crypto_pk_env_t *env, const char *src, RSA_free(env->key); env->key = PEM_read_bio_RSAPublicKey(b, NULL, NULL, NULL); BIO_free(b); - if(!env->key) { + if (!env->key) { crypto_log_errors(LOG_WARN, "reading public key from string"); return -1; } @@ -1346,7 +1346,7 @@ int crypto_dh_compute_secret(crypto_dh_env_t *dh, goto error; secret_tmp = tor_malloc(crypto_dh_get_bytes(dh)+1); result = DH_compute_key(secret_tmp, pubkey_bn, dh->dh); - if(result < 0) { + if (result < 0) { log_fn(LOG_WARN,"DH_compute_key() failed."); goto error; } @@ -1368,7 +1368,7 @@ int crypto_dh_compute_secret(crypto_dh_env_t *dh, if (pubkey_bn) BN_free(pubkey_bn); tor_free(secret_tmp); - if(result < 0) + if (result < 0) return result; else return secret_len; @@ -1486,7 +1486,7 @@ int crypto_pseudo_rand_int(unsigned int max) { * range. */ cutoff = UINT_MAX - (UINT_MAX%max); - while(1) { + while (1) { crypto_pseudo_rand((unsigned char*) &val, sizeof(val)); if (val < cutoff) return val % max; @@ -1498,7 +1498,7 @@ int crypto_pseudo_rand_int(unsigned int max) { void *smartlist_choose(const smartlist_t *sl) { size_t len; len = smartlist_len(sl); - if(len) + if (len) return smartlist_get(sl,crypto_pseudo_rand_int(len)); return NULL; /* no elements to choose from */ } diff --git a/src/common/log.c b/src/common/log.c index c2639560fb..f275d025f9 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -34,7 +34,7 @@ typedef struct logfile_t { /** Helper: map a log severity to descriptive string. */ static INLINE const char *sev_to_string(int severity) { - switch(severity) { + switch (severity) { case LOG_DEBUG: return "debug"; case LOG_INFO: return "info"; case LOG_NOTICE: return "notice"; @@ -136,7 +136,7 @@ static INLINE char *format_msg(char *buf, size_t buf_len, } r = tor_vsnprintf(buf+n,buf_len-n,format,ap); - if(r < 0) { + if (r < 0) { n = buf_len-2; strlcpy(buf+buf_len-TRUNCATED_STR_LEN-1, TRUNCATED_STR, buf_len-(buf_len-TRUNCATED_STR_LEN-1)); @@ -162,7 +162,7 @@ logv(int severity, const char *funcname, const char *format, va_list ap) assert(format); lf = logfiles; - while(lf) { + while (lf) { if (severity > lf->loglevel || severity < lf->max_loglevel) { lf = lf->next; continue; @@ -188,7 +188,7 @@ logv(int severity, const char *funcname, const char *format, va_list ap) lf = lf->next; continue; } - if(fputs(buf, lf->file) == EOF || + if (fputs(buf, lf->file) == EOF || fflush(lf->file) == EOF) { /* error */ /* don't log the error! Blow away this log entry and continue. */ logfile_t *victim = lf; @@ -234,7 +234,7 @@ void _log_fn(int severity, const char *format, ...) void close_logs() { logfile_t *victim; - while(logfiles) { + while (logfiles) { victim = logfiles; logfiles = logfiles->next; close_log(victim); @@ -247,7 +247,7 @@ void close_logs() void reset_logs() { logfile_t *lf = logfiles; - while(lf) { + while (lf) { if (reset_log(lf)) { /* error. don't log it. delete the log entry and continue. */ logfile_t *victim = lf; @@ -266,10 +266,10 @@ void reset_logs() */ static void delete_log(logfile_t *victim) { logfile_t *tmpl; - if(victim == logfiles) + if (victim == logfiles) logfiles = victim->next; else { - for(tmpl = logfiles; tmpl && tmpl->next != victim; tmpl=tmpl->next) ; + for (tmpl = logfiles; tmpl && tmpl->next != victim; tmpl=tmpl->next) ; tor_assert(tmpl); tor_assert(tmpl->next == victim); tmpl->next = victim->next; diff --git a/src/common/log.h b/src/common/log.h index 968686ef37..07e865e689 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -90,7 +90,7 @@ void _log_fn(int severity, const char *funcname, const char *format, ...) extern const char *_log_fn_function_name; void _log_fn(int severity, const char *format, ...); /* We abuse the comma operator here, since we can't use the standard - * do {...} while(0) trick to wrap this macro, since the macro can't take + * do {...} while (0) trick to wrap this macro, since the macro can't take * arguments. */ #define log_fn (_log_fn_function_name=__FUNCTION__),_log_fn #endif diff --git a/src/common/test.h b/src/common/test.h index 684968eaac..84ea1f9127 100644 --- a/src/common/test.h +++ b/src/common/test.h @@ -36,7 +36,7 @@ extern int have_failed; #define test_assert(expr) \ STMT_BEGIN \ - if(expr) { printf("."); fflush(stdout); } else { \ + if (expr) { printf("."); fflush(stdout); } else { \ have_failed = 1; \ printf("\nFile %s: line %d (%s): assertion failed: (%s)\n", \ __FILE__, \ @@ -49,7 +49,7 @@ extern int have_failed; #define test_eq(expr1, expr2) \ STMT_BEGIN \ long v1=(long)(expr1), v2=(long)(expr2); \ - if(v1==v2) { printf("."); fflush(stdout); } else { \ + if (v1==v2) { printf("."); fflush(stdout); } else { \ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\ " (%ld != %ld)\n", \ @@ -64,7 +64,7 @@ extern int have_failed; #define test_neq(expr1, expr2) \ STMT_BEGIN \ long v1=(long)(expr1), v2=(long)(expr2); \ - if(v1!=v2) { printf("."); fflush(stdout); } else { \ + if (v1!=v2) { printf("."); fflush(stdout); } else { \ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\ " (%ld == %ld)\n", \ @@ -79,7 +79,7 @@ extern int have_failed; #define test_streq(expr1, expr2) \ STMT_BEGIN \ const char *v1=(expr1), *v2=(expr2); \ - if(!strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \ + if (!strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\ " (\"%s\" != \"%s\")\n", \ @@ -94,7 +94,7 @@ extern int have_failed; #define test_strneq(expr1, expr2) \ STMT_BEGIN \ const char *v1=(expr1), *v2=(expr2); \ - if(strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \ + if (strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\ " (\"%s\" == \"%s\")\n", \ @@ -109,7 +109,7 @@ extern int have_failed; #define test_memeq(expr1, expr2, len) \ STMT_BEGIN \ const void *v1=(expr1), *v2=(expr2); \ - if(!memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else { \ + if (!memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else {\ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n", \ __FILE__, \ @@ -122,7 +122,7 @@ extern int have_failed; #define test_memneq(expr1, expr2, len) \ STMT_BEGIN \ void *v1=(expr1), *v2=(expr2); \ - if(memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else { \ + if (memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else {\ have_failed = 1; \ printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n", \ __FILE__, \ diff --git a/src/common/torgzip.c b/src/common/torgzip.c index bffd819840..0e781cca6f 100644 --- a/src/common/torgzip.c +++ b/src/common/torgzip.c @@ -176,7 +176,7 @@ tor_gzip_uncompress(char **out, size_t *out_len, stream->avail_out = out_size; while (1) { - switch(inflate(stream, Z_FINISH)) + switch (inflate(stream, Z_FINISH)) { case Z_STREAM_END: goto done; diff --git a/src/common/tortls.c b/src/common/tortls.c index 34c2712192..4068805fd4 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -466,7 +466,7 @@ tor_tls_write(tor_tls *tls, char *cp, size_t n) tor_assert(tls->state == TOR_TLS_ST_OPEN); if (n == 0) return 0; - if(tls->wantwrite_n) { + if (tls->wantwrite_n) { /* if WANTWRITE last time, we must use the _same_ n as before */ tor_assert(n >= tls->wantwrite_n); log_fn(LOG_DEBUG,"resuming pending-write, (%d to flush, reusing %d)", diff --git a/src/common/util.c b/src/common/util.c index a6a082a962..31ec0d5f4c 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -108,7 +108,7 @@ void *tor_malloc(size_t size) { } result = malloc(size); - if(!result) { + if (!result) { log_fn(LOG_ERR, "Out of memory. Dying."); exit(1); } @@ -150,7 +150,7 @@ char *tor_strdup(const char *s) { tor_assert(s); dup = strdup(s); - if(!dup) { + if (!dup) { log_fn(LOG_ERR,"Out of memory. Dying."); exit(1); } @@ -221,7 +221,7 @@ int tor_strpartition(char *dest, size_t dest_len, len_ins = strlen(insert); len_out = len_in + (len_in/n)*len_ins; is_even = (len_in%n) == 0; - switch(rule) + switch (rule) { case ALWAYS_TERMINATE: if (!is_even) len_out += len_ins; @@ -236,7 +236,7 @@ int tor_strpartition(char *dest, size_t dest_len, return -1; destp = dest; remaining = len_in; - while(remaining) { + while (remaining) { strncpy(destp, s, n); remaining -= n; if (remaining < 0) { @@ -306,13 +306,13 @@ int strcmpend(const char *s1, const char *s2) const char *eat_whitespace(const char *s) { tor_assert(s); - while(isspace((int)*s) || *s == '#') { - while(isspace((int)*s)) + while (isspace((int)*s) || *s == '#') { + while (isspace((int)*s)) s++; - if(*s == '#') { /* read to a \n or \0 */ - while(*s && *s != '\n') + if (*s == '#') { /* read to a \n or \0 */ + while (*s && *s != '\n') s++; - if(!*s) + if (!*s) return s; } } @@ -322,7 +322,7 @@ const char *eat_whitespace(const char *s) { /** Return a pointer to the first char of s that is not a space or a tab, * or to the terminating NUL if no such character exists. */ const char *eat_whitespace_no_nl(const char *s) { - while(*s == ' ' || *s == '\t') + while (*s == ' ' || *s == '\t') ++s; return s; } @@ -333,7 +333,7 @@ const char *eat_whitespace_no_nl(const char *s) { const char *find_whitespace(const char *s) { tor_assert(s); - while(*s && !isspace((int)*s) && *s != '#') + while (*s && !isspace((int)*s) && *s != '#') s++; return s; @@ -402,8 +402,8 @@ tor_parse_uint64(const char *s, int base, uint64_t min, tor_assert(base <= 10); r = (uint64_t)_atoi64(s); endptr = (char*)s; - while(isspace(*endptr)) endptr++; - while(isdigit(*endptr)) endptr++; + while (isspace(*endptr)) endptr++; + while (isdigit(*endptr)) endptr++; #else r = (uint64_t)_strtoui64(s, &endptr, base); #endif @@ -461,7 +461,7 @@ int base16_decode(char *dest, size_t destlen, const char *src, size_t srclen) while (src<end) { v1 = hex_decode_digit(*src); v2 = hex_decode_digit(*(src+1)); - if(v1<0||v2<0) + if (v1<0||v2<0) return -1; *(uint8_t*)dest = (v1<<4)|v2; ++dest; @@ -659,12 +659,12 @@ int write_all(int fd, const char *buf, size_t count, int isSocket) { size_t written = 0; int result; - while(written != count) { + while (written != count) { if (isSocket) result = send(fd, buf+written, count-written, 0); else result = write(fd, buf+written, count-written); - if(result<0) + if (result<0) return -1; written += result; } @@ -681,12 +681,12 @@ int read_all(int fd, char *buf, size_t count, int isSocket) { size_t numread = 0; int result; - while(numread != count) { + while (numread != count) { if (isSocket) result = recv(fd, buf+numread, count-numread, 0); else result = read(fd, buf+numread, count-numread); - if(result<0) + if (result<0) return -1; else if (result == 0) break; @@ -815,7 +815,7 @@ int write_bytes_to_file(const char *fname, const char *str, size_t len, return -1; } result = write_all(fd, str, len, 0); - if(result < 0 || (size_t)result != len) { + if (result < 0 || (size_t)result != len) { log(LOG_WARN, "Error writing to %s: %s", tempname, strerror(errno)); close(fd); return -1; @@ -842,7 +842,7 @@ char *read_file_to_str(const char *filename, int bin) { tor_assert(filename); - if(stat(filename, &statbuf) < 0) { + if (stat(filename, &statbuf) < 0) { log_fn(LOG_INFO,"Could not stat %s.",filename); return NULL; } @@ -1260,7 +1260,7 @@ void start_daemon(const char *desired_cwd) return; start_daemon_called = 1; - if(!desired_cwd) + if (!desired_cwd) desired_cwd = "/"; /* Don't hold the wrong FS mounted */ if (chdir(desired_cwd) < 0) { diff --git a/src/common/util.h b/src/common/util.h index 4a627e5495..e2a7546de1 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -24,7 +24,7 @@ * calling assert() normally. */ #ifdef NDEBUG -#define tor_assert(expr) do {} while(0) +#define tor_assert(expr) do {} while (0) #else #define tor_assert(expr) do { \ if (!(expr)) { \ @@ -41,7 +41,7 @@ void *tor_malloc_zero(size_t size); void *tor_realloc(void *ptr, size_t size); char *tor_strdup(const char *s); char *tor_strndup(const char *s, size_t n); -#define tor_free(p) do {if(p) {free(p); (p)=NULL;}} while(0) +#define tor_free(p) do { if (p) {free(p); (p)=NULL;} } while (0) /* String manipulation */ #define HEX_CHARACTERS "0123456789ABCDEFabcdef" diff --git a/src/or/buffers.c b/src/or/buffers.c index 99b8779f28..23b0e49d3c 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -175,17 +175,17 @@ int read_to_buf(int s, size_t at_most, buf_t *buf, int *reached_eof) { if (buf_ensure_capacity(buf,buf->datalen+at_most)) return -1; - if(at_most + buf->datalen > buf->len) + if (at_most + buf->datalen > buf->len) at_most = buf->len - buf->datalen; /* take the min of the two */ - if(at_most == 0) + if (at_most == 0) return 0; /* we shouldn't read anything */ // log_fn(LOG_DEBUG,"reading at most %d bytes.",at_most); read_result = recv(s, buf->mem+buf->datalen, at_most, 0); if (read_result < 0) { int e = tor_socket_errno(s); - if(!ERRNO_IS_EAGAIN(e)) { /* it's a real error */ + if (!ERRNO_IS_EAGAIN(e)) { /* it's a real error */ return -1; } return 0; /* would block. */ @@ -250,13 +250,13 @@ int flush_buf(int s, buf_t *buf, size_t *buf_flushlen) tor_assert(s>=0); tor_assert(*buf_flushlen <= buf->datalen); - if(*buf_flushlen == 0) /* nothing to flush */ + if (*buf_flushlen == 0) /* nothing to flush */ return 0; write_result = send(s, buf->mem, *buf_flushlen, 0); if (write_result < 0) { int e = tor_socket_errno(s); - if(!ERRNO_IS_EAGAIN(e)) { /* it's a real error */ + if (!ERRNO_IS_EAGAIN(e)) { /* it's a real error */ return -1; } log_fn(LOG_DEBUG,"write() would block, returning."); @@ -378,12 +378,12 @@ int fetch_from_buf_http(buf_t *buf, bodylen = buf->datalen - headerlen; log_fn(LOG_DEBUG,"headerlen %d, bodylen %d.", (int)headerlen, (int)bodylen); - if(max_headerlen <= headerlen) { + if (max_headerlen <= headerlen) { log_fn(LOG_WARN,"headerlen %d larger than %d. Failing.", (int)headerlen, (int)max_headerlen-1); return -1; } - if(max_bodylen <= bodylen) { + if (max_bodylen <= bodylen) { log_fn(LOG_WARN,"bodylen %d larger than %d. Failing.", (int)bodylen, (int)max_bodylen-1); return -1; } @@ -400,22 +400,22 @@ int fetch_from_buf_http(buf_t *buf, contentlen = i; /* if content-length is malformed, then our body length is 0. fine. */ log_fn(LOG_DEBUG,"Got a contentlen of %d.",(int)contentlen); - if(bodylen < contentlen) { + if (bodylen < contentlen) { log_fn(LOG_DEBUG,"body not all here yet."); return 0; /* not all there yet */ } - if(bodylen > contentlen) { + if (bodylen > contentlen) { bodylen = contentlen; log_fn(LOG_DEBUG,"bodylen reduced to %d.",(int)bodylen); } } /* all happy. copy into the appropriate places, and return 1 */ - if(headers_out) { + if (headers_out) { *headers_out = tor_malloc(headerlen+1); memcpy(*headers_out,buf->mem,headerlen); (*headers_out)[headerlen] = 0; /* null terminate it */ } - if(body_out) { + if (body_out) { tor_assert(body_used); *body_used = bodylen; *body_out = tor_malloc(bodylen+1); @@ -457,18 +457,18 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { * then log a warning to let him know that it might be unwise. */ static int have_warned_about_unsafe_socks = 0; - if(buf->datalen < 2) /* version and another byte */ + if (buf->datalen < 2) /* version and another byte */ return 0; - switch(*(buf->mem)) { /* which version of socks? */ + switch (*(buf->mem)) { /* which version of socks? */ case 5: /* socks5 */ - if(req->socks_version != 5) { /* we need to negotiate a method */ + if (req->socks_version != 5) { /* we need to negotiate a method */ unsigned char nummethods = (unsigned char)*(buf->mem+1); tor_assert(!req->socks_version); - if(buf->datalen < 2u+nummethods) + if (buf->datalen < 2u+nummethods) return 0; - if(!nummethods || !memchr(buf->mem+2, 0, nummethods)) { + if (!nummethods || !memchr(buf->mem+2, 0, nummethods)) { log_fn(LOG_WARN,"socks5: offered methods don't include 'no auth'. Rejecting."); req->replylen = 2; /* 2 bytes of response */ req->reply[0] = 5; /* socks5 reply */ @@ -486,26 +486,26 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { } /* we know the method; read in the request */ log_fn(LOG_DEBUG,"socks5: checking request"); - if(buf->datalen < 8) /* basic info plus >=2 for addr plus 2 for port */ + if (buf->datalen < 8) /* basic info plus >=2 for addr plus 2 for port */ return 0; /* not yet */ req->command = (unsigned char) *(buf->mem+1); - if(req->command != SOCKS_COMMAND_CONNECT && + if (req->command != SOCKS_COMMAND_CONNECT && req->command != SOCKS_COMMAND_RESOLVE) { /* not a connect or resolve? we don't support it. */ log_fn(LOG_WARN,"socks5: command %d not recognized. Rejecting.", req->command); return -1; } - switch(*(buf->mem+3)) { /* address type */ + switch (*(buf->mem+3)) { /* address type */ case 1: /* IPv4 address */ log_fn(LOG_DEBUG,"socks5: ipv4 address type"); - if(buf->datalen < 10) /* ip/port there? */ + if (buf->datalen < 10) /* ip/port there? */ return 0; /* not yet */ destip = ntohl(*(uint32_t*)(buf->mem+4)); in.s_addr = htonl(destip); tmpbuf = inet_ntoa(in); - if(strlen(tmpbuf)+1 > MAX_SOCKS_ADDR_LEN) { + if (strlen(tmpbuf)+1 > MAX_SOCKS_ADDR_LEN) { log_fn(LOG_WARN,"socks5 IP takes %d bytes, which doesn't fit in %d. Rejecting.", (int)strlen(tmpbuf)+1,(int)MAX_SOCKS_ADDR_LEN); return -1; @@ -513,7 +513,7 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { strlcpy(req->address,tmpbuf,sizeof(req->address)); req->port = ntohs(*(uint16_t*)(buf->mem+8)); buf_remove_from_front(buf, 10); - if(!have_warned_about_unsafe_socks) { + if (!have_warned_about_unsafe_socks) { log_fn(LOG_WARN,"Your application (using socks5 on port %d) is giving Tor only an IP address. Applications that do DNS resolves themselves may leak information. Consider using Socks4A (e.g. via privoxy or socat) instead.", req->port); // have_warned_about_unsafe_socks = 1; // (for now, warn every time) } @@ -521,9 +521,9 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { case 3: /* fqdn */ log_fn(LOG_DEBUG,"socks5: fqdn address type"); len = (unsigned char)*(buf->mem+4); - if(buf->datalen < 7u+len) /* addr/port there? */ + if (buf->datalen < 7u+len) /* addr/port there? */ return 0; /* not yet */ - if(len+1 > MAX_SOCKS_ADDR_LEN) { + if (len+1 > MAX_SOCKS_ADDR_LEN) { log_fn(LOG_WARN,"socks5 hostname is %d bytes, which doesn't fit in %d. Rejecting.", len+1,MAX_SOCKS_ADDR_LEN); return -1; @@ -543,11 +543,11 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { /* http://archive.socks.permeo.com/protocol/socks4a.protocol */ req->socks_version = 4; - if(buf->datalen < SOCKS4_NETWORK_LEN) /* basic info available? */ + if (buf->datalen < SOCKS4_NETWORK_LEN) /* basic info available? */ return 0; /* not yet */ req->command = (unsigned char) *(buf->mem+1); - if(req->command != SOCKS_COMMAND_CONNECT && + if (req->command != SOCKS_COMMAND_CONNECT && req->command != SOCKS_COMMAND_RESOLVE) { /* not a connect or resolve? we don't support it. */ log_fn(LOG_WARN,"socks4: command %d not recognized. Rejecting.", @@ -557,15 +557,15 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { req->port = ntohs(*(uint16_t*)(buf->mem+2)); destip = ntohl(*(uint32_t*)(buf->mem+4)); - if((!req->port && req->command!=SOCKS_COMMAND_RESOLVE) || !destip) { + if ((!req->port && req->command!=SOCKS_COMMAND_RESOLVE) || !destip) { log_fn(LOG_WARN,"socks4: Port or DestIP is zero. Rejecting."); return -1; } - if(destip >> 8) { + if (destip >> 8) { log_fn(LOG_DEBUG,"socks4: destip not in form 0.0.0.x."); in.s_addr = htonl(destip); tmpbuf = inet_ntoa(in); - if(strlen(tmpbuf)+1 > MAX_SOCKS_ADDR_LEN) { + if (strlen(tmpbuf)+1 > MAX_SOCKS_ADDR_LEN) { log_fn(LOG_WARN,"socks4 addr (%d bytes) too long. Rejecting.", (int)strlen(tmpbuf)); return -1; @@ -576,25 +576,25 @@ int fetch_from_buf_socks(buf_t *buf, socks_request_t *req) { next = memchr(buf->mem+SOCKS4_NETWORK_LEN, 0, buf->datalen-SOCKS4_NETWORK_LEN); - if(!next) { + if (!next) { log_fn(LOG_DEBUG,"socks4: Username not here yet."); return 0; } tor_assert(next < buf->mem+buf->datalen); startaddr = NULL; - if(socks4_prot != socks4a && !have_warned_about_unsafe_socks) { + if (socks4_prot != socks4a && !have_warned_about_unsafe_socks) { log_fn(LOG_WARN,"Your application (using socks4 on port %d) is giving Tor only an IP address. Applications that do DNS resolves themselves may leak information. Consider using Socks4A (e.g. via privoxy or socat) instead.", req->port); // have_warned_about_unsafe_socks = 1; // (for now, warn every time) } - if(socks4_prot == socks4a && next+1 < buf->mem+buf->datalen) { + if (socks4_prot == socks4a && next+1 < buf->mem+buf->datalen) { startaddr = next+1; next = memchr(startaddr, 0, buf->mem+buf->datalen-startaddr); - if(!next) { + if (!next) { log_fn(LOG_DEBUG,"socks4: Destaddr not here yet."); return 0; } - if(MAX_SOCKS_ADDR_LEN <= next-startaddr) { + if (MAX_SOCKS_ADDR_LEN <= next-startaddr) { log_fn(LOG_WARN,"socks4: Destaddr too long. Rejecting."); return -1; } diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 44e2f1286b..6bdb516b9d 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -49,7 +49,7 @@ static uint16_t get_unique_circ_id_by_conn(connection_t *conn) { test_circ_id = 1; conn->next_circ_id = 2; } - if(++attempts > 1<<15) { + if (++attempts > 1<<15) { /* Make sure we don't loop forever if all circ_id's are used. This * matters because it's an external DoS vulnerability. */ @@ -57,7 +57,7 @@ static uint16_t get_unique_circ_id_by_conn(connection_t *conn) { return 0; } test_circ_id |= high_bit; - } while(circuit_get_by_circ_id_conn(test_circ_id, conn)); + } while (circuit_get_by_circ_id_conn(test_circ_id, conn)); return test_circ_id; } @@ -144,18 +144,18 @@ void circuit_log_path(int severity, circuit_t *circ) { do { s = buf + strlen(buf); router = router_get_by_digest(hop->identity_digest); - if(router) { + if (router) { tor_snprintf(s, sizeof(buf) - (s - buf), "%s(%s) ", router->nickname, states[hop->state]); } else { - if(circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { + if (circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { tor_snprintf(s, sizeof(buf) - (s - buf), "(rendjoin hop)"); } else { tor_snprintf(s, sizeof(buf) - (s - buf), "UNKNOWN "); } } hop=hop->next; - } while(hop!=circ->cpath); + } while (hop!=circ->cpath); log_fn(severity,"%s",buf); #endif } @@ -170,7 +170,7 @@ void circuit_rep_hist_note_result(circuit_t *circ) { char *prev_digest = NULL; routerinfo_t *router; hop = circ->cpath; - if(!hop) { + if (!hop) { /* XXX * if !hop, then we're not the beginning of this circuit. * for now, just forget about it. later, we should remember when @@ -212,8 +212,8 @@ circuit_dump_details(int severity, circuit_t *circ, int poll_index, log(severity,"Conn %d has %s circuit: circID %d (other side %d), state %d (%s), born %d", poll_index, type, this_circid, other_circid, circ->state, circuit_state_to_string[circ->state], (int)circ->timestamp_created); - if(CIRCUIT_IS_ORIGIN(circ)) { /* circ starts at this node */ - if(circ->state == CIRCUIT_STATE_BUILDING) + if (CIRCUIT_IS_ORIGIN(circ)) { /* circ starts at this node */ + if (circ->state == CIRCUIT_STATE_BUILDING) log(severity,"Building: desired len %d, planned exit node %s.", circ->build_state->desired_path_len, circ->build_state->chosen_exit_name); hop = circ->cpath; @@ -234,21 +234,21 @@ void circuit_dump_by_conn(connection_t *conn, int severity) { circuit_t *circ; connection_t *tmpconn; - for(circ=global_circuitlist;circ;circ = circ->next) { - if(circ->p_conn == conn) + for (circ=global_circuitlist;circ;circ = circ->next) { + if (circ->p_conn == conn) circuit_dump_details(severity, circ, conn->poll_index, "App-ward", circ->p_circ_id, circ->n_circ_id); - for(tmpconn=circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) { - if(tmpconn == conn) { + for (tmpconn=circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) { + if (tmpconn == conn) { circuit_dump_details(severity, circ, conn->poll_index, "App-ward", circ->p_circ_id, circ->n_circ_id); } } - if(circ->n_conn == conn) + if (circ->n_conn == conn) circuit_dump_details(severity, circ, conn->poll_index, "Exit-ward", circ->n_circ_id, circ->p_circ_id); - for(tmpconn=circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) { - if(tmpconn == conn) { + for (tmpconn=circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) { + if (tmpconn == conn) { circuit_dump_details(severity, circ, conn->poll_index, "Exit-ward", circ->n_circ_id, circ->p_circ_id); } @@ -280,7 +280,7 @@ circuit_t *circuit_establish_circuit(uint8_t purpose, return NULL; } - if(onion_extend_cpath(&circ->cpath, circ->build_state, &firsthop)<0 || + if (onion_extend_cpath(&circ->cpath, circ->build_state, &firsthop)<0 || !CIRCUIT_IS_ORIGIN(circ)) { log_fn(LOG_INFO,"Generating first cpath hop failed."); circuit_mark_for_close(circ); @@ -298,14 +298,14 @@ circuit_t *circuit_establish_circuit(uint8_t purpose, memcpy(circ->n_conn_id_digest, firsthop->identity_digest, DIGEST_LEN); n_conn = connection_get_by_identity_digest(firsthop->identity_digest, CONN_TYPE_OR); - if(!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* not currently connected */ + if (!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* not currently connected */ circ->n_addr = firsthop->addr; circ->n_port = firsthop->or_port; - if(!n_conn) { /* launch the connection */ + if (!n_conn) { /* launch the connection */ n_conn = connection_or_connect(firsthop->addr, firsthop->or_port, firsthop->identity_digest); - if(!n_conn) { /* connect failed, forget the whole thing */ + if (!n_conn) { /* connect failed, forget the whole thing */ log_fn(LOG_INFO,"connect to firsthop failed. Closing."); circuit_mark_for_close(circ); return NULL; @@ -322,7 +322,7 @@ circuit_t *circuit_establish_circuit(uint8_t purpose, circ->n_port = n_conn->port; circ->n_conn = n_conn; log_fn(LOG_DEBUG,"Conn open. Delivering first onion skin."); - if(circuit_send_next_onion_skin(circ) < 0) { + if (circuit_send_next_onion_skin(circ) < 0) { log_fn(LOG_INFO,"circuit_send_next_onion_skin failed."); circuit_mark_for_close(circ); return NULL; @@ -341,15 +341,15 @@ void circuit_n_conn_done(connection_t *or_conn, int status) { log_fn(LOG_DEBUG,"or_conn to %s, status=%d", or_conn->nickname, status); - for(circ=global_circuitlist;circ;circ = circ->next) { + for (circ=global_circuitlist;circ;circ = circ->next) { if (circ->marked_for_close) continue; - if(!circ->n_conn && + if (!circ->n_conn && circ->n_addr == or_conn->addr && circ->n_port == or_conn->port && !memcmp(or_conn->identity_digest, circ->n_conn_id_digest, DIGEST_LEN)) { tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT); - if(!status) { /* or_conn failed; close circ */ + if (!status) { /* or_conn failed; close circ */ log_fn(LOG_INFO,"or_conn failed. Closing circ."); circuit_mark_for_close(circ); continue; @@ -357,8 +357,8 @@ void circuit_n_conn_done(connection_t *or_conn, int status) { log_fn(LOG_DEBUG,"Found circ %d, sending create cell.", circ->n_circ_id); circ->n_conn = or_conn; memcpy(circ->n_conn_id_digest, or_conn->identity_digest, DIGEST_LEN); - if(CIRCUIT_IS_ORIGIN(circ)) { - if(circuit_send_next_onion_skin(circ) < 0) { + if (CIRCUIT_IS_ORIGIN(circ)) { + if (circuit_send_next_onion_skin(circ) < 0) { log_fn(LOG_INFO,"send_next_onion_skin failed; circuit marked for closing."); circuit_mark_for_close(circ); continue; @@ -366,7 +366,7 @@ void circuit_n_conn_done(connection_t *or_conn, int status) { } } else { /* pull the create cell out of circ->onionskin, and send it */ - if(circuit_deliver_create_cell(circ, circ->onionskin) < 0) { + if (circuit_deliver_create_cell(circ, circ->onionskin) < 0) { circuit_mark_for_close(circ); continue; } @@ -385,7 +385,7 @@ circuit_deliver_create_cell(circuit_t *circ, char *payload) { tor_assert(payload); circ->n_circ_id = get_unique_circ_id_by_conn(circ->n_conn); - if(!circ->n_circ_id) { + if (!circ->n_circ_id) { log_fn(LOG_WARN,"failed to get unique circID."); return -1; } @@ -423,7 +423,7 @@ int circuit_send_next_onion_skin(circuit_t *circ) { tor_assert(circ); tor_assert(CIRCUIT_IS_ORIGIN(circ)); - if(circ->cpath->state == CPATH_STATE_CLOSED) { + if (circ->cpath->state == CPATH_STATE_CLOSED) { log_fn(LOG_DEBUG,"First skin; sending create cell."); router = router_get_by_digest(circ->n_conn->identity_digest); @@ -433,14 +433,14 @@ int circuit_send_next_onion_skin(circuit_t *circ) { return -1; } - if(onion_skin_create(router->onion_pkey, + if (onion_skin_create(router->onion_pkey, &(circ->cpath->handshake_state), payload) < 0) { log_fn(LOG_WARN,"onion_skin_create (first hop) failed."); return -1; } - if(circuit_deliver_create_cell(circ, payload) < 0) + if (circuit_deliver_create_cell(circ, payload) < 0) return -1; circ->cpath->state = CPATH_STATE_AWAITING_KEYS; @@ -456,7 +456,7 @@ int circuit_send_next_onion_skin(circuit_t *circ) { circ->state = CIRCUIT_STATE_OPEN; log_fn(LOG_INFO,"circuit built!"); circuit_reset_failure_count(0); - if(!has_completed_circuit) { + if (!has_completed_circuit) { has_completed_circuit=1; log_fn(LOG_NOTICE,"Tor has successfully opened a circuit. Looks like it's working."); /* XXX009 Log a count of known routers here */ @@ -477,7 +477,7 @@ int circuit_send_next_onion_skin(circuit_t *circ) { memcpy(payload+2+4+ONIONSKIN_CHALLENGE_LEN, hop->identity_digest, DIGEST_LEN); payload_len = 2+4+ONIONSKIN_CHALLENGE_LEN+DIGEST_LEN; - if(onion_skin_create(router->onion_pkey, &(hop->handshake_state), onionskin) < 0) { + if (onion_skin_create(router->onion_pkey, &(hop->handshake_state), onionskin) < 0) { log_fn(LOG_WARN,"onion_skin_create failed."); return -1; } @@ -485,7 +485,7 @@ int circuit_send_next_onion_skin(circuit_t *circ) { log_fn(LOG_DEBUG,"Sending extend relay cell."); /* send it to hop->prev, because it will transfer * it to a create cell and then send to hop */ - if(connection_edge_send_command(NULL, circ, RELAY_COMMAND_EXTEND, + if (connection_edge_send_command(NULL, circ, RELAY_COMMAND_EXTEND, payload, payload_len, hop->prev) < 0) return 0; /* circuit is closed */ @@ -505,7 +505,7 @@ int circuit_extend(cell_t *cell, circuit_t *circ) { char *id_digest=NULL; routerinfo_t *router; - if(circ->n_conn) { + if (circ->n_conn) { log_fn(LOG_WARN,"n_conn already set. Bug/attack. Closing."); return -1; } @@ -524,7 +524,7 @@ int circuit_extend(cell_t *cell, circuit_t *circ) { id_digest = cell->payload+RELAY_HEADER_SIZE+4+2+ONIONSKIN_CHALLENGE_LEN; n_conn = connection_get_by_identity_digest(id_digest, CONN_TYPE_OR); - if(!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { + if (!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* Note that this will close circuits where the onion has the same * router twice in a row in the path. I think that's ok. */ @@ -541,13 +541,13 @@ int circuit_extend(cell_t *cell, circuit_t *circ) { /* imprint the circuit with its future n_conn->id */ memcpy(circ->n_conn_id_digest, id_digest, DIGEST_LEN); - if(n_conn) { + if (n_conn) { circ->n_addr = n_conn->addr; circ->n_port = n_conn->port; } else { /* we should try to open a connection */ n_conn = connection_or_connect(circ->n_addr, circ->n_port, id_digest); - if(!n_conn) { + if (!n_conn) { log_fn(LOG_INFO,"Launching n_conn failed. Closing."); return -1; } @@ -567,7 +567,7 @@ int circuit_extend(cell_t *cell, circuit_t *circ) { memcpy(circ->n_conn_id_digest, n_conn->identity_digest, DIGEST_LEN); log_fn(LOG_DEBUG,"n_conn is %s:%u",n_conn->address,n_conn->port); - if(circuit_deliver_create_cell(circ, onionskin) < 0) + if (circuit_deliver_create_cell(circ, onionskin) < 0) return -1; return 0; } @@ -637,20 +637,20 @@ int circuit_finish_handshake(circuit_t *circ, char *reply) { crypt_path_t *hop; tor_assert(CIRCUIT_IS_ORIGIN(circ)); - if(circ->cpath->state == CPATH_STATE_AWAITING_KEYS) + if (circ->cpath->state == CPATH_STATE_AWAITING_KEYS) hop = circ->cpath; else { - for(hop=circ->cpath->next; + for (hop=circ->cpath->next; hop != circ->cpath && hop->state == CPATH_STATE_OPEN; hop=hop->next) ; - if(hop == circ->cpath) { /* got an extended when we're all done? */ + if (hop == circ->cpath) { /* got an extended when we're all done? */ log_fn(LOG_WARN,"got extended when circ already built? Closing."); return -1; } } tor_assert(hop->state == CPATH_STATE_AWAITING_KEYS); - if(onion_skin_client_handshake(hop->handshake_state, reply, keys, + if (onion_skin_client_handshake(hop->handshake_state, reply, keys, DIGEST_LEN*2+CIPHER_KEY_LEN*2) < 0) { log_fn(LOG_WARN,"onion_skin_client_handshake failed."); return -1; @@ -695,13 +695,13 @@ int circuit_truncated(circuit_t *circ, crypt_path_t *layer) { return 0; #if 0 - while(layer->next != circ->cpath) { + while (layer->next != circ->cpath) { /* we need to clear out layer->next */ victim = layer->next; log_fn(LOG_DEBUG, "Killing a layer of the cpath."); - for(stream = circ->p_streams; stream; stream=stream->next_stream) { - if(stream->cpath_layer == victim) { + for (stream = circ->p_streams; stream; stream=stream->next_stream) { + if (stream->cpath_layer == victim) { log_fn(LOG_INFO, "Marking stream %d for close.", stream->stream_id); /* no need to send 'end' relay cells, * because the other side's already dead @@ -777,15 +777,15 @@ static int new_route_len(double cw, uint8_t purpose, smartlist_t *routers) { #ifdef TOR_PERF routelen = 2; #else - if(purpose == CIRCUIT_PURPOSE_C_GENERAL) + if (purpose == CIRCUIT_PURPOSE_C_GENERAL) routelen = 3; - else if(purpose == CIRCUIT_PURPOSE_C_INTRODUCING) + else if (purpose == CIRCUIT_PURPOSE_C_INTRODUCING) routelen = 4; - else if(purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND) + else if (purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND) routelen = 3; - else if(purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO) + else if (purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO) routelen = 3; - else if(purpose == CIRCUIT_PURPOSE_S_CONNECT_REND) + else if (purpose == CIRCUIT_PURPOSE_S_CONNECT_REND) routelen = 4; else { log_fn(LOG_WARN,"Unhandled purpose %d", purpose); @@ -793,7 +793,7 @@ static int new_route_len(double cw, uint8_t purpose, smartlist_t *routers) { } #endif #if 0 - for(routelen = 3; ; routelen++) { /* 3, increment until coinflip says we're done */ + for (routelen = 3; ; routelen++) { /* 3, increment until coinflip says we're done */ if (crypto_pseudo_rand_int(255) >= cw*255) /* don't extend */ break; } @@ -803,13 +803,13 @@ static int new_route_len(double cw, uint8_t purpose, smartlist_t *routers) { num_acceptable_routers = count_acceptable_routers(routers); - if(num_acceptable_routers < 2) { + if (num_acceptable_routers < 2) { log_fn(LOG_INFO,"Not enough acceptable routers (%d). Discarding this circuit.", num_acceptable_routers); return -1; } - if(num_acceptable_routers < routelen) { + if (num_acceptable_routers < routelen) { log_fn(LOG_INFO,"Not enough routers: cutting routelen from %d to %d.", routelen, num_acceptable_routers); routelen = num_acceptable_routers; @@ -864,7 +864,7 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) n_supported = tor_malloc(sizeof(int)*smartlist_len(dir->routers)); for (i = 0; i < smartlist_len(dir->routers); ++i) { /* iterate over routers */ router = smartlist_get(dir->routers, i); - if(router_is_me(router)) { + if (router_is_me(router)) { n_supported[i] = -1; log_fn(LOG_DEBUG,"Skipping node %s -- it's me.", router->nickname); /* XXX there's probably a reverse predecessor attack here, but @@ -872,13 +872,13 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) */ continue; } - if(!router->is_running) { + if (!router->is_running) { n_supported[i] = -1; log_fn(LOG_DEBUG,"Skipping node %s (index %d) -- directory says it's not running.", router->nickname, i); continue; /* skip routers that are known to be down */ } - if(!router->is_verified && + if (!router->is_verified && (!(options->_AllowUnverified & ALLOW_UNVERIFIED_EXIT) || router_is_unreliable_router(router, 1, 1))) { /* if it's unverified, and either we don't want it or it's unsuitable */ @@ -887,13 +887,13 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) router->nickname, i); continue; /* skip unverified routers */ } - if(router_exit_policy_rejects_all(router)) { + if (router_exit_policy_rejects_all(router)) { n_supported[i] = -1; log_fn(LOG_DEBUG,"Skipping node %s (index %d) -- it rejects all.", router->nickname, i); continue; /* skip routers that reject all */ } - if(smartlist_len(preferredentries)==1 && + if (smartlist_len(preferredentries)==1 && router == (routerinfo_t*)smartlist_get(preferredentries, 0)) { n_supported[i] = -1; log_fn(LOG_DEBUG,"Skipping node %s (index %d) -- it's our only preferred entry node.", router->nickname, i); @@ -906,7 +906,7 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) carray[j]->marked_for_close || circuit_stream_is_being_handled(carray[j])) continue; /* Skip everything but APs in CIRCUIT_WAIT */ - if(connection_ap_can_use_exit(carray[j], router)) { + if (connection_ap_can_use_exit(carray[j], router)) { ++n_supported[i]; log_fn(LOG_DEBUG,"%s is supported. n_supported[%d] now %d.", router->nickname, i, n_supported[i]); @@ -955,8 +955,8 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) if (best_support == -1) { log(LOG_WARN, "All routers are down or middleman -- choosing a doomed exit at random."); } - for(i = 0; i < smartlist_len(dir->routers); i++) - if(n_supported[i] != -1) + for (i = 0; i < smartlist_len(dir->routers); i++) + if (n_supported[i] != -1) smartlist_add(sl, smartlist_get(dir->routers, i)); smartlist_subtract(sl,excludedexits); @@ -970,7 +970,7 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) smartlist_free(excludedexits); smartlist_free(sl); tor_free(n_supported); - if(router) { + if (router) { log_fn(LOG_INFO, "Chose exit server '%s'", router->nickname); return router; } @@ -994,7 +994,7 @@ static routerinfo_t *choose_good_exit_server(uint8_t purpose, routerlist_t *dir) { routerinfo_t *r; or_options_t *options = get_options(); - switch(purpose) { + switch (purpose) { case CIRCUIT_PURPOSE_C_GENERAL: return choose_good_exit_server_general(dir); case CIRCUIT_PURPOSE_C_ESTABLISH_REND: @@ -1026,7 +1026,7 @@ onion_new_cpath_build_state(uint8_t purpose, const char *exit_digest) return NULL; info = tor_malloc_zero(sizeof(cpath_build_state_t)); info->desired_path_len = r; - if(exit_digest) { /* the circuit-builder pre-requested one */ + if (exit_digest) { /* the circuit-builder pre-requested one */ memcpy(info->chosen_exit_digest, exit_digest, DIGEST_LEN); exit = router_get_by_digest(exit_digest); if (exit) { @@ -1039,7 +1039,7 @@ onion_new_cpath_build_state(uint8_t purpose, const char *exit_digest) log_fn(LOG_INFO,"Using requested exit node '%s'", info->chosen_exit_name); } else { /* we have to decide one */ exit = choose_good_exit_server(purpose, rl); - if(!exit) { + if (!exit) { log_fn(LOG_WARN,"failed to choose an exit server"); tor_free(info); return NULL; @@ -1059,15 +1059,15 @@ static int count_acceptable_routers(smartlist_t *routers) { routerinfo_t *r; n = smartlist_len(routers); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { r = smartlist_get(routers, i); log_fn(LOG_DEBUG,"Contemplating whether router %d (%s) is a new option...", i, r->nickname); - if(r->is_running == 0) { + if (r->is_running == 0) { log_fn(LOG_DEBUG,"Nope, the directory says %d is not running.",i); goto next_i_loop; } - if(r->is_verified == 0) { + if (r->is_verified == 0) { log_fn(LOG_DEBUG,"Nope, the directory says %d is not verified.",i); /* XXXX009 But unverified routers *are* sometimes acceptable. */ goto next_i_loop; @@ -1109,16 +1109,16 @@ static routerinfo_t *choose_good_middle_server(cpath_build_state_t *state, log_fn(LOG_DEBUG, "Contemplating intermediate hop: random choice."); excluded = smartlist_create(); - if((r = router_get_by_digest(state->chosen_exit_digest))) { + if ((r = router_get_by_digest(state->chosen_exit_digest))) { smartlist_add(excluded, r); routerlist_add_family(excluded, r); } - if((r = routerlist_find_my_routerinfo())) { + if ((r = routerlist_find_my_routerinfo())) { smartlist_add(excluded, r); routerlist_add_family(excluded, r); } for (i = 0, cpath = head; i < cur_len; ++i, cpath=cpath->next) { - if((r = router_get_by_digest(cpath->identity_digest))) { + if ((r = router_get_by_digest(cpath->identity_digest))) { smartlist_add(excluded, r); routerlist_add_family(excluded, r); } @@ -1136,24 +1136,24 @@ static routerinfo_t *choose_good_entry_server(cpath_build_state_t *state) or_options_t *options = get_options(); char buf[16]; - if((r = router_get_by_digest(state->chosen_exit_digest))) { + if ((r = router_get_by_digest(state->chosen_exit_digest))) { smartlist_add(excluded, r); routerlist_add_family(excluded, r); } - if((r = routerlist_find_my_routerinfo())) { + if ((r = routerlist_find_my_routerinfo())) { smartlist_add(excluded, r); routerlist_add_family(excluded, r); } - if(options->FascistFirewall) { + if (options->FascistFirewall) { /* exclude all ORs that listen on the wrong port */ routerlist_t *rl; int i; router_get_routerlist(&rl); - if(!rl) + if (!rl) return NULL; - for(i=0; i < smartlist_len(rl->routers); i++) { + for (i=0; i < smartlist_len(rl->routers); i++) { r = smartlist_get(rl->routers, i); tor_snprintf(buf, sizeof(buf), "%d", r->or_port); if (!smartlist_string_isin(options->FirewallPorts, buf)) @@ -1202,16 +1202,16 @@ onion_extend_cpath(crypt_path_t **head_ptr, cpath_build_state_t excludednodes = smartlist_create(); add_nickname_list_to_smartlist(excludednodes,get_options()->ExcludeNodes,0); - if(cur_len == state->desired_path_len - 1) { /* Picking last node */ + if (cur_len == state->desired_path_len - 1) { /* Picking last node */ choice = router_get_by_digest(state->chosen_exit_digest); - } else if(cur_len == 0) { /* picking first node */ + } else if (cur_len == 0) { /* picking first node */ choice = choose_good_entry_server(state); } else { choice = choose_good_middle_server(state, *head_ptr, cur_len); } smartlist_free(excludednodes); - if(!choice) { + if (!choice) { log_fn(LOG_WARN,"Failed to find node for hop %d of our path. Discarding this circuit.", cur_len); return -1; } diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 8e4438a17d..9edbecc4f3 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -34,7 +34,7 @@ static void circuit_free_cpath_node(crypt_path_t *victim); * within circuit_new. */ static void circuit_add(circuit_t *circ) { - if(!global_circuitlist) { /* first one */ + if (!global_circuitlist) { /* first one */ global_circuitlist = circ; circ->next = NULL; } else { @@ -115,7 +115,7 @@ static void circuit_free(circuit_t *circ) { crypto_free_digest_env(circ->n_digest); if (circ->p_digest) crypto_free_digest_env(circ->p_digest); - if(circ->build_state) { + if (circ->build_state) { tor_free(circ->build_state->chosen_exit_name); if (circ->build_state->pending_final_cpath) circuit_free_cpath_node(circ->build_state->pending_final_cpath); @@ -134,12 +134,12 @@ static void circuit_free(circuit_t *circ) { static void circuit_free_cpath(crypt_path_t *cpath) { crypt_path_t *victim, *head=cpath; - if(!cpath) + if (!cpath) return; /* it's a doubly linked list, so we have to notice when we've * gone through it once. */ - while(cpath->next && cpath->next != head) { + while (cpath->next && cpath->next != head) { victim = cpath; cpath = victim->next; circuit_free_cpath_node(victim); @@ -151,15 +151,15 @@ static void circuit_free_cpath(crypt_path_t *cpath) { /** Deallocate space associated with the cpath node <b>victim</b>. */ static void circuit_free_cpath_node(crypt_path_t *victim) { - if(victim->f_crypto) + if (victim->f_crypto) crypto_free_cipher_env(victim->f_crypto); - if(victim->b_crypto) + if (victim->b_crypto) crypto_free_cipher_env(victim->b_crypto); - if(victim->f_digest) + if (victim->f_digest) crypto_free_digest_env(victim->f_digest); - if(victim->b_digest) + if (victim->b_digest) crypto_free_digest_env(victim->b_digest); - if(victim->handshake_state) + if (victim->handshake_state) crypto_dh_free(victim->handshake_state); tor_free(victim); } @@ -174,27 +174,27 @@ circuit_t *circuit_get_by_circ_id_conn(uint16_t circ_id, connection_t *conn) { circuit_t *circ; connection_t *tmpconn; - for(circ=global_circuitlist;circ;circ = circ->next) { + for (circ=global_circuitlist;circ;circ = circ->next) { if (circ->marked_for_close) continue; - if(circ->p_circ_id == circ_id) { - if(circ->p_conn == conn) + if (circ->p_circ_id == circ_id) { + if (circ->p_conn == conn) return circ; - for(tmpconn = circ->p_streams; tmpconn; tmpconn = tmpconn->next_stream) { - if(tmpconn == conn) + for (tmpconn = circ->p_streams; tmpconn; tmpconn = tmpconn->next_stream) { + if (tmpconn == conn) return circ; } } - if(circ->n_circ_id == circ_id) { - if(circ->n_conn == conn) + if (circ->n_circ_id == circ_id) { + if (circ->n_conn == conn) return circ; - for(tmpconn = circ->n_streams; tmpconn; tmpconn = tmpconn->next_stream) { - if(tmpconn == conn) + for (tmpconn = circ->n_streams; tmpconn; tmpconn = tmpconn->next_stream) { + if (tmpconn == conn) return circ; } - for(tmpconn = circ->resolving_streams; tmpconn; tmpconn = tmpconn->next_stream) { - if(tmpconn == conn) + for (tmpconn = circ->resolving_streams; tmpconn; tmpconn = tmpconn->next_stream) { + if (tmpconn == conn) return circ; } } @@ -211,22 +211,22 @@ circuit_t *circuit_get_by_conn(connection_t *conn) { circuit_t *circ; connection_t *tmpconn; - for(circ=global_circuitlist;circ;circ = circ->next) { + for (circ=global_circuitlist;circ;circ = circ->next) { if (circ->marked_for_close) continue; - if(circ->p_conn == conn) + if (circ->p_conn == conn) return circ; - if(circ->n_conn == conn) + if (circ->n_conn == conn) return circ; - for(tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) - if(tmpconn == conn) + for (tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) + if (tmpconn == conn) return circ; - for(tmpconn = circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) - if(tmpconn == conn) + for (tmpconn = circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) + if (tmpconn == conn) return circ; - for(tmpconn = circ->resolving_streams; tmpconn; tmpconn=tmpconn->next_stream) - if(tmpconn == conn) + for (tmpconn = circ->resolving_streams; tmpconn; tmpconn=tmpconn->next_stream) + if (tmpconn == conn) return circ; } return NULL; @@ -265,7 +265,7 @@ circuit_get_next_by_pk_and_purpose(circuit_t *start, else circ = start->next; - for( ; circ; circ = circ->next) { + for ( ; circ; circ = circ->next) { if (circ->marked_for_close) continue; if (circ->purpose != purpose) @@ -297,8 +297,8 @@ int circuit_count_building(uint8_t purpose) { circuit_t *circ; int num=0; - for(circ=global_circuitlist;circ;circ = circ->next) { - if(CIRCUIT_IS_ORIGIN(circ) && + for (circ=global_circuitlist;circ;circ = circ->next) { + if (CIRCUIT_IS_ORIGIN(circ) && circ->state != CIRCUIT_STATE_OPEN && circ->purpose == purpose && !circ->marked_for_close) @@ -316,8 +316,8 @@ circuit_get_youngest_clean_open(uint8_t purpose) { circuit_t *circ; circuit_t *youngest=NULL; - for(circ=global_circuitlist;circ;circ = circ->next) { - if(CIRCUIT_IS_ORIGIN(circ) && circ->state == CIRCUIT_STATE_OPEN && + for (circ=global_circuitlist;circ;circ = circ->next) { + if (CIRCUIT_IS_ORIGIN(circ) && circ->state == CIRCUIT_STATE_OPEN && !circ->marked_for_close && circ->purpose == purpose && !circ->timestamp_dirty && (!youngest || youngest->timestamp_created < circ->timestamp_created)) @@ -348,7 +348,7 @@ int _circuit_mark_for_close(circuit_t *circ) { if (circ->marked_for_close) return -1; - if(circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { + if (circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { onion_pending_remove(circ); } /* If the circuit ever became OPEN, we sent it to the reputation history @@ -356,7 +356,7 @@ int _circuit_mark_for_close(circuit_t *circ) { * links worked and which didn't. */ if (circ->state != CIRCUIT_STATE_OPEN) { - if(CIRCUIT_IS_ORIGIN(circ)) { + if (CIRCUIT_IS_ORIGIN(circ)) { circuit_build_failed(circ); /* take actions if necessary */ } circuit_rep_hist_note_result(circ); @@ -373,20 +373,20 @@ int _circuit_mark_for_close(circuit_t *circ) { rend_client_remove_intro_point(circ->build_state->chosen_exit_name, circ->rend_query); } - if(circ->n_conn) + if (circ->n_conn) connection_send_destroy(circ->n_circ_id, circ->n_conn); - for(conn=circ->n_streams; conn; conn=conn->next_stream) + for (conn=circ->n_streams; conn; conn=conn->next_stream) connection_edge_destroy(circ->n_circ_id, conn); - while(circ->resolving_streams) { + while (circ->resolving_streams) { conn = circ->resolving_streams; circ->resolving_streams = conn->next_stream; connection_dns_remove(conn); /* remove it from resolve lists */ log_fn(LOG_INFO,"Freeing resolving-conn."); connection_free(conn); } - if(circ->p_conn) + if (circ->p_conn) connection_send_destroy(circ->p_circ_id, circ->p_conn); - for(conn=circ->p_streams; conn; conn=conn->next_stream) + for (conn=circ->p_streams; conn; conn=conn->next_stream) connection_edge_destroy(circ->p_circ_id, conn); circ->marked_for_close = 1; @@ -406,7 +406,7 @@ void assert_cpath_layer_ok(const crypt_path_t *cp) { // tor_assert(cp->addr); /* these are zero for rendezvous extra-hops */ // tor_assert(cp->port); - switch(cp->state) + switch (cp->state) { case CPATH_STATE_OPEN: tor_assert(cp->f_crypto); diff --git a/src/or/circuituse.c b/src/or/circuituse.c index e2ec8ea2eb..159b0cb916 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -43,8 +43,8 @@ static int circuit_is_acceptable(circuit_t *circ, return 0; /* if this circ isn't our purpose, skip. */ - if(purpose == CIRCUIT_PURPOSE_C_REND_JOINED && !must_be_open) { - if(circ->purpose != CIRCUIT_PURPOSE_C_ESTABLISH_REND && + if (purpose == CIRCUIT_PURPOSE_C_REND_JOINED && !must_be_open) { + if (circ->purpose != CIRCUIT_PURPOSE_C_ESTABLISH_REND && circ->purpose != CIRCUIT_PURPOSE_C_REND_READY && circ->purpose != CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED && circ->purpose != CIRCUIT_PURPOSE_C_REND_JOINED) @@ -54,16 +54,16 @@ static int circuit_is_acceptable(circuit_t *circ, circ->purpose != CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) return 0; } else { - if(purpose != circ->purpose) + if (purpose != circ->purpose) return 0; } - if(purpose == CIRCUIT_PURPOSE_C_GENERAL) - if(circ->timestamp_dirty && + if (purpose == CIRCUIT_PURPOSE_C_GENERAL) + if (circ->timestamp_dirty && circ->timestamp_dirty+get_options()->NewCircuitPeriod <= now) return 0; - if(conn) { + if (conn) { /* decide if this circ is suitable for this conn */ /* for rend circs, circ->cpath->prev is not the last router in the @@ -72,7 +72,7 @@ static int circuit_is_acceptable(circuit_t *circ, */ exitrouter = router_get_by_digest(circ->build_state->chosen_exit_digest); - if(!exitrouter) { + if (!exitrouter) { log_fn(LOG_INFO,"Skipping broken circ (exit router vanished)"); return 0; /* this circuit is screwed and doesn't know it yet */ } @@ -82,13 +82,13 @@ static int circuit_is_acceptable(circuit_t *circ, /* 0.0.8 servers have buggy resolve support. */ if (!tor_version_as_new_as(exitrouter->platform, "0.0.9pre1")) return 0; - } else if(purpose == CIRCUIT_PURPOSE_C_GENERAL) { - if(!connection_ap_can_use_exit(conn, exitrouter)) { + } else if (purpose == CIRCUIT_PURPOSE_C_GENERAL) { + if (!connection_ap_can_use_exit(conn, exitrouter)) { /* can't exit from this router */ return 0; } } else { /* not general */ - if(rend_cmp_service_ids(conn->rend_query, circ->rend_query) && + if (rend_cmp_service_ids(conn->rend_query, circ->rend_query) && (circ->rend_query[0] || purpose != CIRCUIT_PURPOSE_C_REND_JOINED)) { /* this circ is not for this conn, and it's not suitable * for cannibalizing either */ @@ -104,29 +104,29 @@ static int circuit_is_acceptable(circuit_t *circ, */ static int circuit_is_better(circuit_t *a, circuit_t *b, uint8_t purpose) { - switch(purpose) { + switch (purpose) { case CIRCUIT_PURPOSE_C_GENERAL: /* if it's used but less dirty it's best; * else if it's more recently created it's best */ - if(b->timestamp_dirty) { - if(a->timestamp_dirty && + if (b->timestamp_dirty) { + if (a->timestamp_dirty && a->timestamp_dirty > b->timestamp_dirty) return 1; } else { - if(a->timestamp_dirty || + if (a->timestamp_dirty || a->timestamp_created > b->timestamp_created) return 1; } break; case CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT: /* the closer it is to ack_wait the better it is */ - if(a->purpose > b->purpose) + if (a->purpose > b->purpose) return 1; break; case CIRCUIT_PURPOSE_C_REND_JOINED: /* the closer it is to rend_joined the better it is */ - if(a->purpose > b->purpose) + if (a->purpose > b->purpose) return 1; break; } @@ -168,7 +168,7 @@ circuit_get_best(connection_t *conn, int must_be_open, uint8_t purpose) /* now this is an acceptable circ to hand back. but that doesn't * mean it's the *best* circ to hand back. try to decide. */ - if(!best || circuit_is_better(circ,best,purpose)) + if (!best || circuit_is_better(circ,best,purpose)) best = circ; } @@ -187,20 +187,20 @@ circuit_get_best(connection_t *conn, int must_be_open, uint8_t purpose) void circuit_expire_building(time_t now) { circuit_t *victim, *circ = global_circuitlist; - while(circ) { + while (circ) { victim = circ; circ = circ->next; - if(!CIRCUIT_IS_ORIGIN(victim)) + if (!CIRCUIT_IS_ORIGIN(victim)) continue; /* didn't originate here */ - if(victim->marked_for_close) + if (victim->marked_for_close) continue; /* don't mess with marked circs */ - if(victim->timestamp_created + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now) + if (victim->timestamp_created + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now) continue; /* it's young still, don't mess with it */ /* some debug logs, to help track bugs */ - if(victim->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING && + if (victim->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING && victim->purpose <= CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) { - if(!victim->timestamp_dirty) + if (!victim->timestamp_dirty) log_fn(LOG_DEBUG,"Considering %sopen purp %d to %s (circid %d). (clean).", victim->state == CIRCUIT_STATE_OPEN ? "" : "non", victim->purpose, victim->build_state->chosen_exit_name, @@ -215,7 +215,7 @@ void circuit_expire_building(time_t now) { /* if circ is !open, or if it's open but purpose is a non-finished * intro or rend, then mark it for close */ - if(victim->state != CIRCUIT_STATE_OPEN || + if (victim->state != CIRCUIT_STATE_OPEN || victim->purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND || victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCING || victim->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO || @@ -235,7 +235,7 @@ void circuit_expire_building(time_t now) { victim->purpose == CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED || victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) && victim->timestamp_dirty + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now)) { - if(victim->n_conn) + if (victim->n_conn) log_fn(LOG_INFO,"Abandoning circ %s:%d:%d (state %d:%s, purpose %d)", victim->n_conn->address, victim->n_port, victim->n_circ_id, victim->state, circuit_state_to_string[victim->state], victim->purpose); @@ -263,14 +263,14 @@ int circuit_stream_is_being_handled(connection_t *conn) { int num=0; time_t now = time(NULL); - for(circ=global_circuitlist;circ;circ = circ->next) { - if(CIRCUIT_IS_ORIGIN(circ) && circ->state != CIRCUIT_STATE_OPEN && + for (circ=global_circuitlist;circ;circ = circ->next) { + if (CIRCUIT_IS_ORIGIN(circ) && circ->state != CIRCUIT_STATE_OPEN && !circ->marked_for_close && circ->purpose == CIRCUIT_PURPOSE_C_GENERAL && (!circ->timestamp_dirty || circ->timestamp_dirty + get_options()->NewCircuitPeriod < now)) { exitrouter = router_get_by_digest(circ->build_state->chosen_exit_digest); - if(exitrouter && connection_ap_can_use_exit(conn, exitrouter)) - if(++num >= MIN_CIRCUITS_HANDLING_STREAM) + if (exitrouter && connection_ap_can_use_exit(conn, exitrouter)) + if (++num >= MIN_CIRCUITS_HANDLING_STREAM) return 1; } } @@ -293,19 +293,19 @@ void circuit_build_needed_circs(time_t now) { connection_ap_attach_pending(); /* make sure any hidden services have enough intro points */ - if(has_fetched_directory) + if (has_fetched_directory) rend_services_introduce(); circ = circuit_get_youngest_clean_open(CIRCUIT_PURPOSE_C_GENERAL); - if(time_to_new_circuit < now) { + if (time_to_new_circuit < now) { circuit_reset_failure_count(1); time_to_new_circuit = now + get_options()->NewCircuitPeriod; - if(proxy_mode(get_options())) + if (proxy_mode(get_options())) client_dns_clean(); circuit_expire_old_circuits(); - if(get_options()->RunTesting && circ && + if (get_options()->RunTesting && circ && circ->timestamp_created + TESTING_CIRCUIT_INTERVAL < now) { log_fn(LOG_INFO,"Creating a new testing circuit."); circuit_launch_by_identity(CIRCUIT_PURPOSE_C_GENERAL, NULL); @@ -319,7 +319,7 @@ void circuit_build_needed_circs(time_t now) { #define CIRCUIT_MIN_BUILDING_GENERAL 5 /* if there's no open circ, and less than 5 are on the way, * go ahead and try another. */ - if(!circ && circuit_count_building(CIRCUIT_PURPOSE_C_GENERAL) + if (!circ && circuit_count_building(CIRCUIT_PURPOSE_C_GENERAL) < CIRCUIT_MIN_BUILDING_GENERAL) { circuit_launch_by_identity(CIRCUIT_PURPOSE_C_GENERAL, NULL); } @@ -338,42 +338,42 @@ void circuit_detach_stream(circuit_t *circ, connection_t *conn) { conn->cpath_layer = NULL; /* make sure we don't keep a stale pointer */ - if(conn == circ->p_streams) { + if (conn == circ->p_streams) { circ->p_streams = conn->next_stream; return; } - if(conn == circ->n_streams) { + if (conn == circ->n_streams) { circ->n_streams = conn->next_stream; return; } - if(conn == circ->resolving_streams) { + if (conn == circ->resolving_streams) { circ->resolving_streams = conn->next_stream; return; } - for(prevconn = circ->p_streams; + for (prevconn = circ->p_streams; prevconn && prevconn->next_stream && prevconn->next_stream != conn; prevconn = prevconn->next_stream) ; - if(prevconn && prevconn->next_stream) { + if (prevconn && prevconn->next_stream) { prevconn->next_stream = conn->next_stream; return; } - for(prevconn = circ->n_streams; + for (prevconn = circ->n_streams; prevconn && prevconn->next_stream && prevconn->next_stream != conn; prevconn = prevconn->next_stream) ; - if(prevconn && prevconn->next_stream) { + if (prevconn && prevconn->next_stream) { prevconn->next_stream = conn->next_stream; return; } - for(prevconn = circ->resolving_streams; + for (prevconn = circ->resolving_streams; prevconn && prevconn->next_stream && prevconn->next_stream != conn; prevconn = prevconn->next_stream) ; - if(prevconn && prevconn->next_stream) { + if (prevconn && prevconn->next_stream) { prevconn->next_stream = conn->next_stream; return; } @@ -397,17 +397,17 @@ void circuit_about_to_close_connection(connection_t *conn) { */ circuit_t *circ; - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_OR: - if(conn->state != OR_CONN_STATE_OPEN) { + if (conn->state != OR_CONN_STATE_OPEN) { /* Inform any pending (not attached) circs that they should give up. */ circuit_n_conn_done(conn, 0); } /* Now close all the attached circuits on it. */ - while((circ = circuit_get_by_conn(conn))) { - if(circ->n_conn == conn) /* it's closing in front of us */ + while ((circ = circuit_get_by_conn(conn))) { + if (circ->n_conn == conn) /* it's closing in front of us */ circ->n_conn = NULL; - if(circ->p_conn == conn) /* it's closing behind us */ + if (circ->p_conn == conn) /* it's closing behind us */ circ->p_conn = NULL; circuit_mark_for_close(circ); } @@ -421,7 +421,7 @@ void circuit_about_to_close_connection(connection_t *conn) { */ circ = circuit_get_by_conn(conn); - if(!circ) + if (!circ) return; circuit_detach_stream(circ, conn); @@ -494,7 +494,7 @@ void circuit_has_opened(circuit_t *circ) { control_event_circuit_status(circ, CIRC_EVENT_BUILT); - switch(circ->purpose) { + switch (circ->purpose) { case CIRCUIT_PURPOSE_C_ESTABLISH_REND: rend_client_rendcirc_has_opened(circ); break; @@ -536,7 +536,7 @@ void circuit_build_failed(circuit_t *circ) { failed_at_last_hop = 1; } - switch(circ->purpose) { + switch (circ->purpose) { case CIRCUIT_PURPOSE_C_GENERAL: if (circ->state != CIRCUIT_STATE_OPEN) { /* If we never built the circuit, note it as a failure. */ @@ -644,7 +644,7 @@ static void circuit_increment_failure_count(void) { * stopping again. */ void circuit_reset_failure_count(int timeout) { - if(timeout && n_circuit_failures > MAX_CIRCUIT_FAILURES) + if (timeout && n_circuit_failures > MAX_CIRCUIT_FAILURES) did_circs_fail_last_period = 1; else did_circs_fail_last_period = 0; @@ -672,15 +672,15 @@ circuit_get_open_circ_or_launch(connection_t *conn, circ = circuit_get_best(conn, 1, desired_circuit_purpose); - if(circ) { + if (circ) { *circp = circ; return 1; /* we're happy */ } /* Do we need to check exit policy? */ - if(!is_resolve && !connection_edge_is_rendezvous_stream(conn)) { + if (!is_resolve && !connection_edge_is_rendezvous_stream(conn)) { addr = client_dns_lookup_entry(conn->socks_request->address); - if(router_exit_policy_all_routers_reject(addr, conn->socks_request->port)) { + if (router_exit_policy_all_routers_reject(addr, conn->socks_request->port)) { log_fn(LOG_WARN,"No Tor server exists that allows exit to %s:%d. Rejecting.", conn->socks_request->address, conn->socks_request->port); return -1; @@ -689,19 +689,19 @@ circuit_get_open_circ_or_launch(connection_t *conn, /* is one already on the way? */ circ = circuit_get_best(conn, 0, desired_circuit_purpose); - if(!circ) { + if (!circ) { char *exitname=NULL; uint8_t new_circ_purpose; - if(desired_circuit_purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) { + if (desired_circuit_purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) { /* need to pick an intro point */ exitname = rend_client_get_random_intro(conn->rend_query); - if(!exitname) { + if (!exitname) { log_fn(LOG_WARN,"Couldn't get an intro point for '%s'. Closing.", conn->rend_query); return -1; } - if(!router_get_by_nickname(exitname)) { + if (!router_get_by_nickname(exitname)) { log_fn(LOG_WARN,"Advertised intro point '%s' is not known. Closing.", exitname); return -1; } @@ -709,9 +709,9 @@ circuit_get_open_circ_or_launch(connection_t *conn, log_fn(LOG_INFO,"Chose %s as intro point for %s.", exitname, conn->rend_query); } - if(desired_circuit_purpose == CIRCUIT_PURPOSE_C_REND_JOINED) + if (desired_circuit_purpose == CIRCUIT_PURPOSE_C_REND_JOINED) new_circ_purpose = CIRCUIT_PURPOSE_C_ESTABLISH_REND; - else if(desired_circuit_purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) + else if (desired_circuit_purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) new_circ_purpose = CIRCUIT_PURPOSE_C_INTRODUCING; else new_circ_purpose = desired_circuit_purpose; @@ -719,13 +719,13 @@ circuit_get_open_circ_or_launch(connection_t *conn, circ = circuit_launch_by_nickname(new_circ_purpose, exitname); tor_free(exitname); - if(circ && + if (circ && (desired_circuit_purpose != CIRCUIT_PURPOSE_C_GENERAL)) { /* then write the service_id into circ */ strlcpy(circ->rend_query, conn->rend_query, sizeof(circ->rend_query)); } } - if(!circ) + if (!circ) log_fn(LOG_INFO,"No safe circuit (purpose %d) ready for edge connection; delaying.", desired_circuit_purpose); *circp = circ; @@ -767,17 +767,17 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) { tor_assert(conn->socks_request); conn_age = time(NULL) - conn->timestamp_created; - if(conn_age > CONN_AP_MAX_ATTACH_DELAY) { + if (conn_age > CONN_AP_MAX_ATTACH_DELAY) { log_fn(LOG_WARN,"Giving up on unattached conn (%d sec old).", conn_age); return -1; } - if(!connection_edge_is_rendezvous_stream(conn)) { /* we're a general conn */ + if (!connection_edge_is_rendezvous_stream(conn)) { /* we're a general conn */ circuit_t *circ=NULL; /* find the circuit that we should use, if there is one. */ retval = circuit_get_open_circ_or_launch(conn, CIRCUIT_PURPOSE_C_GENERAL, &circ); - if(retval < 1) + if (retval < 1) return retval; /* We have found a suitable circuit for our conn. Hurray. */ @@ -788,7 +788,7 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) { /* here, print the circ's path. so people can figure out which circs are sucking. */ circuit_log_path(LOG_INFO,circ); - if(!circ->timestamp_dirty) + if (!circ->timestamp_dirty) circ->timestamp_dirty = time(NULL); link_apconn_to_circ(conn, circ); @@ -807,29 +807,29 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) { /* start by finding a rendezvous circuit for us */ retval = circuit_get_open_circ_or_launch(conn, CIRCUIT_PURPOSE_C_REND_JOINED, &rendcirc); - if(retval < 0) return -1; /* failed */ + if (retval < 0) return -1; /* failed */ - if(retval > 0) { + if (retval > 0) { tor_assert(rendcirc); /* one is already established, attach */ log_fn(LOG_INFO,"rend joined circ %d already here. attaching. (stream %d sec old)", rendcirc->n_circ_id, conn_age); link_apconn_to_circ(conn, rendcirc); - if(connection_ap_handshake_send_begin(conn, rendcirc) < 0) + if (connection_ap_handshake_send_begin(conn, rendcirc) < 0) return 0; /* already marked, let them fade away */ return 1; } - if(rendcirc && rendcirc->purpose == CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) { + if (rendcirc && rendcirc->purpose == CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) { log_fn(LOG_INFO,"pending-join circ %d already here, with intro ack. Stalling. (stream %d sec old)", rendcirc->n_circ_id, conn_age); return 0; } /* it's on its way. find an intro circ. */ retval = circuit_get_open_circ_or_launch(conn, CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT, &introcirc); - if(retval < 0) return -1; /* failed */ + if (retval < 0) return -1; /* failed */ - if(retval > 0) { + if (retval > 0) { /* one has already sent the intro. keep waiting. */ tor_assert(introcirc); log_fn(LOG_INFO,"Intro circ %d present and awaiting ack (rend %d). Stalling. (stream %d sec old)", @@ -839,16 +839,16 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) { /* now rendcirc and introcirc are each either undefined or not finished */ - if(rendcirc && introcirc && rendcirc->purpose == CIRCUIT_PURPOSE_C_REND_READY) { + if (rendcirc && introcirc && rendcirc->purpose == CIRCUIT_PURPOSE_C_REND_READY) { log_fn(LOG_INFO,"ready rend circ %d already here (no intro-ack yet on intro %d). (stream %d sec old)", rendcirc->n_circ_id, introcirc->n_circ_id, conn_age); tor_assert(introcirc->purpose == CIRCUIT_PURPOSE_C_INTRODUCING); - if(introcirc->state == CIRCUIT_STATE_OPEN) { + if (introcirc->state == CIRCUIT_STATE_OPEN) { log_fn(LOG_INFO,"found open intro circ %d (rend %d); sending introduction. (stream %d sec old)", introcirc->n_circ_id, rendcirc->n_circ_id, conn_age); /* XXX here we should cannibalize the rend circ if it's a zero service id */ - if(rend_client_send_introduction(introcirc, rendcirc) < 0) { + if (rend_client_send_introduction(introcirc, rendcirc) < 0) { return -1; } rendcirc->timestamp_dirty = time(NULL); diff --git a/src/or/command.c b/src/or/command.c index dc9b372ad5..27d556d017 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -71,7 +71,7 @@ void command_process_cell(cell_t *cell, connection_t *conn) { time_t now = time(NULL); - if(now > current_second) { /* the second has rolled over */ + if (now > current_second) { /* the second has rolled over */ /* print stats */ log(LOG_INFO,"At end of second: %d creates (%d ms), %d createds (%d ms), %d relays (%d ms), %d destroys (%d ms)", num_create, create_time/1000, @@ -87,7 +87,7 @@ void command_process_cell(cell_t *cell, connection_t *conn) { current_second = now; } - switch(cell->command) { + switch (cell->command) { case CELL_PADDING: ++stats_n_padding_cells_processed; /* do nothing */ @@ -130,7 +130,7 @@ void command_process_cell(cell_t *cell, connection_t *conn) { static void command_process_create_cell(cell_t *cell, connection_t *conn) { circuit_t *circ; - if(we_are_hibernating()) { + if (we_are_hibernating()) { log_fn(LOG_INFO,"Received create cell but we're shutting down. Sending back destroy."); connection_send_destroy(cell->circ_id, conn); return; @@ -138,7 +138,7 @@ static void command_process_create_cell(cell_t *cell, connection_t *conn) { circ = circuit_get_by_circ_id_conn(cell->circ_id, conn); - if(circ) { + if (circ) { log_fn(LOG_WARN,"received CREATE cell (circID %d) for known circ. Dropping.", cell->circ_id); return; } @@ -166,7 +166,7 @@ static void command_process_create_cell(cell_t *cell, connection_t *conn) { memcpy(circ->onionskin, cell->payload, ONIONSKIN_CHALLENGE_LEN); /* hand it off to the cpuworkers, and then return */ - if(assign_to_cpuworker(NULL, CPUWORKER_TASK_ONION, circ) < 0) { + if (assign_to_cpuworker(NULL, CPUWORKER_TASK_ONION, circ) < 0) { log_fn(LOG_WARN,"Failed to hand off onionskin. Closing."); circuit_mark_for_close(circ); return; @@ -186,26 +186,26 @@ static void command_process_created_cell(cell_t *cell, connection_t *conn) { circ = circuit_get_by_circ_id_conn(cell->circ_id, conn); - if(!circ) { + if (!circ) { log_fn(LOG_INFO,"(circID %d) unknown circ (probably got a destroy earlier). Dropping.", cell->circ_id); return; } - if(circ->n_circ_id != cell->circ_id) { + if (circ->n_circ_id != cell->circ_id) { log_fn(LOG_WARN,"got created cell from OPward? Closing."); circuit_mark_for_close(circ); return; } - if(CIRCUIT_IS_ORIGIN(circ)) { /* we're the OP. Handshake this. */ + if (CIRCUIT_IS_ORIGIN(circ)) { /* we're the OP. Handshake this. */ log_fn(LOG_DEBUG,"at OP. Finishing handshake."); - if(circuit_finish_handshake(circ, cell->payload) < 0) { + if (circuit_finish_handshake(circ, cell->payload) < 0) { log_fn(LOG_WARN,"circuit_finish_handshake failed."); circuit_mark_for_close(circ); return; } log_fn(LOG_DEBUG,"Moving to next skin."); - if(circuit_send_next_onion_skin(circ) < 0) { + if (circuit_send_next_onion_skin(circ) < 0) { log_fn(LOG_INFO,"circuit_send_next_onion_skin failed."); circuit_mark_for_close(circ); /* XXX push this circuit_close lower */ return; @@ -226,26 +226,26 @@ static void command_process_relay_cell(cell_t *cell, connection_t *conn) { circ = circuit_get_by_circ_id_conn(cell->circ_id, conn); - if(!circ) { + if (!circ) { log_fn(LOG_INFO,"unknown circuit %d on connection to %s:%d. Dropping.", cell->circ_id, conn->address, conn->port); return; } - if(circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { + if (circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { log_fn(LOG_WARN,"circuit in create_wait. Closing."); circuit_mark_for_close(circ); return; } - if(cell->circ_id == circ->p_circ_id) { /* it's an outgoing cell */ - if(circuit_receive_relay_cell(cell, circ, CELL_DIRECTION_OUT) < 0) { + if (cell->circ_id == circ->p_circ_id) { /* it's an outgoing cell */ + if (circuit_receive_relay_cell(cell, circ, CELL_DIRECTION_OUT) < 0) { log_fn(LOG_WARN,"circuit_receive_relay_cell (forward) failed. Closing."); circuit_mark_for_close(circ); return; } } else { /* it's an ingoing cell */ - if(circuit_receive_relay_cell(cell, circ, CELL_DIRECTION_IN) < 0) { + if (circuit_receive_relay_cell(cell, circ, CELL_DIRECTION_IN) < 0) { log_fn(LOG_WARN,"circuit_receive_relay_cell (backward) failed. Closing."); circuit_mark_for_close(circ); return; @@ -271,25 +271,25 @@ static void command_process_destroy_cell(cell_t *cell, connection_t *conn) { circ = circuit_get_by_circ_id_conn(cell->circ_id, conn); - if(!circ) { + if (!circ) { log_fn(LOG_INFO,"unknown circuit %d on connection to %s:%d. Dropping.", cell->circ_id, conn->address, conn->port); return; } log_fn(LOG_INFO,"Received for circID %d.",cell->circ_id); - if(circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { + if (circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { onion_pending_remove(circ); } - if(cell->circ_id == circ->p_circ_id) { + if (cell->circ_id == circ->p_circ_id) { /* the destroy came from behind */ circ->p_conn = NULL; circuit_mark_for_close(circ); } else { /* the destroy came from ahead */ circ->n_conn = NULL; #if 0 - if(!CIRCUIT_IS_ORIGIN(circ)) { + if (!CIRCUIT_IS_ORIGIN(circ)) { log_fn(LOG_DEBUG, "Delivering 'truncated' back."); connection_edge_send_command(NULL, circ, RELAY_COMMAND_TRUNCATED, NULL, 0, NULL); diff --git a/src/or/config.c b/src/or/config.c index deaef3299d..ff0797d8ec 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -253,8 +253,8 @@ options_act(void) { } /* Setuid/setgid as appropriate */ - if(options->User || options->Group) { - if(switch_id(options->User, options->Group) != 0) { + if (options->User || options->Group) { + if (switch_id(options->User, options->Group) != 0) { return -1; } } @@ -301,14 +301,14 @@ options_act(void) { } /* Finish backgrounding the process */ - if(options->RunAsDaemon) { + if (options->RunAsDaemon) { /* We may be calling this for the n'th time (on SIGHUP), but it's safe. */ finish_daemon(); } /* Write our pid to the pid file. If we do not have write permissions we * will log a warning */ - if(options->PidFile) + if (options->PidFile) write_pidfile(options->PidFile); /* Update address policies. */ @@ -331,7 +331,7 @@ options_act(void) { if (accounting_is_enabled(options)) configure_accounting(time(NULL)); - if(retry_all_listeners(1) < 0) { + if (retry_all_listeners(1) < 0) { log_fn(LOG_ERR,"Failed to bind one of the listener ports."); return -1; } @@ -401,7 +401,7 @@ config_get_commandlines(int argc, char **argv) new = tor_malloc(sizeof(struct config_line_t)); s = argv[i]; - while(*s == '-') + while (*s == '-') s++; new->key = tor_strdup(expand_abbrev(s, 1)); @@ -530,7 +530,7 @@ config_assign_line(or_options_t *options, struct config_line_t *c, int reset) } lvalue = ((char*)options) + var->var_offset; - switch(var->type) { + switch (var->type) { case CONFIG_TYPE_UINT: i = tor_parse_long(c->value, 10, 0, INT_MAX, &ok, NULL); @@ -668,7 +668,7 @@ config_get_assigned_option(or_options_t *options, const char *key) result = tor_malloc_zero(sizeof(struct config_line_t)); result->key = tor_strdup(var->name); - switch(var->type) + switch (var->type) { case CONFIG_TYPE_STRING: if (*(char**)value) { @@ -970,7 +970,7 @@ options_free(or_options_t *options) for (i=0; config_vars[i].name; ++i) { lvalue = ((char*)options) + config_vars[i].var_offset; - switch(config_vars[i].type) { + switch (config_vars[i].type) { case CONFIG_TYPE_MEMUNIT: case CONFIG_TYPE_INTERVAL: case CONFIG_TYPE_UINT: @@ -1037,9 +1037,9 @@ options_dup(or_options_t *old) newopts = tor_malloc_zero(sizeof(or_options_t)); for (i=0; config_vars[i].name; ++i) { - if(config_vars[i].type == CONFIG_TYPE_LINELIST_S) + if (config_vars[i].type == CONFIG_TYPE_LINELIST_S) continue; - if(config_vars[i].type == CONFIG_TYPE_OBSOLETE) + if (config_vars[i].type == CONFIG_TYPE_OBSOLETE) continue; line = config_get_assigned_option(old, config_vars[i].name); if (line) { @@ -1064,7 +1064,7 @@ options_init(or_options_t *options) for (i=0; config_vars[i].name; ++i) { var = &config_vars[i]; - if(!var->initvalue) + if (!var->initvalue) continue; /* defaults to NULL or 0 */ option_reset(options, var); } @@ -1431,7 +1431,7 @@ opt_streq(const char *s1, const char *s2) static int options_transition_allowed(or_options_t *old, or_options_t *new_val) { - if(!old) + if (!old) return 0; if (!opt_streq(old->PidFile, new_val->PidFile)) { @@ -2105,7 +2105,7 @@ normalize_data_directory(or_options_t *options) { return 0; #else const char *d = options->DataDirectory; - if(!d) + if (!d) d = "~/.tor"; if (strncmp(d,"~/",2) == 0) { @@ -2293,7 +2293,7 @@ config_parse_units(const char *val, struct unit_table_t *u, int *ok) *ok = 1; return v; } - while(isspace(*cp)) + while (isspace(*cp)) ++cp; for ( ;u->unit;++u) { if (!strcasecmp(u->unit, cp)) { diff --git a/src/or/connection.c b/src/or/connection.c index 4b48844fa9..7eb77fb5ed 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -118,7 +118,7 @@ connection_t *connection_new(int type) { conn->poll_index = -1; /* also default to 'not used' */ conn->type = type; - if(!connection_is_listener(conn)) { /* listeners never use their buf */ + if (!connection_is_listener(conn)) { /* listeners never use their buf */ conn->inbuf = buf_new(); conn->outbuf = buf_new(); } @@ -143,14 +143,14 @@ void connection_free(connection_t *conn) { tor_assert(conn); tor_assert(conn->magic == CONNECTION_MAGIC); - if(!connection_is_listener(conn)) { + if (!connection_is_listener(conn)) { buf_free(conn->inbuf); buf_free(conn->outbuf); } tor_free(conn->address); - if(connection_speaks_cells(conn)) { - if(conn->state == OR_CONN_STATE_OPEN) + if (connection_speaks_cells(conn)) { + if (conn->state == OR_CONN_STATE_OPEN) directory_set_dirty(); if (conn->tls) tor_tls_free(conn->tls); @@ -161,7 +161,7 @@ void connection_free(connection_t *conn) { tor_free(conn->nickname); tor_free(conn->socks_request); - if(conn->s >= 0) { + if (conn->s >= 0) { log_fn(LOG_INFO,"closing fd %d.",conn->s); tor_close_socket(conn->s); } @@ -178,7 +178,7 @@ void connection_free_all(void) { connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) + for (i=0;i<n;i++) connection_free(carray[i]); } @@ -196,20 +196,20 @@ void connection_about_to_close_connection(connection_t *conn) assert(conn->marked_for_close); - if(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT) { - if(!conn->has_sent_end) + if (conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT) { + if (!conn->has_sent_end) log_fn(LOG_WARN,"Edge connection hasn't sent end yet? Bug."); } - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_DIR: - if(conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) + if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) rend_client_desc_fetched(conn->rend_query, 0); break; case CONN_TYPE_OR: /* Remember why we're closing this connection. */ if (conn->state != OR_CONN_STATE_OPEN) { - if(connection_or_nonopen_was_started_here(conn)) { + if (connection_or_nonopen_was_started_here(conn)) { rep_hist_note_connect_failed(conn->identity_digest, time(NULL)); control_event_or_conn_status(conn, OR_CONN_EVENT_FAILED); } @@ -225,7 +225,7 @@ void connection_about_to_close_connection(connection_t *conn) */ rep_hist_note_disconnect(conn->identity_digest, time(NULL)); control_event_or_conn_status(conn, OR_CONN_EVENT_CLOSED); - } else if(conn->identity_digest) { + } else if (conn->identity_digest) { rep_hist_note_connection_died(conn->identity_digest, time(NULL)); control_event_or_conn_status(conn, OR_CONN_EVENT_CLOSED); } @@ -272,7 +272,7 @@ void connection_close_immediate(connection_t *conn) } tor_close_socket(conn->s); conn->s = -1; - if(!connection_is_listener(conn)) { + if (!connection_is_listener(conn)) { buf_clear(conn->outbuf); conn->outbuf_flushlen = 0; } @@ -365,13 +365,13 @@ static int connection_create_listener(const char *bindaddress, uint16_t bindport setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void*) &one, sizeof(one)); - if(bind(s,(struct sockaddr *)&bindaddr,sizeof(bindaddr)) < 0) { + if (bind(s,(struct sockaddr *)&bindaddr,sizeof(bindaddr)) < 0) { log_fn(LOG_WARN,"Could not bind to port %u: %s",usePort, tor_socket_strerror(tor_socket_errno(s))); return -1; } - if(listen(s,SOMAXCONN) < 0) { + if (listen(s,SOMAXCONN) < 0) { log_fn(LOG_WARN,"Could not listen on port %u: %s",usePort, tor_socket_strerror(tor_socket_errno(s))); return -1; @@ -382,7 +382,7 @@ static int connection_create_listener(const char *bindaddress, uint16_t bindport conn = connection_new(type); conn->s = s; - if(connection_add(conn) < 0) { /* no space, forget it */ + if (connection_add(conn) < 0) { /* no space, forget it */ log_fn(LOG_WARN,"connection_add failed. Giving up."); connection_free(conn); return -1; @@ -428,18 +428,18 @@ static int connection_handle_listener_read(connection_t *conn, int new_type) { set_socket_nonblocking(news); /* process entrance policies here, before we even create the connection */ - if(new_type == CONN_TYPE_AP) { + if (new_type == CONN_TYPE_AP) { /* check sockspolicy to see if we should accept it */ - if(socks_policy_permits_address(ntohl(remote.sin_addr.s_addr)) == 0) { + if (socks_policy_permits_address(ntohl(remote.sin_addr.s_addr)) == 0) { log_fn(LOG_WARN,"Denying socks connection from untrusted address %s.", inet_ntoa(remote.sin_addr)); tor_close_socket(news); return 0; } } - if(new_type == CONN_TYPE_DIR) { + if (new_type == CONN_TYPE_DIR) { /* check dirpolicy to see if we should accept it */ - if(dir_policy_permits_address(ntohl(remote.sin_addr.s_addr)) == 0) { + if (dir_policy_permits_address(ntohl(remote.sin_addr.s_addr)) == 0) { log_fn(LOG_WARN,"Denying dir connection from address %s.", inet_ntoa(remote.sin_addr)); tor_close_socket(news); @@ -454,12 +454,12 @@ static int connection_handle_listener_read(connection_t *conn, int new_type) { newconn->addr = ntohl(remote.sin_addr.s_addr); newconn->port = ntohs(remote.sin_port); - if(connection_add(newconn) < 0) { /* no space, forget it */ + if (connection_add(newconn) < 0) { /* no space, forget it */ connection_free(newconn); return 0; /* no need to tear down the parent */ } - if(connection_init_accepted_conn(newconn) < 0) { + if (connection_init_accepted_conn(newconn) < 0) { connection_mark_for_close(newconn); return 0; } @@ -473,7 +473,7 @@ static int connection_init_accepted_conn(connection_t *conn) { connection_start_reading(conn); - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_OR: return connection_tls_start_handshake(conn, 1); case CONN_TYPE_AP: @@ -520,7 +520,7 @@ int connection_connect(connection_t *conn, char *address, uint32_t addr, uint16_ log_fn(LOG_WARN,"Outbound bind address '%s' didn't parse. Ignoring.", options->OutboundBindAddress); } else { - if(bind(s, (struct sockaddr*)&ext_addr, sizeof(ext_addr)) < 0) { + if (bind(s, (struct sockaddr*)&ext_addr, sizeof(ext_addr)) < 0) { log_fn(LOG_WARN,"Error binding network socket: %s", tor_socket_strerror(tor_socket_errno(s))); return -1; @@ -537,9 +537,9 @@ int connection_connect(connection_t *conn, char *address, uint32_t addr, uint16_ log_fn(LOG_DEBUG,"Connecting to %s:%u.",address,port); - if(connect(s,(struct sockaddr *)&dest_addr,sizeof(dest_addr)) < 0) { + if (connect(s,(struct sockaddr *)&dest_addr,sizeof(dest_addr)) < 0) { int e = tor_socket_errno(s); - if(!ERRNO_IS_CONN_EINPROGRESS(e)) { + if (!ERRNO_IS_CONN_EINPROGRESS(e)) { /* yuck. kill it. */ log_fn(LOG_INFO,"Connect() to %s:%u failed: %s",address,port, tor_socket_strerror(e)); @@ -548,7 +548,7 @@ int connection_connect(connection_t *conn, char *address, uint32_t addr, uint16_ } else { /* it's in progress. set state appropriately and return. */ conn->s = s; - if(connection_add(conn) < 0) /* no space, forget it */ + if (connection_add(conn) < 0) /* no space, forget it */ return -1; log_fn(LOG_DEBUG,"connect in progress, socket %d.",s); return 0; @@ -558,7 +558,7 @@ int connection_connect(connection_t *conn, char *address, uint32_t addr, uint16_ /* it succeeded. we're connected. */ log_fn(LOG_INFO,"Connection to %s:%u established.",address,port); conn->s = s; - if(connection_add(conn) < 0) /* no space, forget it */ + if (connection_add(conn) < 0) /* no space, forget it */ return -1; return 1; } @@ -575,7 +575,7 @@ static void listener_close_if_present(int type) { type == CONN_TYPE_DIR_LISTENER || type == CONN_TYPE_CONTROL_LISTENER); get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; if (conn->type == type && !conn->marked_for_close) { connection_close_immediate(conn); @@ -618,7 +618,7 @@ static int retry_listeners(int type, struct config_line_t *cfg, /* How many are there actually? */ have = 0; get_connection_array(&carray,&n_conn); - for(i=0;i<n_conn;i++) { + for (i=0;i<n_conn;i++) { conn = carray[i]; if (conn->type == type && !conn->marked_for_close) ++have; @@ -681,17 +681,17 @@ static int connection_bucket_read_limit(connection_t *conn) { int at_most; /* do a rudimentary round-robin so one circuit can't hog a connection */ - if(connection_speaks_cells(conn)) { + if (connection_speaks_cells(conn)) { at_most = 32*(CELL_NETWORK_SIZE); } else { at_most = 32*(RELAY_PAYLOAD_SIZE); } - if(at_most > global_read_bucket) + if (at_most > global_read_bucket) at_most = global_read_bucket; - if(connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN) - if(at_most > conn->receiver_bucket) + if (connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN) + if (at_most > conn->receiver_bucket) at_most = conn->receiver_bucket; return at_most; @@ -700,19 +700,19 @@ static int connection_bucket_read_limit(connection_t *conn) { /** We just read num_read onto conn. Decrement buckets appropriately. */ static void connection_read_bucket_decrement(connection_t *conn, int num_read) { global_read_bucket -= num_read; tor_assert(global_read_bucket >= 0); - if(connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN) { + if (connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN) { conn->receiver_bucket -= num_read; tor_assert(conn->receiver_bucket >= 0); } } static void connection_consider_empty_buckets(connection_t *conn) { - if(global_read_bucket == 0) { + if (global_read_bucket == 0) { log_fn(LOG_DEBUG,"global bucket exhausted. Pausing."); conn->wants_to_read = 1; connection_stop_reading(conn); return; } - if(connection_speaks_cells(conn) && + if (connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN && conn->receiver_bucket == 0) { log_fn(LOG_DEBUG,"receiver bucket exhausted. Pausing."); @@ -737,26 +737,26 @@ void connection_bucket_refill(struct timeval *now) { or_options_t *options = get_options(); /* refill the global buckets */ - if((unsigned)global_read_bucket < options->BandwidthBurst) { + if ((unsigned)global_read_bucket < options->BandwidthBurst) { global_read_bucket += (int)options->BandwidthRate; log_fn(LOG_DEBUG,"global_read_bucket now %d.", global_read_bucket); } - if((unsigned)global_write_bucket < options->BandwidthBurst) { + if ((unsigned)global_write_bucket < options->BandwidthBurst) { global_write_bucket += (int)options->BandwidthRate; log_fn(LOG_DEBUG,"global_write_bucket now %d.", global_write_bucket); } /* refill the per-connection buckets */ get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(connection_receiver_bucket_should_increase(conn)) { + if (connection_receiver_bucket_should_increase(conn)) { conn->receiver_bucket += conn->bandwidth; //log_fn(LOG_DEBUG,"Receiver bucket %d now %d.", i, conn->receiver_bucket); } - if(conn->wants_to_read == 1 /* it's marked to turn reading back on now */ + if (conn->wants_to_read == 1 /* it's marked to turn reading back on now */ && global_read_bucket > 0 /* and we're allowed to read */ && global_write_bucket > 0 /* and we're allowed to write (XXXX, * not the best place to check this.) */ @@ -767,7 +767,7 @@ void connection_bucket_refill(struct timeval *now) { log_fn(LOG_DEBUG,"waking up conn (fd %d)",conn->s); conn->wants_to_read = 0; connection_start_reading(conn); - if(conn->wants_to_write == 1) { + if (conn->wants_to_write == 1) { conn->wants_to_write = 0; connection_start_writing(conn); } @@ -781,13 +781,13 @@ void connection_bucket_refill(struct timeval *now) { static int connection_receiver_bucket_should_increase(connection_t *conn) { tor_assert(conn); - if(!connection_speaks_cells(conn)) + if (!connection_speaks_cells(conn)) return 0; /* edge connections don't use receiver_buckets */ - if(conn->state != OR_CONN_STATE_OPEN) + if (conn->state != OR_CONN_STATE_OPEN) return 0; /* only open connections play the rate limiting game */ tor_assert(conn->bandwidth > 0); - if(conn->receiver_bucket > 9*conn->bandwidth) + if (conn->receiver_bucket > 9*conn->bandwidth) return 0; return 1; @@ -810,7 +810,7 @@ int connection_handle_read(connection_t *conn) { conn->timestamp_lastread = time(NULL); - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_OR_LISTENER: return connection_handle_listener_read(conn, CONN_TYPE_OR); case CONN_TYPE_AP_LISTENER: @@ -838,7 +838,7 @@ loop_again: /* it's a directory server and connecting failed: forget about this router */ /* XXX I suspect pollerr may make Windows not get to this point. :( */ router_mark_as_down(conn->identity_digest); - if(conn->purpose == DIR_PURPOSE_FETCH_DIR && + if (conn->purpose == DIR_PURPOSE_FETCH_DIR && !all_trusted_directory_servers_down()) { log_fn(LOG_INFO,"Giving up on dirserver %s; trying another.", conn->address); directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR, NULL); @@ -883,13 +883,13 @@ loop_again: static int connection_read_to_buf(connection_t *conn, int *max_to_read) { int result, at_most = *max_to_read; - if(at_most == -1) { /* we need to initialize it */ + if (at_most == -1) { /* we need to initialize it */ /* how many bytes are we allowed to read? */ at_most = connection_bucket_read_limit(conn); } - if(connection_speaks_cells(conn) && conn->state != OR_CONN_STATE_CONNECTING) { - if(conn->state == OR_CONN_STATE_HANDSHAKING) { + if (connection_speaks_cells(conn) && conn->state != OR_CONN_STATE_CONNECTING) { + if (conn->state == OR_CONN_STATE_HANDSHAKING) { /* continue handshaking even if global token bucket is empty */ return connection_tls_continue_handshake(conn); } @@ -900,7 +900,7 @@ static int connection_read_to_buf(connection_t *conn, int *max_to_read) { /* else open, or closing */ result = read_to_buf_tls(conn->tls, at_most, conn->inbuf); - switch(result) { + switch (result) { case TOR_TLS_CLOSE: log_fn(LOG_INFO,"TLS connection closed on read. Closing. (Nickname %s, address %s", conn->nickname ? conn->nickname : "not set", conn->address); @@ -923,7 +923,7 @@ static int connection_read_to_buf(connection_t *conn, int *max_to_read) { // log(LOG_DEBUG,"connection_read_to_buf(): read_to_buf returned %d.",read_result); - if(result < 0) + if (result < 0) return -1; } @@ -994,9 +994,9 @@ int connection_handle_write(connection_t *conn) { connection_mark_for_close(conn); return -1; } - if(e) { + if (e) { /* some sort of error, but maybe just inprogress still */ - if(!ERRNO_IS_CONN_EINPROGRESS(e)) { + if (!ERRNO_IS_CONN_EINPROGRESS(e)) { log_fn(LOG_INFO,"in-progress connect failed. Removing."); connection_close_immediate(conn); connection_mark_for_close(conn); @@ -1017,7 +1017,7 @@ int connection_handle_write(connection_t *conn) { if (connection_speaks_cells(conn)) { if (conn->state == OR_CONN_STATE_HANDSHAKING) { connection_stop_writing(conn); - if(connection_tls_continue_handshake(conn) < 0) { + if (connection_tls_continue_handshake(conn) < 0) { connection_close_immediate(conn); /* Don't flush; connection is dead. */ connection_mark_for_close(conn); return -1; @@ -1027,7 +1027,7 @@ int connection_handle_write(connection_t *conn) { /* else open, or closing */ result = flush_buf_tls(conn->tls, conn->outbuf, &conn->outbuf_flushlen); - switch(result) { + switch (result) { case TOR_TLS_ERROR: case TOR_TLS_CLOSE: log_fn(LOG_INFO,result==TOR_TLS_ERROR? @@ -1042,7 +1042,7 @@ int connection_handle_write(connection_t *conn) { case TOR_TLS_WANTREAD: /* Make sure to avoid a loop if the receive buckets are empty. */ log_fn(LOG_DEBUG,"wanted read."); - if(!connection_is_reading(conn)) { + if (!connection_is_reading(conn)) { connection_stop_writing(conn); conn->wants_to_write = 1; /* we'll start reading again when the next second arrives, @@ -1066,13 +1066,13 @@ int connection_handle_write(connection_t *conn) { } } - if(result > 0 && !is_local_IP(conn->addr)) { /* remember it */ + if (result > 0 && !is_local_IP(conn->addr)) { /* remember it */ rep_hist_note_bytes_written(result, now); global_write_bucket -= result; } - if(!connection_wants_to_flush(conn)) { /* it's done flushing */ - if(connection_finished_flushing(conn) < 0) { + if (!connection_wants_to_flush(conn)) { /* it's done flushing */ + if (connection_finished_flushing(conn) < 0) { /* already marked */ return -1; } @@ -1086,11 +1086,11 @@ int connection_handle_write(connection_t *conn) { */ void connection_write_to_buf(const char *string, size_t len, connection_t *conn) { - if(!len || conn->marked_for_close) + if (!len || conn->marked_for_close) return; - if(write_to_buf(string, len, conn->outbuf) < 0) { - if(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT) { + if (write_to_buf(string, len, conn->outbuf) < 0) { + if (conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT) { /* if it failed, it means we have our package/delivery windows set wrong compared to our max outbuf size. close the whole circuit. */ log_fn(LOG_WARN,"write_to_buf failed. Closing circuit (fd %d).", conn->s); @@ -1114,9 +1114,9 @@ connection_t *connection_exact_get_by_addr_port(uint32_t addr, uint16_t port) { connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(conn->addr == addr && conn->port == port && !conn->marked_for_close && + if (conn->addr == addr && conn->port == port && !conn->marked_for_close && (!best || best->timestamp_created < conn->timestamp_created)) best = conn; } @@ -1130,7 +1130,7 @@ connection_t *connection_get_by_identity_digest(const char *digest, int type) connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; if (conn->type != type) continue; @@ -1151,9 +1151,9 @@ connection_t *connection_get_by_type(int type) { connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(conn->type == type && !conn->marked_for_close) + if (conn->type == type && !conn->marked_for_close) return conn; } return NULL; @@ -1168,9 +1168,9 @@ connection_t *connection_get_by_type_state(int type, int state) { connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(conn->type == type && conn->state == state && !conn->marked_for_close) + if (conn->type == type && conn->state == state && !conn->marked_for_close) return conn; } return NULL; @@ -1186,10 +1186,10 @@ connection_t *connection_get_by_type_state_lastwritten(int type, int state) { connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(conn->type == type && conn->state == state && !conn->marked_for_close) - if(!best || conn->timestamp_lastwritten < best->timestamp_lastwritten) + if (conn->type == type && conn->state == state && !conn->marked_for_close) + if (!best || conn->timestamp_lastwritten < best->timestamp_lastwritten) best = conn; } return best; @@ -1204,9 +1204,9 @@ connection_t *connection_get_by_type_rendquery(int type, const char *rendquery) connection_t **carray; get_connection_array(&carray,&n); - for(i=0;i<n;i++) { + for (i=0;i<n;i++) { conn = carray[i]; - if(conn->type == type && + if (conn->type == type && !conn->marked_for_close && !rend_cmp_service_ids(rendquery, conn->rend_query)) return conn; @@ -1216,7 +1216,7 @@ connection_t *connection_get_by_type_rendquery(int type, const char *rendquery) /** Return 1 if <b>conn</b> is a listener conn, else return 0. */ int connection_is_listener(connection_t *conn) { - if(conn->type == CONN_TYPE_OR_LISTENER || + if (conn->type == CONN_TYPE_OR_LISTENER || conn->type == CONN_TYPE_AP_LISTENER || conn->type == CONN_TYPE_DIR_LISTENER || conn->type == CONN_TYPE_CONTROL_LISTENER) @@ -1230,10 +1230,10 @@ int connection_is_listener(connection_t *conn) { int connection_state_is_open(connection_t *conn) { tor_assert(conn); - if(conn->marked_for_close) + if (conn->marked_for_close) return 0; - if((conn->type == CONN_TYPE_OR && conn->state == OR_CONN_STATE_OPEN) || + if ((conn->type == CONN_TYPE_OR && conn->state == OR_CONN_STATE_OPEN) || (conn->type == CONN_TYPE_AP && conn->state == AP_CONN_STATE_OPEN) || (conn->type == CONN_TYPE_EXIT && conn->state == EXIT_CONN_STATE_OPEN) || (conn->type == CONN_TYPE_CONTROL && conn->state ==CONTROL_CONN_STATE_OPEN)) @@ -1290,7 +1290,7 @@ static int connection_process_inbuf(connection_t *conn, int package_partial) { tor_assert(conn); - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_OR: return connection_or_process_inbuf(conn); case CONN_TYPE_EXIT: @@ -1322,7 +1322,7 @@ static int connection_finished_flushing(connection_t *conn) { // log_fn(LOG_DEBUG,"entered. Socket %u.", conn->s); - switch(conn->type) { + switch (conn->type) { case CONN_TYPE_OR: return connection_or_finished_flushing(conn); case CONN_TYPE_AP: @@ -1397,11 +1397,11 @@ void assert_connection_ok(connection_t *conn, time_t now) tor_assert(conn->type >= _CONN_TYPE_MIN); tor_assert(conn->type <= _CONN_TYPE_MAX); - if(conn->outbuf_flushlen > 0) { + if (conn->outbuf_flushlen > 0) { tor_assert(connection_is_writing(conn) || conn->wants_to_write); } - if(conn->hold_open_until_flushed) + if (conn->hold_open_until_flushed) tor_assert(conn->marked_for_close); /* XXX check: wants_to_read, wants_to_write, s, poll_index, @@ -1422,7 +1422,7 @@ void assert_connection_ok(connection_t *conn, time_t now) /* XXX Fix this; no longer so.*/ #if 0 - if(conn->type != CONN_TYPE_OR && conn->type != CONN_TYPE_DIR) + if (conn->type != CONN_TYPE_OR && conn->type != CONN_TYPE_DIR) tor_assert(!conn->pkey); /* pkey is set if we're a dir client, or if we're an OR in state OPEN * connected to another OR. @@ -1432,7 +1432,7 @@ void assert_connection_ok(connection_t *conn, time_t now) if (conn->type != CONN_TYPE_OR) { tor_assert(!conn->tls); } else { - if(conn->state == OR_CONN_STATE_OPEN) { + if (conn->state == OR_CONN_STATE_OPEN) { /* tor_assert(conn->bandwidth > 0); */ /* the above isn't necessarily true: if we just did a TLS * handshake but we didn't recognize the other peer, or it @@ -1471,11 +1471,11 @@ void assert_connection_ok(connection_t *conn, time_t now) if (conn->type == CONN_TYPE_EXIT) { tor_assert(conn->purpose == EXIT_PURPOSE_CONNECT || conn->purpose == EXIT_PURPOSE_RESOLVE); - } else if(conn->type != CONN_TYPE_DIR) { + } else if (conn->type != CONN_TYPE_DIR) { tor_assert(!conn->purpose); /* only used for dir types currently */ } - switch(conn->type) + switch (conn->type) { case CONN_TYPE_OR_LISTENER: case CONN_TYPE_AP_LISTENER: diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index a24acb1773..bf1074152f 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -34,13 +34,13 @@ int connection_edge_reached_eof(connection_t *conn) { } return 0; #else - if(buf_datalen(conn->inbuf)) { + if (buf_datalen(conn->inbuf)) { /* it still has stuff to process. don't let it die yet. */ return 0; } log_fn(LOG_INFO,"conn (fd %d) reached eof (stream size %d). Closing.", conn->s, (int)conn->stream_size); connection_edge_end(conn, END_STREAM_REASON_DONE, conn->cpath_layer); - if(!conn->marked_for_close) { + if (!conn->marked_for_close) { /* only mark it if not already marked. it's possible to * get the 'end' right around when the client hangs up on us. */ connection_mark_for_close(conn); @@ -65,9 +65,9 @@ int connection_edge_process_inbuf(connection_t *conn, int package_partial) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT); - switch(conn->state) { + switch (conn->state) { case AP_CONN_STATE_SOCKS_WAIT: - if(connection_ap_handshake_process_socks(conn) < 0) { + if (connection_ap_handshake_process_socks(conn) < 0) { conn->has_sent_end = 1; /* no circ yet */ connection_mark_for_close(conn); conn->hold_open_until_flushed = 1; @@ -76,12 +76,12 @@ int connection_edge_process_inbuf(connection_t *conn, int package_partial) { return 0; case AP_CONN_STATE_OPEN: case EXIT_CONN_STATE_OPEN: - if(conn->package_window <= 0) { + if (conn->package_window <= 0) { /* XXX this is still getting called rarely :( */ log_fn(LOG_WARN,"called with package_window %d. Tell Roger.", conn->package_window); return 0; } - if(connection_edge_package_raw_inbuf(conn, package_partial) < 0) { + if (connection_edge_package_raw_inbuf(conn, package_partial) < 0) { connection_edge_end(conn, END_STREAM_REASON_MISC, conn->cpath_layer); connection_mark_for_close(conn); return -1; @@ -108,7 +108,7 @@ int connection_edge_process_inbuf(connection_t *conn, int package_partial) { int connection_edge_destroy(uint16_t circ_id, connection_t *conn) { tor_assert(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT); - if(conn->marked_for_close) + if (conn->marked_for_close) return 0; /* already marked; probably got an 'end' */ log_fn(LOG_INFO,"CircID %d: At an edge. Marking connection for close.", circ_id); @@ -133,13 +133,13 @@ connection_edge_end(connection_t *conn, char reason, crypt_path_t *cpath_layer) size_t payload_len=1; circuit_t *circ; - if(conn->has_sent_end) { + if (conn->has_sent_end) { log_fn(LOG_WARN,"It appears I've already sent the end. Are you calling me twice?"); return -1; } payload[0] = reason; - if(reason == END_STREAM_REASON_EXITPOLICY) { + if (reason == END_STREAM_REASON_EXITPOLICY) { /* this is safe even for rend circs, because they never fail * because of exitpolicy */ set_uint32(payload+1, htonl(conn->addr)); @@ -147,7 +147,7 @@ connection_edge_end(connection_t *conn, char reason, crypt_path_t *cpath_layer) } circ = circuit_get_by_conn(conn); - if(circ && !circ->marked_for_close) { + if (circ && !circ->marked_for_close) { log_fn(LOG_DEBUG,"Marking conn (fd %d) and sending end.",conn->s); connection_edge_send_command(conn, circ, RELAY_COMMAND_END, payload, payload_len, cpath_layer); @@ -173,7 +173,7 @@ int connection_edge_finished_flushing(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT); - switch(conn->state) { + switch (conn->state) { case AP_CONN_STATE_OPEN: case EXIT_CONN_STATE_OPEN: connection_stop_writing(conn); @@ -208,16 +208,16 @@ int connection_edge_finished_connecting(connection_t *conn) conn->state = EXIT_CONN_STATE_OPEN; connection_watch_events(conn, POLLIN); /* stop writing, continue reading */ - if(connection_wants_to_flush(conn)) /* in case there are any queued relay cells */ + if (connection_wants_to_flush(conn)) /* in case there are any queued relay cells */ connection_start_writing(conn); /* deliver a 'connected' relay cell back through the circuit. */ - if(connection_edge_is_rendezvous_stream(conn)) { - if(connection_edge_send_command(conn, circuit_get_by_conn(conn), + if (connection_edge_is_rendezvous_stream(conn)) { + if (connection_edge_send_command(conn, circuit_get_by_conn(conn), RELAY_COMMAND_CONNECTED, NULL, 0, conn->cpath_layer) < 0) return 0; /* circuit is closed, don't continue */ } else { *(uint32_t*)connected_payload = htonl(conn->addr); - if(connection_edge_send_command(conn, circuit_get_by_conn(conn), + if (connection_edge_send_command(conn, circuit_get_by_conn(conn), RELAY_COMMAND_CONNECTED, connected_payload, 4, conn->cpath_layer) < 0) return 0; /* circuit is closed, don't continue */ } @@ -260,12 +260,12 @@ void connection_ap_expire_beginning(void) { continue; conn->num_retries++; circ = circuit_get_by_conn(conn); - if(!circ) { /* it's vanished? */ + if (!circ) { /* it's vanished? */ log_fn(LOG_INFO,"Conn is in connect-wait, but lost its circ."); connection_mark_for_close(conn); continue; } - if(circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { + if (circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { if (now - conn->timestamp_lastread > 45) { log_fn(LOG_WARN,"Rend stream is %d seconds late. Giving up.", (int)(now - conn->timestamp_lastread)); @@ -275,7 +275,7 @@ void connection_ap_expire_beginning(void) { continue; } tor_assert(circ->purpose == CIRCUIT_PURPOSE_C_GENERAL); - if(conn->num_retries >= MAX_STREAM_RETRIES) { + if (conn->num_retries >= MAX_STREAM_RETRIES) { log_fn(LOG_WARN,"Stream is %d seconds late. Giving up.", 15*conn->num_retries); circuit_log_path(LOG_WARN, circ); @@ -300,7 +300,7 @@ void connection_ap_expire_beginning(void) { /* give our stream another 15 seconds to try */ conn->timestamp_lastread += 15; /* attaching to a dirty circuit is fine */ - if(connection_ap_handshake_attach_circuit(conn)<0) { + if (connection_ap_handshake_attach_circuit(conn)<0) { /* it will never work */ /* Don't need to send end -- we're not connected */ conn->has_sent_end = 1; @@ -327,7 +327,7 @@ void connection_ap_attach_pending(void) conn->type != CONN_TYPE_AP || conn->state != AP_CONN_STATE_CIRCUIT_WAIT) continue; - if(connection_ap_handshake_attach_circuit(conn) < 0) { + if (connection_ap_handshake_attach_circuit(conn) < 0) { /* -1 means it will never work */ /* Don't send end; there is no 'other side' yet */ conn->has_sent_end = 1; @@ -362,12 +362,12 @@ static int connection_ap_handshake_process_socks(connection_t *conn) { log_fn(LOG_DEBUG,"entered."); sockshere = fetch_from_buf_socks(conn->inbuf, socks); - if(sockshere == -1 || sockshere == 0) { - if(socks->replylen) { /* we should send reply back */ + if (sockshere == -1 || sockshere == 0) { + if (socks->replylen) { /* we should send reply back */ log_fn(LOG_DEBUG,"reply is already set for us. Using it."); connection_ap_handshake_socks_reply(conn, socks->reply, socks->replylen, 0); socks->replylen = 0; /* zero it out so we can do another round of negotiation */ - } else if(sockshere == -1) { /* send normal reject */ + } else if (sockshere == -1) { /* send normal reject */ log_fn(LOG_WARN,"Fetching socks handshake failed. Closing."); connection_ap_handshake_socks_reply(conn, NULL, 0, -1); } else { @@ -423,19 +423,19 @@ static int connection_ap_handshake_process_socks(connection_t *conn) { log_fn(LOG_INFO,"Got a hidden service request for ID '%s'", conn->rend_query); /* see if we already have it cached */ r = rend_cache_lookup_entry(conn->rend_query, &entry); - if(r<0) { + if (r<0) { log_fn(LOG_WARN,"Invalid service descriptor %s", conn->rend_query); return -1; } - if(r==0) { + if (r==0) { conn->state = AP_CONN_STATE_RENDDESC_WAIT; log_fn(LOG_INFO, "Unknown descriptor %s. Fetching.", conn->rend_query); rend_client_refetch_renddesc(conn->rend_query); return 0; } - if(r>0) { + if (r>0) { #define NUM_SECONDS_BEFORE_REFETCH (60*15) - if(time(NULL) - entry->received < NUM_SECONDS_BEFORE_REFETCH) { + if (time(NULL) - entry->received < NUM_SECONDS_BEFORE_REFETCH) { conn->state = AP_CONN_STATE_CIRCUIT_WAIT; log_fn(LOG_INFO, "Descriptor is here and fresh enough. Great."); return connection_ap_handshake_attach_circuit(conn); @@ -460,15 +460,15 @@ static uint16_t get_unique_stream_id_by_circ(circuit_t *circ) { again: test_stream_id = circ->next_stream_id++; - if(++attempts > 1<<16) { + if (++attempts > 1<<16) { /* Make sure we don't loop forever if all stream_id's are used. */ log_fn(LOG_WARN,"No unused stream IDs. Failing."); return 0; } if (test_stream_id == 0) goto again; - for(tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) - if(tmpconn->stream_id == test_stream_id) + for (tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) + if (tmpconn->stream_id == test_stream_id) goto again; return test_stream_id; } @@ -498,7 +498,7 @@ int connection_ap_handshake_send_begin(connection_t *ap_conn, circuit_t *circ) return -1; } - if(circ->purpose == CIRCUIT_PURPOSE_C_GENERAL) { + if (circ->purpose == CIRCUIT_PURPOSE_C_GENERAL) { in.s_addr = htonl(client_dns_lookup_entry(ap_conn->socks_request->address)); string_addr = in.s_addr ? inet_ntoa(in) : NULL; @@ -514,7 +514,7 @@ int connection_ap_handshake_send_begin(connection_t *ap_conn, circuit_t *circ) log_fn(LOG_DEBUG,"Sending relay cell to begin stream %d.",ap_conn->stream_id); - if(connection_edge_send_command(ap_conn, circ, RELAY_COMMAND_BEGIN, + if (connection_edge_send_command(ap_conn, circ, RELAY_COMMAND_BEGIN, payload, payload_len, ap_conn->cpath_layer) < 0) return -1; /* circuit is closed, don't continue */ @@ -557,7 +557,7 @@ int connection_ap_handshake_send_resolve(connection_t *ap_conn, circuit_t *circ) log_fn(LOG_DEBUG,"Sending relay cell to begin stream %d.",ap_conn->stream_id); - if(connection_edge_send_command(ap_conn, circ, RELAY_COMMAND_RESOLVE, + if (connection_edge_send_command(ap_conn, circ, RELAY_COMMAND_RESOLVE, string_addr, payload_len, ap_conn->cpath_layer) < 0) return -1; /* circuit is closed, don't continue */ @@ -579,7 +579,7 @@ int connection_ap_make_bridge(char *address, uint16_t port) { log_fn(LOG_INFO,"Making AP bridge to %s:%d ...",address,port); - if(tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { + if (tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { log(LOG_WARN,"Couldn't construct socketpair (%s). Network down? Delaying.", tor_socket_strerror(tor_socket_errno(-1))); return -1; @@ -605,7 +605,7 @@ int connection_ap_make_bridge(char *address, uint16_t port) { conn->addr = 0; conn->port = 0; - if(connection_add(conn) < 0) { /* no space, forget it */ + if (connection_add(conn) < 0) { /* no space, forget it */ connection_free(conn); /* this closes fd[0] */ tor_close_socket(fd[1]); return -1; @@ -637,7 +637,7 @@ void connection_ap_handshake_socks_resolved(connection_t *conn, if (answer_type == RESOLVED_TYPE_IPV4) { uint32_t a = get_uint32(answer); - if(a) + if (a) client_dns_set_entry(conn->socks_request->address, ntohl(a)); } @@ -696,17 +696,17 @@ void connection_ap_handshake_socks_reply(connection_t *conn, char *reply, size_t replylen, int status) { char buf[256]; - if(status) /* it's either 1 or -1 */ + if (status) /* it's either 1 or -1 */ control_event_stream_status(conn, status==1 ? STREAM_EVENT_SUCCEEDED : STREAM_EVENT_FAILED); - if(replylen) { /* we already have a reply in mind */ + if (replylen) { /* we already have a reply in mind */ connection_write_to_buf(reply, replylen, conn); return; } tor_assert(conn->socks_request); tor_assert(status == 1 || status == -1); - if(conn->socks_request->socks_version == 4) { + if (conn->socks_request->socks_version == 4) { memset(buf,0,SOCKS4_NETWORK_LEN); #define SOCKS4_GRANTED 90 #define SOCKS4_REJECT 91 @@ -714,7 +714,7 @@ void connection_ap_handshake_socks_reply(connection_t *conn, char *reply, /* leave version, destport, destip zero */ connection_write_to_buf(buf, SOCKS4_NETWORK_LEN, conn); } - if(conn->socks_request->socks_version == 5) { + if (conn->socks_request->socks_version == 5) { buf[0] = 5; /* version 5 */ #define SOCKS5_SUCCESS 0 #define SOCKS5_GENERIC_ERROR 1 @@ -759,7 +759,7 @@ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) { * begin because it's malformed. */ - if(!memchr(cell->payload+RELAY_HEADER_SIZE, 0, rh.length)) { + if (!memchr(cell->payload+RELAY_HEADER_SIZE, 0, rh.length)) { log_fn(LOG_WARN,"relay begin cell has no \\0. Dropping."); return 0; } @@ -783,7 +783,7 @@ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) { n_stream->package_window = STREAMWINDOW_START; n_stream->deliver_window = STREAMWINDOW_START; - if(circ->purpose == CIRCUIT_PURPOSE_S_REND_JOINED) { + if (circ->purpose == CIRCUIT_PURPOSE_S_REND_JOINED) { log_fn(LOG_DEBUG,"begin is for rendezvous. configuring stream."); n_stream->address = tor_strdup("(rendezvous)"); n_stream->state = EXIT_CONN_STATE_CONNECTING; @@ -791,7 +791,7 @@ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) { sizeof(n_stream->rend_query)); tor_assert(connection_edge_is_rendezvous_stream(n_stream)); assert_circuit_ok(circ); - if(rend_service_set_connection_addr_port(n_stream, circ) < 0) { + if (rend_service_set_connection_addr_port(n_stream, circ) < 0) { log_fn(LOG_INFO,"Didn't find rendezvous service (port %d)",n_stream->port); connection_edge_end(n_stream, END_STREAM_REASON_EXITPOLICY, n_stream->cpath_layer); connection_free(n_stream); @@ -816,13 +816,13 @@ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) { n_stream->state = EXIT_CONN_STATE_RESOLVEFAILED; /* default to failed, change in dns_resolve if it turns out not to fail */ - if(we_are_hibernating()) { + if (we_are_hibernating()) { connection_edge_end(n_stream, END_STREAM_REASON_EXITPOLICY, n_stream->cpath_layer); connection_free(n_stream); } /* send it off to the gethostbyname farm */ - switch(dns_resolve(n_stream)) { + switch (dns_resolve(n_stream)) { case 1: /* resolve worked */ /* add it into the linked list of n_streams on this circuit */ @@ -877,7 +877,7 @@ int connection_exit_begin_resolve(cell_t *cell, circuit_t *circ) { circ->resolving_streams = dummy_conn; /* send it off to the gethostbyname farm */ - switch(dns_resolve(dummy_conn)) { + switch (dns_resolve(dummy_conn)) { case 1: /* The result was cached; a resolved cell was sent. */ case -1: circuit_detach_stream(circuit_get_by_conn(dummy_conn), dummy_conn); @@ -933,7 +933,7 @@ connection_exit_connect(connection_t *conn) { } log_fn(LOG_DEBUG,"about to try connecting"); - switch(connection_connect(conn, conn->address, addr, port)) { + switch (connection_connect(conn, conn->address, addr, port)) { case -1: connection_edge_end(conn, END_STREAM_REASON_CONNECTFAILED, conn->cpath_layer); circuit_detach_stream(circuit_get_by_conn(conn), conn); @@ -950,14 +950,14 @@ connection_exit_connect(connection_t *conn) { } conn->state = EXIT_CONN_STATE_OPEN; - if(connection_wants_to_flush(conn)) { /* in case there are any queued data cells */ + if (connection_wants_to_flush(conn)) { /* in case there are any queued data cells */ log_fn(LOG_WARN,"tell roger: newly connected conn had data waiting!"); // connection_start_writing(conn); } connection_watch_events(conn, POLLIN); /* also, deliver a 'connected' cell back through the circuit. */ - if(connection_edge_is_rendezvous_stream(conn)) { /* rendezvous stream */ + if (connection_edge_is_rendezvous_stream(conn)) { /* rendezvous stream */ /* don't send an address back! */ connection_edge_send_command(conn, circuit_get_by_conn(conn), RELAY_COMMAND_CONNECTED, NULL, 0, conn->cpath_layer); @@ -974,7 +974,7 @@ connection_exit_connect(connection_t *conn) { */ int connection_edge_is_rendezvous_stream(connection_t *conn) { tor_assert(conn); - if(*conn->rend_query) /* XXX */ + if (*conn->rend_query) /* XXX */ return 1; return 0; } @@ -1000,7 +1000,7 @@ int connection_ap_can_use_exit(connection_t *conn, routerinfo_t *exit) return tor_version_as_new_as(exit->platform, "0.0.9pre1"); } addr = client_dns_lookup_entry(conn->socks_request->address); - if(router_compare_addr_to_addr_policy(addr, + if (router_compare_addr_to_addr_policy(addr, conn->socks_request->port, exit->exit_policy) < 0) return 0; return 1; @@ -1035,7 +1035,7 @@ int socks_policy_permits_address(uint32_t addr) { int a; - if(!socks_policy) /* 'no socks policy' means 'accept' */ + if (!socks_policy) /* 'no socks policy' means 'accept' */ return 1; a = router_compare_addr_to_addr_policy(addr, 1, socks_policy); if (a==-1) @@ -1193,7 +1193,7 @@ void client_dns_clean(void) { time_t now; - if(!client_dns_size) + if (!client_dns_size) return; now = time(NULL); strmap_foreach(client_dns_map, (strmap_foreach_fn)_remove_if_expired, &now); diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 271f32323f..0facd1aa5d 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -56,7 +56,7 @@ int connection_or_process_inbuf(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_OR); - if(conn->state != OR_CONN_STATE_OPEN) + if (conn->state != OR_CONN_STATE_OPEN) return 0; /* don't do anything */ return connection_or_process_cells_from_inbuf(conn); } @@ -95,7 +95,7 @@ int connection_or_finished_connecting(connection_t *conn) log_fn(LOG_INFO,"OR connect() to router at %s:%u finished.", conn->address,conn->port); - if(connection_tls_start_handshake(conn, 0) < 0) { + if (connection_tls_start_handshake(conn, 0) < 0) { /* TLS handshaking error of some kind. */ connection_mark_for_close(conn); return -1; @@ -207,7 +207,7 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, tor_assert(id_digest); - if(server_mode(get_options()) && (me=router_get_my_routerinfo()) && + if (server_mode(get_options()) && (me=router_get_my_routerinfo()) && !memcmp(me->identity_digest, id_digest,DIGEST_LEN)) { log_fn(LOG_WARN,"Request to connect to myself! Failing."); return NULL; @@ -217,7 +217,7 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, * id_digest, but check first to be sure */ /*XXX this is getting called, at least by dirservers. */ conn = connection_get_by_identity_digest(id_digest, CONN_TYPE_OR); - if(conn) { + if (conn) { tor_assert(conn->nickname); log_fn(LOG_WARN,"Asked me to connect to router '%s', but there's already a connection.", conn->nickname); return conn; @@ -230,7 +230,7 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, conn->state = OR_CONN_STATE_CONNECTING; control_event_or_conn_status(conn, OR_CONN_EVENT_LAUNCHED); - switch(connection_connect(conn, conn->address, addr, port)) { + switch (connection_connect(conn, conn->address, addr, port)) { case -1: router_mark_as_down(conn->identity_digest); control_event_or_conn_status(conn, OR_CONN_EVENT_FAILED); @@ -244,7 +244,7 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, /* case 1: fall through */ } - if(connection_tls_start_handshake(conn, 0) >= 0) + if (connection_tls_start_handshake(conn, 0) >= 0) return conn; /* failure */ @@ -263,13 +263,13 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, int connection_tls_start_handshake(connection_t *conn, int receiving) { conn->state = OR_CONN_STATE_HANDSHAKING; conn->tls = tor_tls_new(conn->s, receiving, 0); - if(!conn->tls) { + if (!conn->tls) { log_fn(LOG_WARN,"tor_tls_new failed. Closing."); return -1; } connection_start_reading(conn); log_fn(LOG_DEBUG,"starting the handshake"); - if(connection_tls_continue_handshake(conn) < 0) { + if (connection_tls_continue_handshake(conn) < 0) { return -1; } return 0; @@ -281,7 +281,7 @@ int connection_tls_start_handshake(connection_t *conn, int receiving) { * Return -1 if <b>conn</b> is broken, else return 0. */ int connection_tls_continue_handshake(connection_t *conn) { - switch(tor_tls_handshake(conn->tls)) { + switch (tor_tls_handshake(conn->tls)) { case TOR_TLS_ERROR: case TOR_TLS_CLOSE: log_fn(LOG_INFO,"tls error. breaking."); @@ -361,13 +361,13 @@ connection_tls_finish_handshake(connection_t *conn) { log_fn(LOG_DEBUG, "Other side (%s:%d) claims to be router '%s'", conn->address, conn->port, nickname); - if(tor_tls_verify(conn->tls, &identity_rcvd) < 0) { + if (tor_tls_verify(conn->tls, &identity_rcvd) < 0) { log_fn(LOG_WARN,"Other side, which claims to be router '%s' (%s:%d), has a cert but it's invalid. Closing.", nickname, conn->address, conn->port); return -1; } #if 0 - if(tor_tls_check_lifetime(conn->tls, LOOSE_CERT_ALLOW_SKEW)<0) { + if (tor_tls_check_lifetime(conn->tls, LOOSE_CERT_ALLOW_SKEW)<0) { log_fn(LOG_WARN,"Other side '%s' (%s:%d) has a very highly skewed clock, or an expired certificate. Closing.", nickname, conn->address, conn->port); return -1; @@ -384,7 +384,7 @@ connection_tls_finish_handshake(connection_t *conn) { crypto_free_pk_env(identity_rcvd); router = router_get_by_nickname(nickname); - if(router && /* we know this nickname */ + if (router && /* we know this nickname */ router->is_verified && /* make sure it's the right guy */ memcmp(digest_rcvd, router->identity_digest, DIGEST_LEN) != 0) { log_fn(LOG_WARN, "Identity key not as expected for router claiming to be '%s' (%s:%d) ", nickname, conn->address, conn->port); @@ -392,7 +392,7 @@ connection_tls_finish_handshake(connection_t *conn) { } if (router_get_by_digest(digest_rcvd)) { /* This is a known router; don't cut it slack with its clock skew. */ - if(tor_tls_check_lifetime(conn->tls, TIGHT_CERT_ALLOW_SKEW)<0) { + if (tor_tls_check_lifetime(conn->tls, TIGHT_CERT_ALLOW_SKEW)<0) { log_fn(LOG_WARN,"Router '%s' (%s:%d) has a skewed clock, or an expired certificate; or else our clock is skewed. Closing.", nickname, conn->address, conn->port); return -1; @@ -409,7 +409,7 @@ connection_tls_finish_handshake(connection_t *conn) { return -1; } } else { - if((c=connection_get_by_identity_digest(digest_rcvd, CONN_TYPE_OR))) { + if ((c=connection_get_by_identity_digest(digest_rcvd, CONN_TYPE_OR))) { log_fn(LOG_INFO,"Router '%s' is already connected on fd %d. Dropping fd %d.", nickname, c->s, conn->s); return -1; } @@ -454,15 +454,15 @@ void connection_or_write_cell_to_buf(const cell_t *cell, connection_t *conn) { * push data out as soon as we know there's enough for a tls record, so * during periods of high load we won't read the entire megabyte from * input before pushing any data out. */ - if(conn->outbuf_flushlen-CELL_NETWORK_SIZE < MIN_TLS_FLUSHLEN && + if (conn->outbuf_flushlen-CELL_NETWORK_SIZE < MIN_TLS_FLUSHLEN && conn->outbuf_flushlen >= MIN_TLS_FLUSHLEN) { int extra = conn->outbuf_flushlen - MIN_TLS_FLUSHLEN; conn->outbuf_flushlen = MIN_TLS_FLUSHLEN; - if(connection_handle_write(conn) < 0) { + if (connection_handle_write(conn) < 0) { log_fn(LOG_WARN,"flushing failed."); return; } - if(extra) { + if (extra) { conn->outbuf_flushlen += extra; connection_start_writing(conn); } @@ -485,7 +485,7 @@ static int connection_or_process_cells_from_inbuf(connection_t *conn) { loop: log_fn(LOG_DEBUG,"%d: starting, inbuf_datalen %d (%d pending in tls object).", conn->s,(int)buf_datalen(conn->inbuf),tor_tls_get_pending_bytes(conn->tls)); - if(buf_datalen(conn->inbuf) < CELL_NETWORK_SIZE) /* entire response available? */ + if (buf_datalen(conn->inbuf) < CELL_NETWORK_SIZE) /* entire response available? */ return 0; /* not yet */ connection_fetch_from_buf(buf, CELL_NETWORK_SIZE, conn); diff --git a/src/or/control.c b/src/or/control.c index c2559cb64b..e8da7e3b18 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -410,7 +410,7 @@ connection_control_process_inbuf(connection_t *conn) { again: /* Try to suck a control message from the buffer. */ - switch(fetch_from_buf_control(conn->inbuf, &body_len, &command_type, &body)) + switch (fetch_from_buf_control(conn->inbuf, &body_len, &command_type, &body)) { case -1: tor_free(body); @@ -438,7 +438,7 @@ connection_control_process_inbuf(connection_t *conn) { } /* Okay, we're willing to process the command. */ - switch(command_type) + switch (command_type) { case CONTROL_CMD_SETCONF: if (handle_control_setconf(conn, body_len, body)) diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index 762c2f86ab..1daf10e33c 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -95,7 +95,7 @@ void cpuworkers_rotate(void) * mark it as closed and spawn a new one as needed. */ int connection_cpu_reached_eof(connection_t *conn) { log_fn(LOG_WARN,"Read eof. Worker died unexpectedly."); - if(conn->state != CPUWORKER_STATE_IDLE) { + if (conn->state != CPUWORKER_STATE_IDLE) { /* the circ associated with this cpuworker will have to wait until * it gets culled in run_connection_housekeeping(), since we have * no way to find out which circ it was. */ @@ -124,8 +124,8 @@ int connection_cpu_process_inbuf(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_CPUWORKER); - if(conn->state == CPUWORKER_STATE_BUSY_ONION) { - if(buf_datalen(conn->inbuf) < LEN_ONION_RESPONSE) /* entire answer available? */ + if (conn->state == CPUWORKER_STATE_BUSY_ONION) { + if (buf_datalen(conn->inbuf) < LEN_ONION_RESPONSE) /* entire answer available? */ return 0; /* not yet */ tor_assert(buf_datalen(conn->inbuf) == LEN_ONION_RESPONSE); @@ -139,21 +139,21 @@ int connection_cpu_process_inbuf(connection_t *conn) { * get_by_identity_digest: we want a specific port here in * case there are multiple connections.) */ p_conn = connection_exact_get_by_addr_port(addr,port); - if(p_conn) + if (p_conn) circ = circuit_get_by_circ_id_conn(circ_id, p_conn); - if(success == 0) { + if (success == 0) { log_fn(LOG_WARN,"decoding onionskin failed. Closing."); - if(circ) + if (circ) circuit_mark_for_close(circ); goto done_processing; } - if(!circ) { + if (!circ) { log_fn(LOG_INFO,"processed onion for a circ that's gone. Dropping."); goto done_processing; } tor_assert(circ->p_conn); - if(onionskin_answer(circ, buf+TAG_LEN, buf+TAG_LEN+ONIONSKIN_REPLY_LEN) < 0) { + if (onionskin_answer(circ, buf+TAG_LEN, buf+TAG_LEN+ONIONSKIN_REPLY_LEN) < 0) { log_fn(LOG_WARN,"onionskin_answer failed. Closing."); circuit_mark_for_close(circ); goto done_processing; @@ -214,27 +214,27 @@ static int cpuworker_main(void *data) { dup_onion_keys(&onion_key, &last_onion_key); - for(;;) { + for (;;) { - if(recv(fd, &question_type, 1, 0) != 1) { + if (recv(fd, &question_type, 1, 0) != 1) { // log_fn(LOG_ERR,"read type failed. Exiting."); log_fn(LOG_INFO,"cpuworker exiting because tor process closed connection (either rotated keys or died)."); goto end; } tor_assert(question_type == CPUWORKER_TASK_ONION); - if(read_all(fd, tag, TAG_LEN, 1) != TAG_LEN) { + if (read_all(fd, tag, TAG_LEN, 1) != TAG_LEN) { log_fn(LOG_ERR,"read tag failed. Exiting."); goto end; } - if(read_all(fd, question, ONIONSKIN_CHALLENGE_LEN, 1) != ONIONSKIN_CHALLENGE_LEN) { + if (read_all(fd, question, ONIONSKIN_CHALLENGE_LEN, 1) != ONIONSKIN_CHALLENGE_LEN) { log_fn(LOG_ERR,"read question failed. Exiting."); goto end; } - if(question_type == CPUWORKER_TASK_ONION) { - if(onion_skin_server_handshake(question, onion_key, last_onion_key, + if (question_type == CPUWORKER_TASK_ONION) { + if (onion_skin_server_handshake(question, onion_key, last_onion_key, reply_to_proxy, keys, 40+32) < 0) { /* failure */ log_fn(LOG_WARN,"onion_skin_server_handshake failed."); @@ -247,7 +247,7 @@ static int cpuworker_main(void *data) { memcpy(buf+1+TAG_LEN,reply_to_proxy,ONIONSKIN_REPLY_LEN); memcpy(buf+1+TAG_LEN+ONIONSKIN_REPLY_LEN,keys,40+32); } - if(write_all(fd, buf, LEN_ONION_RESPONSE, 1) != LEN_ONION_RESPONSE) { + if (write_all(fd, buf, LEN_ONION_RESPONSE, 1) != LEN_ONION_RESPONSE) { log_fn(LOG_ERR,"writing response buf failed. Exiting."); spawn_exit(); } @@ -269,7 +269,7 @@ static int spawn_cpuworker(void) { int fd[2]; connection_t *conn; - if(tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { + if (tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { log(LOG_ERR, "Couldn't construct socketpair: %s", tor_socket_strerror(tor_socket_errno(-1))); tor_cleanup(); @@ -288,7 +288,7 @@ static int spawn_cpuworker(void) { conn->s = fd[0]; conn->address = tor_strdup("localhost"); - if(connection_add(conn) < 0) { /* no space, forget it */ + if (connection_add(conn) < 0) { /* no space, forget it */ log_fn(LOG_WARN,"connection_add failed. Giving up."); connection_free(conn); /* this closes fd[0] */ return -1; @@ -306,13 +306,13 @@ static int spawn_cpuworker(void) { static void spawn_enough_cpuworkers(void) { int num_cpuworkers_needed = get_options()->NumCpus; - if(num_cpuworkers_needed < MIN_CPUWORKERS) + if (num_cpuworkers_needed < MIN_CPUWORKERS) num_cpuworkers_needed = MIN_CPUWORKERS; - if(num_cpuworkers_needed > MAX_CPUWORKERS) + if (num_cpuworkers_needed > MAX_CPUWORKERS) num_cpuworkers_needed = MAX_CPUWORKERS; - while(num_cpuworkers < num_cpuworkers_needed) { - if(spawn_cpuworker() < 0) { + while (num_cpuworkers < num_cpuworkers_needed) { + if (spawn_cpuworker() < 0) { log_fn(LOG_WARN,"spawn failed!"); return; } @@ -329,9 +329,9 @@ static void process_pending_task(connection_t *cpuworker) { /* for now only process onion tasks */ circ = onion_next_task(); - if(!circ) + if (!circ) return; - if(assign_to_cpuworker(cpuworker, CPUWORKER_TASK_ONION, circ) < 0) + if (assign_to_cpuworker(cpuworker, CPUWORKER_TASK_ONION, circ) < 0) log_fn(LOG_WARN,"assign_to_cpuworker failed. Ignoring."); } @@ -348,12 +348,12 @@ int assign_to_cpuworker(connection_t *cpuworker, unsigned char question_type, tor_assert(question_type == CPUWORKER_TASK_ONION); - if(question_type == CPUWORKER_TASK_ONION) { + if (question_type == CPUWORKER_TASK_ONION) { circ = task; - if(num_cpuworkers_busy == num_cpuworkers) { + if (num_cpuworkers_busy == num_cpuworkers) { log_fn(LOG_DEBUG,"No idle cpuworkers. Queuing."); - if(onion_pending_add(circ) < 0) + if (onion_pending_add(circ) < 0) return -1; return 0; } @@ -363,7 +363,7 @@ int assign_to_cpuworker(connection_t *cpuworker, unsigned char question_type, tor_assert(cpuworker); - if(!circ->p_conn) { + if (!circ->p_conn) { log_fn(LOG_INFO,"circ->p_conn gone. Failing circ."); return -1; } diff --git a/src/or/directory.c b/src/or/directory.c index 4f78aa006a..45327d5dfe 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -95,7 +95,7 @@ int dir_policy_permits_address(uint32_t addr) { int a; - if(!dir_policy) /* 'no dir policy' means 'accept' */ + if (!dir_policy) /* 'no dir policy' means 'accept' */ return 1; a = router_compare_addr_to_addr_policy(addr, 1, dir_policy); if (a==-1) @@ -259,7 +259,7 @@ directory_initiate_command(const char *address, uint32_t addr, conn->addr = addr; conn->port = dir_port; - if(get_options()->HttpProxy) { + if (get_options()->HttpProxy) { addr = get_options()->HttpProxyAddr; dir_port = get_options()->HttpProxyPort; } @@ -276,14 +276,14 @@ directory_initiate_command(const char *address, uint32_t addr, /* give it an initial state */ conn->state = DIR_CONN_STATE_CONNECTING; - if(purpose == DIR_PURPOSE_FETCH_DIR || + if (purpose == DIR_PURPOSE_FETCH_DIR || purpose == DIR_PURPOSE_UPLOAD_DIR || purpose == DIR_PURPOSE_FETCH_RUNNING_LIST) { /* then we want to connect directly */ - switch(connection_connect(conn, conn->address, addr, dir_port)) { + switch (connection_connect(conn, conn->address, addr, dir_port)) { case -1: router_mark_as_down(conn->identity_digest); /* don't try him again */ - if(purpose == DIR_PURPOSE_FETCH_DIR && + if (purpose == DIR_PURPOSE_FETCH_DIR && !all_trusted_directory_servers_down()) { log_fn(LOG_INFO,"Giving up on dirserver '%s'; trying another.", conn->address); directory_get_from_dirserver(purpose, NULL); @@ -307,7 +307,7 @@ directory_initiate_command(const char *address, uint32_t addr, * socketpair and hook up both sides */ conn->s = connection_ap_make_bridge(conn->address, conn->port); - if(conn->s < 0) { + if (conn->s < 0) { log_fn(LOG_WARN,"Making AP bridge to dirserver failed."); connection_mark_for_close(conn); return; @@ -342,18 +342,18 @@ directory_send_command(connection_t *conn, const char *platform, /* If we don't know the platform, assume it's up-to-date. */ use_newer = platform ? tor_version_as_new_as(platform, "0.0.9pre1"):1; - if(conn->port == 80) { + if (conn->port == 80) { strlcpy(hoststring, conn->address, sizeof(hoststring)); } else { tor_snprintf(hoststring, sizeof(hoststring),"%s:%d",conn->address, conn->port); } - if(get_options()->HttpProxy) { + if (get_options()->HttpProxy) { tor_snprintf(proxystring, sizeof(proxystring),"http://%s", hoststring); } else { proxystring[0] = 0; } - switch(purpose) { + switch (purpose) { case DIR_PURPOSE_FETCH_DIR: tor_assert(!resource); tor_assert(!payload); @@ -403,7 +403,7 @@ directory_send_command(connection_t *conn, const char *platform, hoststring); connection_write_to_buf(tmp, strlen(tmp), conn); - if(payload) { + if (payload) { /* then send the payload afterwards too */ connection_write_to_buf(payload, payload_len, conn); } @@ -432,20 +432,20 @@ parse_http_url(char *headers, char **url) if (!*s) return -1; /* tolerate the http[s] proxy style of putting the hostname in the url */ - if(s-start >= 4 && !strcmpstart(start,"http")) { + if (s-start >= 4 && !strcmpstart(start,"http")) { tmp = start + 4; - if(*tmp == 's') + if (*tmp == 's') tmp++; - if(s-tmp >= 3 && !strcmpstart(tmp,"://")) { + if (s-tmp >= 3 && !strcmpstart(tmp,"://")) { tmp = strchr(tmp+3, '/'); - if(tmp && tmp < s) { + if (tmp && tmp < s) { log_fn(LOG_DEBUG,"Skipping over 'http[s]://hostname' string"); start = tmp; } } } - if(s-start < 5 || strcmpstart(start,"/tor/")) { /* need to rewrite it */ + if (s-start < 5 || strcmpstart(start,"/tor/")) { /* need to rewrite it */ *url = tor_malloc(s - start + 5); strlcpy(*url,"/tor", s-start+5); strlcat((*url)+4, start, s-start+1); @@ -472,9 +472,9 @@ parse_http_response(const char *headers, int *code, time_t *date, tor_assert(headers); tor_assert(code); - while(isspace((int)*headers)) headers++; /* tolerate leading whitespace */ + while (isspace((int)*headers)) headers++; /* tolerate leading whitespace */ - if(sscanf(headers, "HTTP/1.%d %d", &n1, &n2) < 2 || + if (sscanf(headers, "HTTP/1.%d %d", &n1, &n2) < 2 || (n1 != 0 && n1 != 1) || (n2 < 100 || n2 >= 600)) { log_fn(LOG_WARN,"Failed to parse header '%s'",headers); @@ -537,7 +537,7 @@ connection_dir_client_reached_eof(connection_t *conn) int delta; int compression; - switch(fetch_from_buf_http(conn->inbuf, + switch (fetch_from_buf_http(conn->inbuf, &headers, MAX_HEADERS_SIZE, &body, &body_len, MAX_DIR_SIZE)) { case -1: /* overflow */ @@ -549,7 +549,7 @@ connection_dir_client_reached_eof(connection_t *conn) /* case 1, fall through */ } - if(parse_http_response(headers, &status_code, &date_header, + if (parse_http_response(headers, &status_code, &date_header, &compression) < 0) { log_fn(LOG_WARN,"Unparseable headers. Closing."); tor_free(body); tor_free(headers); @@ -580,21 +580,21 @@ connection_dir_client_reached_eof(connection_t *conn) body_len = new_len; } - if(conn->purpose == DIR_PURPOSE_FETCH_DIR) { + if (conn->purpose == DIR_PURPOSE_FETCH_DIR) { /* fetch/process the directory to learn about new routers. */ log_fn(LOG_INFO,"Received directory (size %d):\n%s", (int)body_len, body); - if(status_code == 503 || body_len == 0) { + if (status_code == 503 || body_len == 0) { log_fn(LOG_INFO,"Empty directory. Ignoring."); tor_free(body); tor_free(headers); return 0; } - if(status_code != 200) { + if (status_code != 200) { log_fn(LOG_WARN,"Received http status code %d from dirserver. Failing.", status_code); tor_free(body); tor_free(headers); return -1; } - if(router_load_routerlist_from_directory(body, NULL, 1) < 0) { + if (router_load_routerlist_from_directory(body, NULL, 1) < 0) { log_fn(LOG_WARN,"I failed to parse the directory I fetched from %s:%d. Ignoring.", conn->address, conn->port); } else { log_fn(LOG_INFO,"updated routers."); @@ -602,12 +602,12 @@ connection_dir_client_reached_eof(connection_t *conn) directory_has_arrived(time(NULL)); /* do things we've been waiting to do */ } - if(conn->purpose == DIR_PURPOSE_FETCH_RUNNING_LIST) { + if (conn->purpose == DIR_PURPOSE_FETCH_RUNNING_LIST) { running_routers_t *rrs; routerlist_t *rl; /* just update our list of running routers, if this list is new info */ log_fn(LOG_INFO,"Received running-routers list (size %d):\n%s", (int)body_len, body); - if(status_code != 200) { + if (status_code != 200) { log_fn(LOG_WARN,"Received http status code %d from dirserver. Failing.", status_code); tor_free(body); tor_free(headers); @@ -624,8 +624,8 @@ connection_dir_client_reached_eof(connection_t *conn) running_routers_free(rrs); } - if(conn->purpose == DIR_PURPOSE_UPLOAD_DIR) { - switch(status_code) { + if (conn->purpose == DIR_PURPOSE_UPLOAD_DIR) { + switch (status_code) { case 200: log_fn(LOG_INFO,"eof (status 200) after uploading server descriptor: finished."); break; @@ -641,12 +641,12 @@ connection_dir_client_reached_eof(connection_t *conn) } } - if(conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) { + if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) { log_fn(LOG_INFO,"Received rendezvous descriptor (size %d, status code %d)", (int)body_len, status_code); - switch(status_code) { + switch (status_code) { case 200: - if(rend_cache_store(body, body_len) < 0) { + if (rend_cache_store(body, body_len) < 0) { log_fn(LOG_WARN,"Failed to store rendezvous descriptor."); /* alice's ap_stream will notice when connection_mark_for_close * cleans it up */ @@ -666,8 +666,8 @@ connection_dir_client_reached_eof(connection_t *conn) } } - if(conn->purpose == DIR_PURPOSE_UPLOAD_RENDDESC) { - switch(status_code) { + if (conn->purpose == DIR_PURPOSE_UPLOAD_RENDDESC) { + switch (status_code) { case 200: log_fn(LOG_INFO,"eof (status 200) after uploading rendezvous descriptor: finished."); break; @@ -685,7 +685,7 @@ connection_dir_client_reached_eof(connection_t *conn) int connection_dir_reached_eof(connection_t *conn) { int retval; - if(conn->state != DIR_CONN_STATE_CLIENT_READING) { + if (conn->state != DIR_CONN_STATE_CLIENT_READING) { log_fn(LOG_INFO,"conn reached eof, not reading. Closing."); connection_close_immediate(conn); /* it was an error; give up on flushing */ connection_mark_for_close(conn); @@ -712,7 +712,7 @@ int connection_dir_process_inbuf(connection_t *conn) { */ /* If we're on the dirserver side, look for a command. */ - if(conn->state == DIR_CONN_STATE_SERVER_COMMAND_WAIT) { + if (conn->state == DIR_CONN_STATE_SERVER_COMMAND_WAIT) { if (directory_handle_command(conn) < 0) { connection_mark_for_close(conn); return -1; @@ -757,13 +757,13 @@ directory_handle_command_get(connection_t *conn, char *headers, } log_fn(LOG_INFO,"rewritten url as '%s'.", url); - if(!strcmp(url,"/tor/") || !strcmp(url,"/tor/dir.z")) { /* directory fetch */ + if (!strcmp(url,"/tor/") || !strcmp(url,"/tor/dir.z")) { /* directory fetch */ int deflated = !strcmp(url,"/tor/dir.z"); dlen = dirserv_get_directory(&cp, deflated); tor_free(url); - if(dlen == 0) { + if (dlen == 0) { log_fn(LOG_WARN,"My directory is empty. Closing."); connection_write_to_buf(answer503, strlen(answer503), conn); return 0; @@ -781,17 +781,17 @@ directory_handle_command_get(connection_t *conn, char *headers, return 0; } - if(!strcmp(url,"/tor/running-routers") || + if (!strcmp(url,"/tor/running-routers") || !strcmp(url,"/tor/running-routers.z")) { /* running-routers fetch */ int deflated = !strcmp(url,"/tor/dir.z"); tor_free(url); - if(!authdir_mode(get_options())) { + if (!authdir_mode(get_options())) { /* For now, we don't cache running-routers. Reject. */ connection_write_to_buf(answer400, strlen(answer400), conn); return 0; } dlen = dirserv_get_runningrouters(&cp, deflated); - if(!dlen) { /* we failed to create/cache cp */ + if (!dlen) { /* we failed to create/cache cp */ connection_write_to_buf(answer503, strlen(answer503), conn); return 0; } @@ -806,12 +806,12 @@ directory_handle_command_get(connection_t *conn, char *headers, return 0; } - if(!strcmpstart(url,"/tor/rendezvous/")) { + if (!strcmpstart(url,"/tor/rendezvous/")) { /* rendezvous descriptor fetch */ const char *descp; size_t desc_len; - if(!authdir_mode(get_options())) { + if (!authdir_mode(get_options())) { /* We don't hand out rend descs. In fact, it could be a security * risk, since rend_cache_lookup_desc() below would provide it * if we're gone to the site recently, and 404 if we haven't. @@ -821,7 +821,7 @@ directory_handle_command_get(connection_t *conn, char *headers, tor_free(url); return 0; } - switch(rend_cache_lookup_desc(url+strlen("/tor/rendezvous/"), &descp, &desc_len)) { + switch (rend_cache_lookup_desc(url+strlen("/tor/rendezvous/"), &descp, &desc_len)) { case 1: /* valid */ format_rfc1123_time(date, time(NULL)); tor_snprintf(tmp, sizeof(tmp), "HTTP/1.0 200 OK\r\nDate: %s\r\nContent-Length: %d\r\nContent-Type: application/octet-stream\r\n\r\n", @@ -863,7 +863,7 @@ directory_handle_command_post(connection_t *conn, char *headers, conn->state = DIR_CONN_STATE_SERVER_WRITING; - if(!authdir_mode(get_options())) { + if (!authdir_mode(get_options())) { /* we just provide cached directories; we don't want to * receive anything. */ connection_write_to_buf(answer400, strlen(answer400), conn); @@ -876,9 +876,9 @@ directory_handle_command_post(connection_t *conn, char *headers, } log_fn(LOG_INFO,"rewritten url as '%s'.", url); - if(!strcmp(url,"/tor/")) { /* server descriptor post */ + if (!strcmp(url,"/tor/")) { /* server descriptor post */ cp = body; - switch(dirserv_add_descriptor(&cp)) { + switch (dirserv_add_descriptor(&cp)) { case -1: /* malformed descriptor, or something wrong */ connection_write_to_buf(answer400, strlen(answer400), conn); @@ -896,9 +896,9 @@ directory_handle_command_post(connection_t *conn, char *headers, return 0; } - if(!strcmpstart(url,"/tor/rendezvous/publish")) { + if (!strcmpstart(url,"/tor/rendezvous/publish")) { /* rendezvous descriptor post */ - if(rend_cache_store(body, body_len) < 0) + if (rend_cache_store(body, body_len) < 0) connection_write_to_buf(answer400, strlen(answer400), conn); else connection_write_to_buf(answer200, strlen(answer200), conn); @@ -925,7 +925,7 @@ static int directory_handle_command(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_DIR); - switch(fetch_from_buf_http(conn->inbuf, + switch (fetch_from_buf_http(conn->inbuf, &headers, MAX_HEADERS_SIZE, &body, &body_len, MAX_BODY_SIZE)) { case -1: /* overflow */ @@ -939,7 +939,7 @@ static int directory_handle_command(connection_t *conn) { log_fn(LOG_DEBUG,"headers '%s', body '%s'.", headers, body); - if(!strncasecmp(headers,"GET",3)) + if (!strncasecmp(headers,"GET",3)) r = directory_handle_command_get(conn, headers, body, body_len); else if (!strncasecmp(headers,"POST",4)) r = directory_handle_command_post(conn, headers, body, body_len); @@ -961,7 +961,7 @@ int connection_dir_finished_flushing(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_DIR); - switch(conn->state) { + switch (conn->state) { case DIR_CONN_STATE_CLIENT_SENDING: log_fn(LOG_DEBUG,"client finished sending command."); conn->state = DIR_CONN_STATE_CLIENT_READING; diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 86ecc24ddd..c8e0124b6d 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -107,13 +107,13 @@ dirserv_parse_fingerprint_file(const char *fname) fingerprint_list_new = smartlist_create(); - for(list=front; list; list=list->next) { + for (list=front; list; list=list->next) { nickname = list->key; fingerprint = list->value; if (strlen(nickname) > MAX_NICKNAME_LEN) { log(LOG_WARN, "Nickname '%s' too long in fingerprint file. Skipping.", nickname); continue; } - if(strlen(fingerprint) != FINGERPRINT_LEN || + if (strlen(fingerprint) != FINGERPRINT_LEN || !crypto_pk_check_fingerprint_syntax(fingerprint)) { log_fn(LOG_WARN, "Invalid fingerprint (nickname '%s', fingerprint %s). Skipping.", nickname, fingerprint); @@ -134,7 +134,7 @@ dirserv_parse_fingerprint_file(const char *fname) break; /* out of the for. the 'if' below means skip to the next line. */ } } - if(i == smartlist_len(fingerprint_list_new)) { /* not a duplicate */ + if (i == smartlist_len(fingerprint_list_new)) { /* not a duplicate */ ent = tor_malloc(sizeof(fingerprint_entry_t)); ent->nickname = tor_strdup(nickname); ent->fingerprint = tor_strdup(fingerprint); @@ -331,13 +331,13 @@ dirserv_add_descriptor(const char **desc) } /* Okay. Now check whether the fingerprint is recognized. */ r = dirserv_router_fingerprint_is_known(ri); - if(r==-1) { + if (r==-1) { log_fn(LOG_WARN, "Known nickname '%s', wrong fingerprint. Not adding.", ri->nickname); routerinfo_free(ri); *desc = end; return 0; } - if(r==0) { + if (r==0) { char fp[FINGERPRINT_LEN+1]; log_fn(LOG_INFO, "Unknown nickname '%s' (%s:%d). Adding.", ri->nickname, ri->address, ri->or_port); @@ -437,9 +437,9 @@ directory_set_dirty() { time_t now = time(NULL); - if(!the_directory_is_dirty) + if (!the_directory_is_dirty) the_directory_is_dirty = now; - if(!runningrouters_is_dirty) + if (!runningrouters_is_dirty) runningrouters_is_dirty = now; } @@ -450,7 +450,7 @@ int dirserv_load_from_directory_string(const char *dir) { const char *cp = dir; - while(1) { + while (1) { cp = strstr(cp, "\nrouter "); if (!cp) break; ++cp; @@ -599,14 +599,14 @@ dirserv_dump_directory_to_string(char *s, size_t maxlen, * PEM-encoded key instead. */ #if 1 - if(crypto_pk_DER64_encode_public_key(private_key, &identity_pkey)<0) { + if (crypto_pk_DER64_encode_public_key(private_key, &identity_pkey)<0) { log_fn(LOG_WARN,"write identity_pkey to string failed!"); return -1; } #else { int l; - if(crypto_pk_write_public_key_to_string(private_key,&identity_pkey,&l)<0) { + if (crypto_pk_write_public_key_to_string(private_key,&identity_pkey,&l)<0) { log_fn(LOG_WARN,"write identity_pkey to string failed!"); return -1; } @@ -735,7 +735,7 @@ void dirserv_set_cached_directory(const char *directory, time_t when, if (!is_running_routers) { char filename[512]; tor_snprintf(filename,sizeof(filename),"%s/cached-directory", get_options()->DataDirectory); - if(write_str_to_file(filename,cached_directory.dir,0) < 0) { + if (write_str_to_file(filename,cached_directory.dir,0) < 0) { log_fn(LOG_WARN, "Couldn't write cached directory to disk. Ignoring."); } } @@ -843,14 +843,14 @@ static int generate_runningrouters(crypto_pk_env_t *private_key) * PEM-encoded key instead. */ #if 1 - if(crypto_pk_DER64_encode_public_key(private_key, &identity_pkey)<0) { + if (crypto_pk_DER64_encode_public_key(private_key, &identity_pkey)<0) { log_fn(LOG_WARN,"write identity_pkey to string failed!"); goto err; } #else { int l; - if(crypto_pk_write_public_key_to_string(private_key,&identity_pkey,&l)<0) { + if (crypto_pk_write_public_key_to_string(private_key,&identity_pkey,&l)<0) { log_fn(LOG_WARN,"write identity_pkey to string failed!"); goto err; } @@ -926,7 +926,7 @@ size_t dirserv_get_runningrouters(const char **rr, int compress) } if (runningrouters_is_dirty && runningrouters_is_dirty + DIR_REGEN_SLACK_TIME < time(NULL)) { - if(generate_runningrouters(get_identity_key())) { + if (generate_runningrouters(get_identity_key())) { log_fn(LOG_ERR, "Couldn't generate running-routers list?"); return 0; } diff --git a/src/or/dns.c b/src/or/dns.c index 2d2914ff8f..1fa39caeeb 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -112,10 +112,10 @@ static void purge_expired_resolves(uint32_t now) { /* this is fast because the linked list * oldest_cached_resolve is ordered by when they came in. */ - while(oldest_cached_resolve && (oldest_cached_resolve->expire < now)) { + while (oldest_cached_resolve && (oldest_cached_resolve->expire < now)) { resolve = oldest_cached_resolve; log(LOG_DEBUG,"Forgetting old cached resolve (expires %lu)", (unsigned long)resolve->expire); - if(resolve->state == CACHE_STATE_PENDING) { + if (resolve->state == CACHE_STATE_PENDING) { log_fn(LOG_WARN,"Expiring a dns resolve that's still pending. Forgot to cull it?"); } if (resolve->pending_connections) { @@ -134,7 +134,7 @@ static void purge_expired_resolves(uint32_t now) { } } oldest_cached_resolve = resolve->next; - if(!oldest_cached_resolve) /* if there are no more, */ + if (!oldest_cached_resolve) /* if there are no more, */ newest_cached_resolve = NULL; /* then make sure the list's tail knows that too */ SPLAY_REMOVE(cache_tree, &cache_root, resolve); tor_free(resolve); @@ -218,8 +218,8 @@ int dns_resolve(connection_t *exitconn) { /* now check the tree to see if 'address' is already there. */ strlcpy(search.address, exitconn->address, sizeof(search.address)); resolve = SPLAY_FIND(cache_tree, &cache_root, &search); - if(resolve) { /* already there */ - switch(resolve->state) { + if (resolve) { /* already there */ + switch (resolve->state) { case CACHE_STATE_PENDING: /* add us to the pending list */ pending_connection = tor_malloc_zero( @@ -277,7 +277,7 @@ static int assign_to_dnsworker(connection_t *exitconn) { dnsconn = connection_get_by_type_state(CONN_TYPE_DNSWORKER, DNSWORKER_STATE_IDLE); - if(!dnsconn) { + if (!dnsconn) { log_fn(LOG_WARN,"no idle dns workers. Failing."); dns_cancel_pending_resolve(exitconn->address); send_resolved_cell(exitconn, RESOLVED_TYPE_ERROR_TRANSIENT); @@ -314,7 +314,7 @@ void connection_dns_remove(connection_t *conn) strlcpy(search.address, conn->address, sizeof(search.address)); resolve = SPLAY_FIND(cache_tree, &cache_root, &search); - if(!resolve) { + if (!resolve) { log_fn(LOG_WARN,"Address '%s' is not pending. Dropping.", conn->address); return; } @@ -324,15 +324,15 @@ void connection_dns_remove(connection_t *conn) pend = resolve->pending_connections; - if(pend->conn == conn) { + if (pend->conn == conn) { resolve->pending_connections = pend->next; tor_free(pend); log_fn(LOG_DEBUG, "First connection (fd %d) no longer waiting for resolve of '%s'", conn->s, conn->address); return; } else { - for( ; pend->next; pend = pend->next) { - if(pend->next->conn == conn) { + for ( ; pend->next; pend = pend->next) { + if (pend->next->conn == conn) { victim = pend->next; pend->next = victim->next; tor_free(victim); @@ -352,7 +352,7 @@ void assert_connection_edge_not_dns_pending(connection_t *conn) { struct cached_resolve *resolve; SPLAY_FOREACH(resolve, cache_tree, &cache_root) { - for(pend = resolve->pending_connections; + for (pend = resolve->pending_connections; pend; pend = pend->next) { tor_assert(pend->conn != conn); @@ -367,7 +367,7 @@ void assert_all_pending_dns_resolves_ok(void) { struct cached_resolve *resolve; SPLAY_FOREACH(resolve, cache_tree, &cache_root) { - for(pend = resolve->pending_connections; + for (pend = resolve->pending_connections; pend; pend = pend->next) { assert_connection_ok(pend->conn, 0); @@ -390,7 +390,7 @@ void dns_cancel_pending_resolve(char *address) { strlcpy(search.address, address, sizeof(search.address)); resolve = SPLAY_FIND(cache_tree, &cache_root, &search); - if(!resolve) { + if (!resolve) { log_fn(LOG_WARN,"Address '%s' is not pending. Dropping.", address); return; } @@ -400,12 +400,12 @@ void dns_cancel_pending_resolve(char *address) { /* mark all pending connections to fail */ log_fn(LOG_DEBUG, "Failing all connections waiting on DNS resolve of '%s'", address); - while(resolve->pending_connections) { + while (resolve->pending_connections) { pend = resolve->pending_connections; pend->conn->state = EXIT_CONN_STATE_RESOLVEFAILED; pendconn = pend->conn; tor_assert(pendconn->s == -1); - if(!pendconn->marked_for_close) { + if (!pendconn->marked_for_close) { connection_edge_end(pendconn, END_STREAM_REASON_MISC, pendconn->cpath_layer); } circuit_detach_stream(circuit_get_by_conn(pendconn), pendconn); @@ -423,17 +423,17 @@ static void dns_purge_resolve(struct cached_resolve *resolve) { struct cached_resolve *tmp; /* remove resolve from the linked list */ - if(resolve == oldest_cached_resolve) { + if (resolve == oldest_cached_resolve) { oldest_cached_resolve = resolve->next; - if(oldest_cached_resolve == NULL) + if (oldest_cached_resolve == NULL) newest_cached_resolve = NULL; } else { /* FFFF make it a doubly linked list if this becomes too slow */ - for(tmp=oldest_cached_resolve; tmp && tmp->next != resolve; tmp=tmp->next) ; + for (tmp=oldest_cached_resolve; tmp && tmp->next != resolve; tmp=tmp->next) ; tor_assert(tmp); /* it's got to be in the list, or we screwed up somewhere else */ tmp->next = resolve->next; /* unlink it */ - if(newest_cached_resolve == resolve) + if (newest_cached_resolve == resolve) newest_cached_resolve = tmp; } @@ -460,7 +460,7 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) { strlcpy(search.address, address, sizeof(search.address)); resolve = SPLAY_FIND(cache_tree, &cache_root, &search); - if(!resolve) { + if (!resolve) { log_fn(LOG_INFO,"Resolved unasked address '%s'; caching anyway.", address); resolve = tor_malloc_zero(sizeof(struct cached_resolve)); resolve->state = (outcome == DNS_RESOLVE_SUCCEEDED) ? @@ -486,19 +486,19 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) { /* tor_assert(resolve->state == CACHE_STATE_PENDING); */ resolve->addr = addr; - if(outcome == DNS_RESOLVE_SUCCEEDED) + if (outcome == DNS_RESOLVE_SUCCEEDED) resolve->state = CACHE_STATE_VALID; else resolve->state = CACHE_STATE_FAILED; - while(resolve->pending_connections) { + while (resolve->pending_connections) { pend = resolve->pending_connections; assert_connection_ok(pend->conn,time(NULL)); pend->conn->addr = resolve->addr; pendconn = pend->conn; /* don't pass complex things to the connection_mark_for_close macro */ - if(resolve->state == CACHE_STATE_FAILED) { + if (resolve->state == CACHE_STATE_FAILED) { /* prevent double-remove. */ pendconn->state = EXIT_CONN_STATE_RESOLVEFAILED; if (pendconn->purpose == EXIT_PURPOSE_CONNECT) { @@ -540,7 +540,7 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) { tor_free(pend); } - if(outcome == DNS_RESOLVE_FAILED_TRANSIENT) { /* remove from cache */ + if (outcome == DNS_RESOLVE_FAILED_TRANSIENT) { /* remove from cache */ dns_purge_resolve(resolve); } } @@ -561,7 +561,7 @@ int connection_dns_finished_flushing(connection_t *conn) { int connection_dns_reached_eof(connection_t *conn) { log_fn(LOG_WARN,"Read eof. Worker died unexpectedly."); - if(conn->state == DNSWORKER_STATE_BUSY) { + if (conn->state == DNSWORKER_STATE_BUSY) { dns_cancel_pending_resolve(conn->address); num_dnsworkers_busy--; } @@ -580,11 +580,11 @@ int connection_dns_process_inbuf(connection_t *conn) { tor_assert(conn); tor_assert(conn->type == CONN_TYPE_DNSWORKER); - if(conn->state != DNSWORKER_STATE_BUSY) { + if (conn->state != DNSWORKER_STATE_BUSY) { log_fn(LOG_WARN,"Bug: poll() indicated than an idle dns worker was readable. Please report."); return 0; } - if(buf_datalen(conn->inbuf) < 5) /* entire answer available? */ + if (buf_datalen(conn->inbuf) < 5) /* entire answer available? */ return 0; /* not yet */ tor_assert(conn->state == DNSWORKER_STATE_BUSY); tor_assert(buf_datalen(conn->inbuf) == 5); @@ -659,14 +659,14 @@ static int dnsworker_main(void *data) { #endif handle_signals(0); /* ignore interrupts from the keyboard, etc */ - for(;;) { + for (;;) { - if(recv(fd, &address_len, 1, 0) != 1) { + if (recv(fd, &address_len, 1, 0) != 1) { log_fn(LOG_INFO,"dnsworker exiting because tor process closed connection (either pruned idle dnsworker or died)."); spawn_exit(); } - if(address_len && read_all(fd, address, address_len, 1) != address_len) { + if (address_len && read_all(fd, address, address_len, 1) != address_len) { log_fn(LOG_ERR,"read hostname failed. Child exiting."); spawn_exit(); } @@ -692,7 +692,7 @@ static int dnsworker_main(void *data) { break; } set_uint32(answer+1, ip); - if(write_all(fd, answer, 5, 1) != 5) { + if (write_all(fd, answer, 5, 1) != 5) { log_fn(LOG_ERR,"writing answer failed. Child exiting."); spawn_exit(); } @@ -706,7 +706,7 @@ static int spawn_dnsworker(void) { int fd[2]; connection_t *conn; - if(tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { + if (tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fd) < 0) { log(LOG_ERR, "Couldn't construct socketpair: %s", tor_socket_strerror(tor_socket_errno(-1))); tor_cleanup(); @@ -725,7 +725,7 @@ static int spawn_dnsworker(void) { conn->s = fd[0]; conn->address = tor_strdup("<unused>"); - if(connection_add(conn) < 0) { /* no space, forget it */ + if (connection_add(conn) < 0) { /* no space, forget it */ log_fn(LOG_WARN,"connection_add failed. Giving up."); connection_free(conn); /* this closes fd[0] */ return -1; @@ -752,7 +752,7 @@ static void spawn_enough_dnsworkers(void) { * Maybe we should compromise and only kill if it's been at it for * more than, e.g., 2 seconds. -RD */ - if(num_dnsworkers_busy == MAX_DNSWORKERS) { + if (num_dnsworkers_busy == MAX_DNSWORKERS) { /* We always want at least one worker idle. * So find the oldest busy worker and kill it. */ @@ -768,20 +768,20 @@ static void spawn_enough_dnsworkers(void) { num_dnsworkers--; } - if(num_dnsworkers_busy >= MIN_DNSWORKERS) + if (num_dnsworkers_busy >= MIN_DNSWORKERS) num_dnsworkers_needed = num_dnsworkers_busy+1; else num_dnsworkers_needed = MIN_DNSWORKERS; - while(num_dnsworkers < num_dnsworkers_needed) { - if(spawn_dnsworker() < 0) { + while (num_dnsworkers < num_dnsworkers_needed) { + if (spawn_dnsworker() < 0) { log(LOG_WARN,"spawn_enough_dnsworkers(): spawn failed!"); return; } num_dnsworkers++; } - while(num_dnsworkers > num_dnsworkers_busy+MAX_IDLE_DNSWORKERS) { /* too many idle? */ + while (num_dnsworkers > num_dnsworkers_busy+MAX_IDLE_DNSWORKERS) { /* too many idle? */ /* cull excess workers */ log_fn(LOG_WARN,"%d of %d dnsworkers are idle. Killing one.", num_dnsworkers-num_dnsworkers_needed, num_dnsworkers); diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 6da6e8d55e..582b0d450d 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -640,7 +640,7 @@ static int hibernate_soft_limit_reached(void) static void hibernate_begin(int new_state, time_t now) { connection_t *conn; - if(hibernate_state == HIBERNATE_STATE_EXITING) { + if (hibernate_state == HIBERNATE_STATE_EXITING) { /* we've been called twice now. close immediately. */ log(LOG_NOTICE,"Second sigint received; exiting now."); tor_cleanup(); @@ -648,9 +648,9 @@ static void hibernate_begin(int new_state, time_t now) { } /* close listeners. leave control listener(s). */ - while((conn = connection_get_by_type(CONN_TYPE_OR_LISTENER)) || - (conn = connection_get_by_type(CONN_TYPE_AP_LISTENER)) || - (conn = connection_get_by_type(CONN_TYPE_DIR_LISTENER))) { + while ((conn = connection_get_by_type(CONN_TYPE_OR_LISTENER)) || + (conn = connection_get_by_type(CONN_TYPE_AP_LISTENER)) || + (conn = connection_get_by_type(CONN_TYPE_DIR_LISTENER))) { log_fn(LOG_INFO,"Closing listener type %d", conn->type); connection_mark_for_close(conn); } @@ -658,7 +658,7 @@ static void hibernate_begin(int new_state, time_t now) { /* XXX kill intro point circs */ /* XXX upload rendezvous service descriptors with no intro points */ - if(new_state == HIBERNATE_STATE_EXITING) { + if (new_state == HIBERNATE_STATE_EXITING) { log(LOG_NOTICE,"Interrupt: will shut down in %d seconds. Interrupt again to exit now.", SHUTDOWN_WAIT_LENGTH); hibernate_end_time = time(NULL) + SHUTDOWN_WAIT_LENGTH; } else { /* soft limit reached */ @@ -715,9 +715,9 @@ hibernate_go_dormant(time_t now) { * running, and download directories so we can detect if we're obsolete. * Leave control conns because we still want to be controllable. */ - while((conn = connection_get_by_type(CONN_TYPE_OR)) || - (conn = connection_get_by_type(CONN_TYPE_AP)) || - (conn = connection_get_by_type(CONN_TYPE_EXIT))) { + while ((conn = connection_get_by_type(CONN_TYPE_OR)) || + (conn = connection_get_by_type(CONN_TYPE_AP)) || + (conn = connection_get_by_type(CONN_TYPE_EXIT))) { log_fn(LOG_INFO,"Closing conn type %d", conn->type); connection_mark_for_close(conn); } @@ -763,7 +763,7 @@ void consider_hibernation(time_t now) { * elapses. */ if (hibernate_state == HIBERNATE_STATE_EXITING) { tor_assert(hibernate_end_time); - if(hibernate_end_time <= now) { + if (hibernate_end_time <= now) { log(LOG_NOTICE,"Clean shutdown finished. Exiting."); tor_cleanup(); exit(0); @@ -771,7 +771,7 @@ void consider_hibernation(time_t now) { return; /* if exiting soon, don't worry about bandwidth limits */ } - if(hibernate_state == HIBERNATE_STATE_DORMANT) { + if (hibernate_state == HIBERNATE_STATE_DORMANT) { /* We've been hibernating because of bandwidth accounting. */ tor_assert(hibernate_end_time); if (hibernate_end_time > now && accounting_enabled) { diff --git a/src/or/main.c b/src/or/main.c index dd05484411..34576f4c20 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -97,7 +97,7 @@ int connection_add(connection_t *conn) { tor_assert(conn); tor_assert(conn->s >= 0); - if(nfds >= get_options()->MaxConn-1) { + if (nfds >= get_options()->MaxConn-1) { log_fn(LOG_WARN,"failing because nfds is too high."); return -1; } @@ -135,7 +135,7 @@ int connection_remove(connection_t *conn) { tor_assert(conn->poll_index >= 0); current_index = conn->poll_index; - if(current_index == nfds-1) { /* this is the end */ + if (current_index == nfds-1) { /* this is the end */ nfds--; return 0; } @@ -240,7 +240,7 @@ static void conn_read(int i) { /* see http://www.greenend.org.uk/rjk/2001/06/poll.html for * discussion of POLLIN vs POLLHUP */ - if(!(poll_array[i].revents & (POLLIN|POLLHUP|POLLERR))) + if (!(poll_array[i].revents & (POLLIN|POLLHUP|POLLERR))) /* Sometimes read events get triggered for things that didn't ask * for them (XXX due to unknown poll wonkiness) and sometime we * want to read even though there was no read event (due to @@ -251,7 +251,7 @@ static void conn_read(int i) { * something sane may result. Nick suspects that the || below * should be a &&. */ - if(!connection_is_reading(conn) || + if (!connection_is_reading(conn) || !connection_has_pending_tls_data(conn)) return; /* this conn should not read */ @@ -260,7 +260,7 @@ static void conn_read(int i) { assert_connection_ok(conn, time(NULL)); assert_all_pending_dns_resolves_ok(); - if( + if ( /* XXX does POLLHUP also mean it's definitely broken? */ #ifdef MS_WINDOWS (poll_array[i].revents & POLLERR) || @@ -284,7 +284,7 @@ static void conn_read(int i) { static void conn_write(int i) { connection_t *conn; - if(!(poll_array[i].revents & POLLOUT)) + if (!(poll_array[i].revents & POLLOUT)) return; /* this conn doesn't want to write */ conn = connection_array[i]; @@ -325,34 +325,34 @@ static void conn_close_if_marked(int i) { conn = connection_array[i]; assert_connection_ok(conn, time(NULL)); assert_all_pending_dns_resolves_ok(); - if(!conn->marked_for_close) + if (!conn->marked_for_close) return; /* nothing to see here, move along */ log_fn(LOG_INFO,"Cleaning up connection (fd %d).",conn->s); - if(conn->s >= 0 && connection_wants_to_flush(conn)) { + if (conn->s >= 0 && connection_wants_to_flush(conn)) { /* -1 means it's an incomplete edge connection, or that the socket * has already been closed as unflushable. */ - if(!conn->hold_open_until_flushed) + if (!conn->hold_open_until_flushed) log_fn(LOG_INFO, "Conn (addr %s, fd %d, type %s, state %d) marked, but wants to flush %d bytes. " "(Marked at %s:%d)", conn->address, conn->s, CONN_TYPE_TO_STRING(conn->type), conn->state, (int)conn->outbuf_flushlen, conn->marked_for_close_file, conn->marked_for_close); - if(connection_speaks_cells(conn)) { - if(conn->state == OR_CONN_STATE_OPEN) { + if (connection_speaks_cells(conn)) { + if (conn->state == OR_CONN_STATE_OPEN) { retval = flush_buf_tls(conn->tls, conn->outbuf, &conn->outbuf_flushlen); } else retval = -1; /* never flush non-open broken tls connections */ } else { retval = flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen); } - if(retval >= 0 && + if (retval >= 0 && conn->hold_open_until_flushed && connection_wants_to_flush(conn)) { log_fn(LOG_INFO,"Holding conn (fd %d) open for more flushing.",conn->s); /* XXX should we reset timestamp_lastwritten here? */ return; } - if(connection_wants_to_flush(conn)) { + if (connection_wants_to_flush(conn)) { log_fn(LOG_WARN,"Conn (addr %s, fd %d, type %s, state %d) still wants to flush. Losing %d bytes! (Marked at %s:%d)", conn->address, conn->s, CONN_TYPE_TO_STRING(conn->type), conn->state, (int)buf_datalen(conn->outbuf), conn->marked_for_close_file, @@ -366,11 +366,11 @@ static void conn_close_if_marked(int i) { circuit_about_to_close_connection(conn); connection_about_to_close_connection(conn); connection_remove(conn); - if(conn->type == CONN_TYPE_EXIT) { + if (conn->type == CONN_TYPE_EXIT) { assert_connection_edge_not_dns_pending(conn); } connection_free(conn); - if(i<nfds) { /* we just replaced the one at i with a new one. + if (i<nfds) { /* we just replaced the one at i with a new one. process it too. */ conn_close_if_marked(i); } @@ -389,10 +389,10 @@ void directory_has_arrived(time_t now) { if (!time_to_fetch_directory) time_to_fetch_directory = now + options->DirFetchPeriod; - if(!time_to_force_upload_descriptor) + if (!time_to_force_upload_descriptor) time_to_force_upload_descriptor = now + options->DirPostPeriod; - if(!time_to_fetch_running_routers) + if (!time_to_fetch_running_routers) time_to_fetch_running_routers = now + options->StatusFetchPeriod; if (server_mode(options) && @@ -410,7 +410,7 @@ static void run_connection_housekeeping(int i, time_t now) { or_options_t *options = get_options(); /* Expire any directory connections that haven't sent anything for 5 min */ - if(conn->type == CONN_TYPE_DIR && + if (conn->type == CONN_TYPE_DIR && !conn->marked_for_close && conn->timestamp_lastwritten + 5*60 < now) { log_fn(LOG_INFO,"Expiring wedged directory conn (fd %d, purpose %d)", conn->s, conn->purpose); @@ -420,10 +420,10 @@ static void run_connection_housekeeping(int i, time_t now) { /* If we haven't written to an OR connection for a while, then either nuke the connection or send a keepalive, depending. */ - if(connection_speaks_cells(conn) && + if (connection_speaks_cells(conn) && now >= conn->timestamp_lastwritten + options->KeepalivePeriod) { routerinfo_t *router = router_get_by_digest(conn->identity_digest); - if((!connection_state_is_open(conn)) || + if ((!connection_state_is_open(conn)) || (we_are_hibernating() && !circuit_get_by_conn(conn)) || (!clique_mode(options) && !circuit_get_by_conn(conn) && (!router || !server_mode(options) || !router_is_clique_mode(router)))) { @@ -465,24 +465,24 @@ static int decide_if_publishable_server(time_t now) { bw = rep_hist_bandwidth_assess(); router_set_bandwidth_capacity(bw); - if(options->ClientOnly) + if (options->ClientOnly) return 0; - if(!options->ORPort) + if (!options->ORPort) return 0; /* XXX for now, you're only a server if you're a server */ return server_mode(options); /* here, determine if we're reachable */ - if(0) { /* we've recently failed to reach our IP/ORPort from the outside */ + if (0) { /* we've recently failed to reach our IP/ORPort from the outside */ return 0; } - if(bw < MIN_BW_TO_PUBLISH_DESC) + if (bw < MIN_BW_TO_PUBLISH_DESC) return 0; - if(options->AuthoritativeDir) + if (options->AuthoritativeDir) return 1; - if(stats_n_seconds_uptime < MIN_UPTIME_TO_PUBLISH_DESC) + if (stats_n_seconds_uptime < MIN_UPTIME_TO_PUBLISH_DESC) return 0; return 1; @@ -549,7 +549,7 @@ static void run_scheduled_events(time_t now) { if (router_rebuild_descriptor(1)<0) { log_fn(LOG_WARN, "Couldn't rebuild router descriptor"); } - if(advertised_server_mode()) + if (advertised_server_mode()) router_upload_dir_desc_to_dirservers(0); } @@ -575,15 +575,15 @@ static void run_scheduled_events(time_t now) { /** 2. Periodically, we consider getting a new directory, getting a * new running-routers list, and/or force-uploading our descriptor * (if we've passed our internal checks). */ - if(time_to_fetch_directory < now) { + if (time_to_fetch_directory < now) { /* purge obsolete entries */ routerlist_remove_old_routers(ROUTER_MAX_AGE); - if(authdir_mode(options)) { + if (authdir_mode(options)) { /* We're a directory; dump any old descriptors. */ dirserv_remove_old_servers(ROUTER_MAX_AGE); } - if(server_mode(options) && !we_are_hibernating()) { + if (server_mode(options) && !we_are_hibernating()) { /* dirservers try to reconnect, in case connections have failed; * and normal servers try to reconnect to dirservers */ router_retry_connections(); @@ -607,7 +607,7 @@ static void run_scheduled_events(time_t now) { } if (time_to_force_upload_descriptor < now) { - if(decide_if_publishable_server(now)) { + if (decide_if_publishable_server(now)) { server_is_advertised = 1; router_rebuild_descriptor(1); router_upload_dir_desc_to_dirservers(1); @@ -662,11 +662,11 @@ static void run_scheduled_events(time_t now) { * that became dirty more than NewCircuitPeriod seconds ago, * and we make a new circ if there are no clean circuits. */ - if(has_fetched_directory && !we_are_hibernating()) + if (has_fetched_directory && !we_are_hibernating()) circuit_build_needed_circs(now); /** 5. We do housekeeping for each connection... */ - for(i=0;i<nfds;i++) { + for (i=0;i<nfds;i++) { run_connection_housekeeping(i, now); } @@ -674,14 +674,14 @@ static void run_scheduled_events(time_t now) { circuit_close_all_marked(); /** 7. And upload service descriptors if necessary. */ - if(!we_are_hibernating()) + if (!we_are_hibernating()) rend_consider_services_upload(now); /** 8. and blow away any connections that need to die. have to do this now, * because if we marked a conn for close and left its socket -1, then * we'll pass it to poll/select and bad things will happen. */ - for(i=0;i<nfds;i++) + for (i=0;i<nfds;i++) conn_close_if_marked(i); } @@ -697,7 +697,7 @@ static int prepare_for_poll(void) { tor_gettimeofday(&now); - if(now.tv_sec > current_second) { + if (now.tv_sec > current_second) { /* the second has rolled over. check more stuff. */ size_t bytes_written; size_t bytes_read; @@ -724,9 +724,9 @@ static int prepare_for_poll(void) { current_second = now.tv_sec; /* remember which second it is, for next time */ } - for(i=0;i<nfds;i++) { + for (i=0;i<nfds;i++) { conn = connection_array[i]; - if(connection_has_pending_tls_data(conn) && + if (connection_has_pending_tls_data(conn) && connection_is_reading(conn)) { log_fn(LOG_DEBUG,"sock %d has pending bytes.",conn->s); return 0; /* has pending bytes to read; don't let poll wait. */ @@ -754,17 +754,17 @@ static int do_hup(void) { return -1; } options = get_options(); - if(authdir_mode(options)) { + if (authdir_mode(options)) { /* reload the approved-routers file */ tor_snprintf(keydir,sizeof(keydir),"%s/approved-routers", options->DataDirectory); log_fn(LOG_INFO,"Reloading approved fingerprints from %s...",keydir); - if(dirserv_parse_fingerprint_file(keydir) < 0) { + if (dirserv_parse_fingerprint_file(keydir) < 0) { log_fn(LOG_WARN, "Error reloading fingerprints. Continuing with old list."); } } /* Fetch a new directory. Even authdirservers do this. */ directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR, NULL); - if(server_mode(options)) { + if (server_mode(options)) { /* Restart cpuworker and dnsworker processes, so they get up-to-date * configuration options. */ cpuworkers_rotate(); @@ -801,21 +801,21 @@ static int do_main_loop(void) { stats_prev_global_write_bucket = global_write_bucket; /* load the routers file, or assign the defaults. */ - if(router_reload_router_list()) { + if (router_reload_router_list()) { return -1; } - if(authdir_mode(get_options())) { + if (authdir_mode(get_options())) { /* the directory is already here, run startup things */ router_retry_connections(); } - if(server_mode(get_options())) { + if (server_mode(get_options())) { /* launch cpuworkers. Need to do this *after* we've read the onion key. */ cpu_init(); } - for(;;) { + for (;;) { #ifdef MS_WINDOWS_SERVICE /* Do service stuff only on windows. */ if (service_status.dwCurrentState == SERVICE_STOP_PENDING) { service_status.dwWin32ExitCode = 0; @@ -826,7 +826,7 @@ static int do_main_loop(void) { #endif #ifndef MS_WINDOWS /* do signal stuff only on unix */ if (please_shutdown) { - if(!server_mode(get_options())) { /* do it now */ + if (!server_mode(get_options())) { /* do it now */ log(LOG_NOTICE,"Interrupt: exiting cleanly."); tor_cleanup(); exit(0); @@ -857,7 +857,7 @@ static int do_main_loop(void) { please_reset = 0; } if (please_reap_children) { - while(waitpid(-1,NULL,WNOHANG) > 0) ; /* keep reaping until no more zombies */ + while (waitpid(-1,NULL,WNOHANG) > 0) ; /* keep reaping until no more zombies */ please_reap_children = 0; } #endif /* signal stuff */ @@ -871,7 +871,7 @@ static int do_main_loop(void) { if (poll_result < 0) { int e = tor_socket_errno(-1); /* let the program survive things like ^z */ - if(e != EINTR) { + if (e != EINTR) { log_fn(LOG_ERR,"poll failed: %s [%d]", tor_socket_strerror(e), e); return -1; @@ -905,7 +905,7 @@ static int do_main_loop(void) { static void catch(int the_signal) { #ifndef MS_WINDOWS /* do signal stuff only on unix */ - switch(the_signal) { + switch (the_signal) { // case SIGABRT: case SIGTERM: log(LOG_ERR,"Catching signal %d, exiting cleanly.", the_signal); @@ -952,12 +952,12 @@ static void dumpstats(int severity) { log(severity, "Dumping stats:"); - for(i=0;i<nfds;i++) { + for (i=0;i<nfds;i++) { conn = connection_array[i]; log(severity, "Conn %d (socket %d) type %d (%s), state %d (%s), created %d secs ago", i, conn->s, conn->type, CONN_TYPE_TO_STRING(conn->type), conn->state, conn_state_to_string[conn->type][conn->state], (int)(now - conn->timestamp_created)); - if(!connection_is_listener(conn)) { + if (!connection_is_listener(conn)) { log(severity,"Conn %d is to '%s:%d'.",i,conn->address, conn->port); log(severity,"Conn %d: %d bytes waiting on inbuf (last read %d secs ago)",i, (int)buf_datalen(conn->inbuf), @@ -1050,7 +1050,7 @@ void handle_signals(int is_parent) #ifdef SIGXFSZ sigaction(SIGXFSZ, &action, NULL); /* handle file-too-big resource exhaustion */ #endif - if(is_parent) + if (is_parent) sigaction(SIGCHLD, &action, NULL); /* handle dns/cpu workers that exit */ #endif /* signal stuff */ } @@ -1081,11 +1081,11 @@ static int tor_init(int argc, char *argv[]) { } #ifndef MS_WINDOWS - if(geteuid()==0) + if (geteuid()==0) log_fn(LOG_WARN,"You are running Tor as root. You don't need to, and you probably shouldn't."); #endif - if(server_mode(get_options())) { /* only spawn dns handlers if we're a router */ + if (server_mode(get_options())) { /* only spawn dns handlers if we're a router */ dns_init(); /* initialize the dns resolve tree, and spawn workers */ } @@ -1101,7 +1101,7 @@ void tor_cleanup(void) { or_options_t *options = get_options(); /* Remove our pid file. We don't care if there was an error when we * unlink, nothing we could do about it anyways. */ - if(options->PidFile && options->command == CMD_RUN_TOR) + if (options->PidFile && options->command == CMD_RUN_TOR) unlink(options->PidFile); crypto_global_cleanup(); if (accounting_is_enabled(options)) @@ -1279,7 +1279,7 @@ int nt_service_install() return 0; } - if((hService = CreateService(hSCManager, GENSRV_SERVICENAME, GENSRV_DISPLAYNAME, + if ((hService = CreateService(hSCManager, GENSRV_SERVICENAME, GENSRV_DISPLAYNAME, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, command, NULL, NULL, NULL, NULL, NULL)) == NULL) { @@ -1319,7 +1319,7 @@ int nt_service_remove() if (result) { while (QueryServiceStatus(hService, &service_status)) { - if(service_status.dwCurrentState == SERVICE_STOP_PENDING) + if (service_status.dwCurrentState == SERVICE_STOP_PENDING) Sleep(500); else break; @@ -1347,9 +1347,9 @@ int tor_main(int argc, char *argv[]) { #ifdef MS_WINDOWS_SERVICE backup_argv = argv; backup_argc = argc; - if((argc >= 2) && !strcmp(argv[1], "-install")) + if ((argc >= 2) && !strcmp(argv[1], "-install")) return nt_service_install(); - if((argc >= 2) && !strcmp(argv[1], "-remove")) + if ((argc >= 2) && !strcmp(argv[1], "-remove")) return nt_service_remove(); nt_service_main(); return 0; diff --git a/src/or/onion.c b/src/or/onion.c index b940bd5390..a5abf3a9a9 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -32,7 +32,7 @@ int onion_pending_add(circuit_t *circ) { tmp = tor_malloc_zero(sizeof(struct onion_queue_t)); tmp->circ = circ; - if(!ol_tail) { + if (!ol_tail) { tor_assert(!ol_list); tor_assert(!ol_length); ol_list = tmp; @@ -44,7 +44,7 @@ int onion_pending_add(circuit_t *circ) { tor_assert(ol_list); tor_assert(!ol_tail->next); - if(ol_length >= get_options()->MaxOnionsPending) { + if (ol_length >= get_options()->MaxOnionsPending) { log_fn(LOG_WARN,"Already have %d onions queued. Closing.", ol_length); tor_free(tmp); return -1; @@ -62,7 +62,7 @@ int onion_pending_add(circuit_t *circ) { circuit_t *onion_next_task(void) { circuit_t *circ; - if(!ol_list) + if (!ol_list) return NULL; /* no onions pending, we're done */ tor_assert(ol_list->circ); @@ -79,28 +79,28 @@ circuit_t *onion_next_task(void) { void onion_pending_remove(circuit_t *circ) { struct onion_queue_t *tmpo, *victim; - if(!ol_list) + if (!ol_list) return; /* nothing here. */ /* first check to see if it's the first entry */ tmpo = ol_list; - if(tmpo->circ == circ) { + if (tmpo->circ == circ) { /* it's the first one. remove it from the list. */ ol_list = tmpo->next; - if(!ol_list) + if (!ol_list) ol_tail = NULL; ol_length--; victim = tmpo; } else { /* we need to hunt through the rest of the list */ - for( ;tmpo->next && tmpo->next->circ != circ; tmpo=tmpo->next) ; - if(!tmpo->next) { + for ( ;tmpo->next && tmpo->next->circ != circ; tmpo=tmpo->next) ; + if (!tmpo->next) { log_fn(LOG_DEBUG,"circ (p_circ_id %d) not in list, probably at cpuworker.",circ->p_circ_id); return; } /* now we know tmpo->next->circ == circ */ victim = tmpo->next; tmpo->next = victim->next; - if(ol_tail == victim) + if (ol_tail == victim) ol_tail = tmpo; ol_length--; } @@ -295,7 +295,7 @@ onion_skin_client_handshake(crypto_dh_env_t *handshake_state, if (len < 0) return -1; - if(memcmp(key_material, handshake_reply+DH_KEY_LEN, 20)) { + if (memcmp(key_material, handshake_reply+DH_KEY_LEN, 20)) { /* H(K) does *not* match. Something fishy. */ tor_free(key_material); log_fn(LOG_WARN,"Digest DOES NOT MATCH on onion handshake. Bug or attack."); diff --git a/src/or/relay.c b/src/or/relay.c index 72a80d0de3..1e257d4f63 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -81,7 +81,7 @@ static int relay_digest_matches(crypto_digest_env_t *digest, cell_t *cell) { crypto_digest_add_bytes(digest, cell->payload, CELL_PAYLOAD_SIZE); crypto_digest_get_digest(digest, calculated_integrity, 4); - if(memcmp(received_integrity, calculated_integrity, 4)) { + if (memcmp(received_integrity, calculated_integrity, 4)) { // log_fn(LOG_INFO,"Recognized=0 but bad digest. Not recognizing."); // (%d vs %d).", received_integrity, calculated_integrity); /* restore digest to its old form */ @@ -110,7 +110,7 @@ static int relay_crypt_one_payload(crypto_cipher_env_t *cipher, char *in, relay_header_unpack(&rh, in); // log_fn(LOG_DEBUG,"before crypt: %d",rh.recognized); - if(( encrypt_mode && crypto_cipher_encrypt(cipher, out, in, CELL_PAYLOAD_SIZE)) || + if (( encrypt_mode && crypto_cipher_encrypt(cipher, out, in, CELL_PAYLOAD_SIZE)) || (!encrypt_mode && crypto_cipher_decrypt(cipher, out, in, CELL_PAYLOAD_SIZE))) { log_fn(LOG_WARN,"Error during relay encryption"); return -1; @@ -143,14 +143,14 @@ int circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, if (circ->marked_for_close) return 0; - if(relay_crypt(circ, cell, cell_direction, &layer_hint, &recognized) < 0) { + if (relay_crypt(circ, cell, cell_direction, &layer_hint, &recognized) < 0) { log_fn(LOG_WARN,"relay crypt failed. Dropping connection."); return -1; } - if(recognized) { + if (recognized) { conn = relay_lookup_conn(circ, cell, cell_direction); - if(cell_direction == CELL_DIRECTION_OUT) { + if (cell_direction == CELL_DIRECTION_OUT) { ++stats_n_relay_cells_delivered; log_fn(LOG_DEBUG,"Sending away from origin."); if (connection_edge_process_relay_cell(cell, circ, conn, NULL) < 0) { @@ -158,7 +158,7 @@ int circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, return -1; } } - if(cell_direction == CELL_DIRECTION_IN) { + if (cell_direction == CELL_DIRECTION_IN) { ++stats_n_relay_cells_delivered; log_fn(LOG_DEBUG,"Sending to origin."); if (connection_edge_process_relay_cell(cell, circ, conn, layer_hint) < 0) { @@ -170,7 +170,7 @@ int circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, } /* not recognized. pass it on. */ - if(cell_direction == CELL_DIRECTION_OUT) { + if (cell_direction == CELL_DIRECTION_OUT) { cell->circ_id = circ->n_circ_id; /* switch it */ conn = circ->n_conn; } else { @@ -178,7 +178,7 @@ int circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, conn = circ->p_conn; } - if(!conn) { + if (!conn) { if (circ->rend_splice && cell_direction == CELL_DIRECTION_OUT) { tor_assert(circ->purpose == CIRCUIT_PURPOSE_REND_ESTABLISHED); tor_assert(circ->rend_splice->purpose == CIRCUIT_PURPOSE_REND_ESTABLISHED); @@ -229,25 +229,25 @@ static int relay_crypt(circuit_t *circ, cell_t *cell, int cell_direction, tor_assert(cell_direction == CELL_DIRECTION_IN || cell_direction == CELL_DIRECTION_OUT); - if(cell_direction == CELL_DIRECTION_IN) { - if(CIRCUIT_IS_ORIGIN(circ)) { /* We're at the beginning of the circuit. + if (cell_direction == CELL_DIRECTION_IN) { + if (CIRCUIT_IS_ORIGIN(circ)) { /* We're at the beginning of the circuit. We'll want to do layered decrypts. */ tor_assert(circ->cpath); thishop = circ->cpath; - if(thishop->state != CPATH_STATE_OPEN) { + if (thishop->state != CPATH_STATE_OPEN) { log_fn(LOG_WARN,"Relay cell before first created cell? Closing."); return -1; } do { /* Remember: cpath is in forward order, that is, first hop first. */ tor_assert(thishop); - if(relay_crypt_one_payload(thishop->b_crypto, cell->payload, 0) < 0) + if (relay_crypt_one_payload(thishop->b_crypto, cell->payload, 0) < 0) return -1; relay_header_unpack(&rh, cell->payload); - if(rh.recognized == 0) { + if (rh.recognized == 0) { /* it's possibly recognized. have to check digest to be sure. */ - if(relay_digest_matches(thishop->b_digest, cell)) { + if (relay_digest_matches(thishop->b_digest, cell)) { *recognized = 1; *layer_hint = thishop; return 0; @@ -255,24 +255,24 @@ static int relay_crypt(circuit_t *circ, cell_t *cell, int cell_direction, } thishop = thishop->next; - } while(thishop != circ->cpath && thishop->state == CPATH_STATE_OPEN); + } while (thishop != circ->cpath && thishop->state == CPATH_STATE_OPEN); log_fn(LOG_WARN,"in-cell at OP not recognized. Closing."); return -1; } else { /* we're in the middle. Just one crypt. */ - if(relay_crypt_one_payload(circ->p_crypto, cell->payload, 1) < 0) + if (relay_crypt_one_payload(circ->p_crypto, cell->payload, 1) < 0) return -1; // log_fn(LOG_DEBUG,"Skipping recognized check, because we're not the OP."); } } else /* cell_direction == CELL_DIRECTION_OUT */ { /* we're in the middle. Just one crypt. */ - if(relay_crypt_one_payload(circ->n_crypto, cell->payload, 0) < 0) + if (relay_crypt_one_payload(circ->n_crypto, cell->payload, 0) < 0) return -1; relay_header_unpack(&rh, cell->payload); if (rh.recognized == 0) { /* it's possibly recognized. have to check digest to be sure. */ - if(relay_digest_matches(circ->n_digest, cell)) { + if (relay_digest_matches(circ->n_digest, cell)) { *recognized = 1; return 0; } @@ -293,9 +293,9 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ, connection_t *conn; /* where to send the cell */ crypt_path_t *thishop; /* counter for repeated crypts */ - if(cell_direction == CELL_DIRECTION_OUT) { + if (cell_direction == CELL_DIRECTION_OUT) { conn = circ->n_conn; - if(!conn) { + if (!conn) { log_fn(LOG_WARN,"outgoing relay cell has n_conn==NULL. Dropping."); return 0; /* just drop it */ } @@ -307,7 +307,7 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ, tor_assert(thishop); log_fn(LOG_DEBUG,"crypting a layer of the relay cell."); - if(relay_crypt_one_payload(thishop->f_crypto, cell->payload, 1) < 0) { + if (relay_crypt_one_payload(thishop->f_crypto, cell->payload, 1) < 0) { return -1; } @@ -316,12 +316,12 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ, } else { /* incoming cell */ conn = circ->p_conn; - if(!conn) { + if (!conn) { log_fn(LOG_WARN,"incoming relay cell has p_conn==NULL. Dropping."); return 0; /* just drop it */ } relay_set_digest(circ->p_digest, cell); - if(relay_crypt_one_payload(circ->p_crypto, cell->payload, 1) < 0) + if (relay_crypt_one_payload(circ->p_crypto, cell->payload, 1) < 0) return -1; } ++stats_n_relay_cells_relayed; @@ -340,29 +340,29 @@ relay_lookup_conn(circuit_t *circ, cell_t *cell, int cell_direction) relay_header_unpack(&rh, cell->payload); - if(!rh.stream_id) + if (!rh.stream_id) return NULL; /* IN or OUT cells could have come from either direction, now * that we allow rendezvous *to* an OP. */ - for(tmpconn = circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) { - if(rh.stream_id == tmpconn->stream_id) { + for (tmpconn = circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) { + if (rh.stream_id == tmpconn->stream_id) { log_fn(LOG_DEBUG,"found conn for stream %d.", rh.stream_id); - if(cell_direction == CELL_DIRECTION_OUT || + if (cell_direction == CELL_DIRECTION_OUT || connection_edge_is_rendezvous_stream(tmpconn)) return tmpconn; } } - for(tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) { - if(rh.stream_id == tmpconn->stream_id) { + for (tmpconn = circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) { + if (rh.stream_id == tmpconn->stream_id) { log_fn(LOG_DEBUG,"found conn for stream %d.", rh.stream_id); return tmpconn; } } - for(tmpconn = circ->resolving_streams; tmpconn; tmpconn=tmpconn->next_stream) { - if(rh.stream_id == tmpconn->stream_id) { + for (tmpconn = circ->resolving_streams; tmpconn; tmpconn=tmpconn->next_stream) { + if (rh.stream_id == tmpconn->stream_id) { log_fn(LOG_DEBUG,"found conn for stream %d.", rh.stream_id); return tmpconn; } @@ -411,7 +411,7 @@ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ, relay_header_t rh; int cell_direction; - if(!circ) { + if (!circ) { log_fn(LOG_WARN,"no circ. Closing conn."); tor_assert(fromconn); fromconn->has_sent_end = 1; /* no circ to send to */ @@ -421,7 +421,7 @@ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ, memset(&cell, 0, sizeof(cell_t)); cell.command = CELL_RELAY; - if(cpath_layer) { + if (cpath_layer) { cell.circ_id = circ->n_circ_id; cell_direction = CELL_DIRECTION_OUT; } else { @@ -431,17 +431,17 @@ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ, memset(&rh, 0, sizeof(rh)); rh.command = relay_command; - if(fromconn) + if (fromconn) rh.stream_id = fromconn->stream_id; /* else it's 0 */ rh.length = payload_len; relay_header_pack(cell.payload, &rh); - if(payload_len) + if (payload_len) memcpy(cell.payload+RELAY_HEADER_SIZE, payload, payload_len); log_fn(LOG_DEBUG,"delivering %d cell %s.", relay_command, cell_direction == CELL_DIRECTION_OUT ? "forward" : "backward"); - if(circuit_package_relay_cell(&cell, circ, cell_direction, cpath_layer) < 0) { + if (circuit_package_relay_cell(&cell, circ, cell_direction, cpath_layer) < 0) { log_fn(LOG_WARN,"circuit_package_relay_cell failed. Closing."); circuit_mark_for_close(circ); return -1; @@ -455,15 +455,15 @@ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ, */ static const char * connection_edge_end_reason(char *payload, uint16_t length) { - if(length < 1) { + if (length < 1) { log_fn(LOG_WARN,"End cell arrived with length 0. Should be at least 1."); return "MALFORMED"; } - if(*payload < _MIN_END_STREAM_REASON || *payload > _MAX_END_STREAM_REASON) { + if (*payload < _MIN_END_STREAM_REASON || *payload > _MAX_END_STREAM_REASON) { log_fn(LOG_WARN,"Reason for ending (%d) not recognized.",*payload); return "MALFORMED"; } - switch(*payload) { + switch (*payload) { case END_STREAM_REASON_MISC: return "misc error"; case END_STREAM_REASON_RESOLVEFAILED: return "resolve failed"; case END_STREAM_REASON_CONNECTFAILED: return "connect failed"; @@ -496,16 +496,16 @@ connection_edge_process_relay_cell_not_open( int reason; routerinfo_t *exitrouter; - if(rh->command == RELAY_COMMAND_END) { + if (rh->command == RELAY_COMMAND_END) { reason = *(cell->payload+RELAY_HEADER_SIZE); /* We have to check this here, since we aren't connected yet. */ if (rh->length >= 5 && reason == END_STREAM_REASON_EXITPOLICY) { - if(conn->type != CONN_TYPE_AP) { + if (conn->type != CONN_TYPE_AP) { log_fn(LOG_WARN,"Got an end because of exitpolicy, but we're not an AP. Closing."); return -1; } addr = ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE+1)); - if(addr) { + if (addr) { log_fn(LOG_INFO,"Address %s refused due to exit policy. Retrying.", conn->socks_request->address); } else { @@ -519,11 +519,11 @@ connection_edge_process_relay_cell_not_open( /* check if he *ought* to have allowed it */ exitrouter = router_get_by_digest(circ->build_state->chosen_exit_digest); - if(!exitrouter) { + if (!exitrouter) { log_fn(LOG_INFO,"Skipping broken circ (exit router vanished)"); return 0; /* this circuit is screwed and doesn't know it yet */ } - if(connection_ap_can_use_exit(conn, exitrouter)) { + if (connection_ap_can_use_exit(conn, exitrouter)) { log_fn(LOG_WARN,"Exitrouter %s seems to be more restrictive than its exit policy. Not using this router as exit for now,", exitrouter->nickname); addr_policy_free(exitrouter->exit_policy); exitrouter->exit_policy = @@ -532,7 +532,7 @@ connection_edge_process_relay_cell_not_open( conn->state = AP_CONN_STATE_CIRCUIT_WAIT; circuit_detach_stream(circ,conn); - if(connection_ap_handshake_attach_circuit(conn) >= 0) + if (connection_ap_handshake_attach_circuit(conn) >= 0) return 0; log_fn(LOG_INFO,"Giving up on retrying (from exitpolicy); conn can't be handled."); /* else, conn will get closed below */ @@ -549,7 +549,7 @@ connection_edge_process_relay_cell_not_open( circ->timestamp_dirty -= get_options()->NewCircuitPeriod; /* make sure not to expire/retry the stream quite yet */ conn->timestamp_lastread = time(NULL); - if(connection_ap_handshake_attach_circuit(conn) >= 0) + if (connection_ap_handshake_attach_circuit(conn) >= 0) return 0; /* else, conn will get closed below */ log_fn(LOG_INFO,"Giving up on retrying (from resolvefailed); conn can't be handled."); @@ -560,15 +560,15 @@ connection_edge_process_relay_cell_not_open( } log_fn(LOG_INFO,"Edge got end (%s) before we're connected. Marking for close.", connection_edge_end_reason(cell->payload+RELAY_HEADER_SIZE, rh->length)); - if(CIRCUIT_IS_ORIGIN(circ)) + if (CIRCUIT_IS_ORIGIN(circ)) circuit_log_path(LOG_INFO,circ); conn->has_sent_end = 1; /* we just got an 'end', don't need to send one */ connection_mark_for_close(conn); return 0; } - if(conn->type == CONN_TYPE_AP && rh->command == RELAY_COMMAND_CONNECTED) { - if(conn->state != AP_CONN_STATE_CONNECT_WAIT) { + if (conn->type == CONN_TYPE_AP && rh->command == RELAY_COMMAND_CONNECTED) { + if (conn->state != AP_CONN_STATE_CONNECT_WAIT) { log_fn(LOG_WARN,"Got 'connected' while not in state connect_wait. Dropping."); return 0; } @@ -578,7 +578,7 @@ connection_edge_process_relay_cell_not_open( (int)(time(NULL) - conn->timestamp_lastread)); if (rh->length >= 4) { addr = ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE)); - if(!addr) { + if (!addr) { log_fn(LOG_INFO,"...but it claims the IP address was 0.0.0.0. Closing."); connection_edge_end(conn, END_STREAM_REASON_MISC, conn->cpath_layer); connection_mark_for_close(conn); @@ -597,7 +597,7 @@ connection_edge_process_relay_cell_not_open( } return 0; } - if(conn->type == CONN_TYPE_AP && rh->command == RELAY_COMMAND_RESOLVED) { + if (conn->type == CONN_TYPE_AP && rh->command == RELAY_COMMAND_RESOLVED) { if (conn->state != AP_CONN_STATE_RESOLVE_WAIT) { log_fn(LOG_WARN,"Got a 'resolved' cell while not in state resolve_wait. Dropping."); return 0; @@ -654,14 +654,14 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, /* either conn is NULL, in which case we've got a control cell, or else * conn points to the recognized stream. */ - if(conn && + if (conn && conn->state != AP_CONN_STATE_OPEN && conn->state != EXIT_CONN_STATE_OPEN) { return connection_edge_process_relay_cell_not_open( &rh, cell, circ, conn, layer_hint); } - switch(rh.command) { + switch (rh.command) { case RELAY_COMMAND_DROP: log_fn(LOG_INFO,"Got a relay-level padding cell. Dropping."); return 0; @@ -671,7 +671,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, log_fn(LOG_WARN,"relay begin request unsupported at AP. Dropping."); return 0; } - if(conn) { + if (conn) { log_fn(LOG_WARN,"begin cell for known stream. Dropping."); return 0; } @@ -679,7 +679,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, return 0; case RELAY_COMMAND_DATA: ++stats_n_data_cells_received; - if((layer_hint && --layer_hint->deliver_window < 0) || + if ((layer_hint && --layer_hint->deliver_window < 0) || (!layer_hint && --circ->deliver_window < 0)) { log_fn(LOG_WARN,"(relay data) circ deliver_window below 0. Killing."); connection_edge_end(conn, END_STREAM_REASON_MISC, conn->cpath_layer); @@ -691,18 +691,18 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, circuit_consider_sending_sendme(circ, layer_hint); - if(!conn) { + if (!conn) { log_fn(LOG_INFO,"data cell dropped, unknown stream."); return 0; } - if(--conn->deliver_window < 0) { /* is it below 0 after decrement? */ + if (--conn->deliver_window < 0) { /* is it below 0 after decrement? */ log_fn(LOG_WARN,"(relay data) conn deliver_window below 0. Killing."); return -1; /* somebody's breaking protocol. kill the whole circuit. */ } stats_n_data_bytes_received += rh.length; - if(conn->type == CONN_TYPE_AP) { + if (conn->type == CONN_TYPE_AP) { conn->stream_size += rh.length; log_fn(LOG_DEBUG,"%d: stream size now %d.", conn->s, (int)conn->stream_size); } @@ -711,7 +711,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection_edge_consider_sending_sendme(conn); return 0; case RELAY_COMMAND_END: - if(!conn) { + if (!conn) { log_fn(LOG_INFO,"end cell (%s) dropped, unknown stream.", connection_edge_end_reason(cell->payload+RELAY_HEADER_SIZE, rh.length)); return 0; @@ -734,7 +734,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, #else /* We just *got* an end; no reason to send one. */ conn->has_sent_end = 1; - if(!conn->marked_for_close) { + if (!conn->marked_for_close) { /* only mark it if not already marked. it's possible to * get the 'end' right around when the client hangs up on us. */ connection_mark_for_close(conn); @@ -743,18 +743,18 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, #endif return 0; case RELAY_COMMAND_EXTEND: - if(conn) { + if (conn) { log_fn(LOG_WARN,"'extend' for non-zero stream. Dropping."); return 0; } return circuit_extend(cell, circ); case RELAY_COMMAND_EXTENDED: - if(!layer_hint) { + if (!layer_hint) { log_fn(LOG_WARN,"'extended' unsupported at non-origin. Dropping."); return 0; } log_fn(LOG_DEBUG,"Got an extended cell! Yay."); - if(circuit_finish_handshake(circ, cell->payload+RELAY_HEADER_SIZE) < 0) { + if (circuit_finish_handshake(circ, cell->payload+RELAY_HEADER_SIZE) < 0) { log_fn(LOG_WARN,"circuit_finish_handshake failed."); return -1; } @@ -764,11 +764,11 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, } return 0; case RELAY_COMMAND_TRUNCATE: - if(layer_hint) { + if (layer_hint) { log_fn(LOG_WARN,"'truncate' unsupported at origin. Dropping."); return 0; } - if(circ->n_conn) { + if (circ->n_conn) { connection_send_destroy(circ->n_circ_id, circ->n_conn); circ->n_conn = NULL; } @@ -777,22 +777,22 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, NULL, 0, NULL); return 0; case RELAY_COMMAND_TRUNCATED: - if(!layer_hint) { + if (!layer_hint) { log_fn(LOG_WARN,"'truncated' unsupported at non-origin. Dropping."); return 0; } circuit_truncated(circ, layer_hint); return 0; case RELAY_COMMAND_CONNECTED: - if(conn) { + if (conn) { log_fn(LOG_WARN,"'connected' unsupported while open. Closing circ."); return -1; } log_fn(LOG_INFO,"'connected' received, no conn attached anymore. Ignoring."); return 0; case RELAY_COMMAND_SENDME: - if(!conn) { - if(layer_hint) { + if (!conn) { + if (layer_hint) { layer_hint->package_window += CIRCWINDOW_INCREMENT; log_fn(LOG_DEBUG,"circ-level sendme at origin, packagewindow %d.", layer_hint->package_window); @@ -825,7 +825,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection_exit_begin_resolve(cell, circ); return 0; case RELAY_COMMAND_RESOLVED: - if(conn) { + if (conn) { log_fn(LOG_WARN,"'resolved' unsupported while open. Closing circ."); return -1; } @@ -870,15 +870,15 @@ int connection_edge_package_raw_inbuf(connection_t *conn, int package_partial) { repeat_connection_edge_package_raw_inbuf: circ = circuit_get_by_conn(conn); - if(!circ) { + if (!circ) { log_fn(LOG_INFO,"conn has no circuits! Closing."); return -1; } - if(circuit_consider_stop_edge_reading(circ, conn->cpath_layer)) + if (circuit_consider_stop_edge_reading(circ, conn->cpath_layer)) return 0; - if(conn->package_window <= 0) { + if (conn->package_window <= 0) { log_fn(LOG_INFO,"called with package_window %d. Skipping.", conn->package_window); connection_stop_reading(conn); return 0; @@ -909,11 +909,11 @@ repeat_connection_edge_package_raw_inbuf: log_fn(LOG_DEBUG,"%d: Stream size now %d.", conn->s, (int)conn->stream_size); } - if(connection_edge_send_command(conn, circ, RELAY_COMMAND_DATA, + if (connection_edge_send_command(conn, circ, RELAY_COMMAND_DATA, payload, length, conn->cpath_layer) < 0) return 0; /* circuit is closed, don't continue */ - if(!conn->cpath_layer) { /* non-rendezvous exit */ + if (!conn->cpath_layer) { /* non-rendezvous exit */ tor_assert(circ->package_window > 0); circ->package_window--; } else { /* we're an AP, or an exit on a rendezvous circ */ @@ -921,7 +921,7 @@ repeat_connection_edge_package_raw_inbuf: conn->cpath_layer->package_window--; } - if(--conn->package_window <= 0) { /* is it 0 after decrement? */ + if (--conn->package_window <= 0) { /* is it 0 after decrement? */ connection_stop_reading(conn); log_fn(LOG_DEBUG,"conn->package_window reached 0."); circuit_consider_stop_edge_reading(circ, conn->cpath_layer); @@ -942,21 +942,21 @@ repeat_connection_edge_package_raw_inbuf: void connection_edge_consider_sending_sendme(connection_t *conn) { circuit_t *circ; - if(connection_outbuf_too_full(conn)) + if (connection_outbuf_too_full(conn)) return; circ = circuit_get_by_conn(conn); - if(!circ) { + if (!circ) { /* this can legitimately happen if the destroy has already * arrived and torn down the circuit */ log_fn(LOG_INFO,"No circuit associated with conn. Skipping."); return; } - while(conn->deliver_window < STREAMWINDOW_START - STREAMWINDOW_INCREMENT) { + while (conn->deliver_window < STREAMWINDOW_START - STREAMWINDOW_INCREMENT) { log_fn(LOG_DEBUG,"Outbuf %d, Queueing stream sendme.", (int)conn->outbuf_flushlen); conn->deliver_window += STREAMWINDOW_INCREMENT; - if(connection_edge_send_command(conn, circ, RELAY_COMMAND_SENDME, + if (connection_edge_send_command(conn, circ, RELAY_COMMAND_SENDME, NULL, 0, conn->cpath_layer) < 0) { log_fn(LOG_WARN,"connection_edge_send_command failed. Returning."); return; /* the circuit's closed, don't continue */ @@ -976,7 +976,7 @@ circuit_resume_edge_reading(circuit_t *circ, crypt_path_t *layer_hint) log_fn(LOG_DEBUG,"resuming"); /* have to check both n_streams and p_streams, to handle rendezvous */ - if(circuit_resume_edge_reading_helper(circ->n_streams, circ, layer_hint) >= 0) + if (circuit_resume_edge_reading_helper(circ->n_streams, circ, layer_hint) >= 0) circuit_resume_edge_reading_helper(circ->p_streams, circ, layer_hint); } @@ -989,8 +989,8 @@ circuit_resume_edge_reading_helper(connection_t *conn, circuit_t *circ, crypt_path_t *layer_hint) { - for( ; conn; conn=conn->next_stream) { - if((!layer_hint && conn->package_window > 0) || + for ( ; conn; conn=conn->next_stream) { + if ((!layer_hint && conn->package_window > 0) || (layer_hint && conn->package_window > 0 && conn->cpath_layer == layer_hint)) { connection_start_reading(conn); /* handle whatever might still be on the inbuf */ @@ -999,7 +999,7 @@ circuit_resume_edge_reading_helper(connection_t *conn, /* If the circuit won't accept any more data, return without looking * at any more of the streams. Any connections that should be stopped * have already been stopped by connection_edge_package_raw_inbuf. */ - if(circuit_consider_stop_edge_reading(circ, layer_hint)) + if (circuit_consider_stop_edge_reading(circ, layer_hint)) return -1; } } @@ -1021,7 +1021,7 @@ circuit_consider_stop_edge_reading(circuit_t *circ, crypt_path_t *layer_hint) log_fn(LOG_DEBUG,"considering circ->package_window %d", circ->package_window); if (circ->package_window <= 0) { log_fn(LOG_DEBUG,"yes, not-at-origin. stopped."); - for(conn = circ->n_streams; conn; conn=conn->next_stream) + for (conn = circ->n_streams; conn; conn=conn->next_stream) connection_stop_reading(conn); return 1; } @@ -1031,11 +1031,11 @@ circuit_consider_stop_edge_reading(circuit_t *circ, crypt_path_t *layer_hint) log_fn(LOG_DEBUG,"considering layer_hint->package_window %d", layer_hint->package_window); if (layer_hint->package_window <= 0) { log_fn(LOG_DEBUG,"yes, at-origin. stopped."); - for(conn = circ->n_streams; conn; conn=conn->next_stream) - if(conn->cpath_layer == layer_hint) + for (conn = circ->n_streams; conn; conn=conn->next_stream) + if (conn->cpath_layer == layer_hint) connection_stop_reading(conn); - for(conn = circ->p_streams; conn; conn=conn->next_stream) - if(conn->cpath_layer == layer_hint) + for (conn = circ->p_streams; conn; conn=conn->next_stream) + if (conn->cpath_layer == layer_hint) connection_stop_reading(conn); return 1; } @@ -1053,14 +1053,14 @@ circuit_consider_sending_sendme(circuit_t *circ, crypt_path_t *layer_hint) { // log_fn(LOG_INFO,"Considering: layer_hint is %s", // layer_hint ? "defined" : "null"); - while((layer_hint ? layer_hint->deliver_window : circ->deliver_window) < + while ((layer_hint ? layer_hint->deliver_window : circ->deliver_window) < CIRCWINDOW_START - CIRCWINDOW_INCREMENT) { log_fn(LOG_DEBUG,"Queueing circuit sendme."); - if(layer_hint) + if (layer_hint) layer_hint->deliver_window += CIRCWINDOW_INCREMENT; else circ->deliver_window += CIRCWINDOW_INCREMENT; - if(connection_edge_send_command(NULL, circ, RELAY_COMMAND_SENDME, + if (connection_edge_send_command(NULL, circ, RELAY_COMMAND_SENDME, NULL, 0, layer_hint) < 0) { log_fn(LOG_WARN,"connection_edge_send_command failed. Circuit's closed."); return; /* the circuit's closed, don't continue */ diff --git a/src/or/rendclient.c b/src/or/rendclient.c index 976ed97706..8ed8509511 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -64,7 +64,7 @@ rend_client_send_introduction(circuit_t *introcirc, circuit_t *rendcirc) { tor_assert(rendcirc->purpose == CIRCUIT_PURPOSE_C_REND_READY); tor_assert(!rend_cmp_service_ids(introcirc->rend_query, rendcirc->rend_query)); - if(rend_cache_lookup_entry(introcirc->rend_query, &entry) < 1) { + if (rend_cache_lookup_entry(introcirc->rend_query, &entry) < 1) { log_fn(LOG_WARN,"query '%s' didn't have valid rend desc in cache. Failing.", introcirc->rend_query); goto err; @@ -191,7 +191,7 @@ rend_client_introduction_acked(circuit_t *circ, log_fn(LOG_INFO,"Received ack. Telling rend circ."); rendcirc = circuit_get_by_rend_query_and_purpose( circ->rend_query, CIRCUIT_PURPOSE_C_REND_READY); - if(rendcirc) { /* remember the ack */ + if (rendcirc) { /* remember the ack */ rendcirc->purpose = CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED; } /* close the circuit: we won't need it anymore. */ @@ -204,7 +204,7 @@ rend_client_introduction_acked(circuit_t *circ, * points. If any remain, extend to a new one and try again. * If none remain, refetch the service descriptor. */ - if(rend_client_remove_intro_point(circ->build_state->chosen_exit_name, + if (rend_client_remove_intro_point(circ->build_state->chosen_exit_name, circ->rend_query) > 0) { /* There are introduction points left. re-extend the circuit to * another intro point and try again. */ @@ -242,7 +242,7 @@ rend_client_introduction_acked(circuit_t *circ, void rend_client_refetch_renddesc(const char *query) { - if(connection_get_by_type_rendquery(CONN_TYPE_DIR, query)) { + if (connection_get_by_type_rendquery(CONN_TYPE_DIR, query)) { log_fn(LOG_INFO,"Would fetch a new renddesc here (for %s), but one is already in progress.", query); } else { /* not one already; initiate a dir rend desc lookup */ @@ -282,7 +282,7 @@ rend_client_remove_intro_point(char *failed_intro, const char *query) } } - if(!ent->parsed->n_intro_points) { + if (!ent->parsed->n_intro_points) { log_fn(LOG_INFO,"No more intro points remain for %s. Re-fetching descriptor.", query); rend_client_refetch_renddesc(query); return 0; @@ -298,7 +298,7 @@ int rend_client_rendezvous_acked(circuit_t *circ, const char *request, size_t request_len) { /* we just got an ack for our establish-rendezvous. switch purposes. */ - if(circ->purpose != CIRCUIT_PURPOSE_C_ESTABLISH_REND) { + if (circ->purpose != CIRCUIT_PURPOSE_C_ESTABLISH_REND) { log_fn(LOG_WARN,"Got a rendezvous ack when we weren't expecting one. Closing circ."); circuit_mark_for_close(circ); return -1; @@ -315,7 +315,7 @@ rend_client_receive_rendezvous(circuit_t *circ, const char *request, size_t requ crypt_path_t *hop; char keys[DIGEST_LEN+CPATH_KEY_MATERIAL_LEN]; - if( (circ->purpose != CIRCUIT_PURPOSE_C_REND_READY && + if ( (circ->purpose != CIRCUIT_PURPOSE_C_REND_READY && circ->purpose != CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) || !circ->build_state->pending_final_cpath) { log_fn(LOG_WARN,"Got rendezvous2 cell from Bob, but not expecting it. Closing."); @@ -388,7 +388,7 @@ void rend_client_desc_fetched(char *query, int status) { if (rend_cmp_service_ids(conn->rend_query, query)) continue; /* great, this guy was waiting */ - if(status!=0 || + if (status!=0 || rend_cache_lookup_entry(conn->rend_query, &entry) == 1) { /* either this fetch worked, or it failed but there was a * valid entry from before which we should reuse */ @@ -418,7 +418,7 @@ char *rend_client_get_random_intro(char *query) { char *nickname; rend_cache_entry_t *entry; - if(rend_cache_lookup_entry(query, &entry) < 1) { + if (rend_cache_lookup_entry(query, &entry) < 1) { log_fn(LOG_WARN,"query '%s' didn't have valid rend desc in cache. Failing.", query); return NULL; } @@ -426,11 +426,11 @@ char *rend_client_get_random_intro(char *query) { sl = smartlist_create(); /* add the intro point nicknames */ - for(i=0;i<entry->parsed->n_intro_points;i++) + for (i=0;i<entry->parsed->n_intro_points;i++) smartlist_add(sl,entry->parsed->intro_points[i]); choice = smartlist_choose(sl); - if(!choice) { + if (!choice) { smartlist_free(sl); return NULL; } @@ -448,15 +448,15 @@ int rend_parse_rendezvous_address(char *address) { char query[REND_SERVICE_ID_LEN+1]; s = strrchr(address,'.'); - if(!s) return -1; /* no dot */ + if (!s) return -1; /* no dot */ if (strcasecmp(s+1,"onion")) return -1; /* not .onion */ *s = 0; /* null terminate it */ - if(strlcpy(query, address, REND_SERVICE_ID_LEN+1) >= REND_SERVICE_ID_LEN+1) + if (strlcpy(query, address, REND_SERVICE_ID_LEN+1) >= REND_SERVICE_ID_LEN+1) goto failed; tor_strlower(query); - if(rend_valid_service_id(query)) { + if (rend_valid_service_id(query)) { tor_strlower(address); return 0; /* success */ } diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c index a899d144f0..a50262ecce 100644 --- a/src/or/rendcommon.c +++ b/src/or/rendcommon.c @@ -196,7 +196,7 @@ void rend_cache_clean(void) /** Return true iff <b>query</b> is a syntactically valid service ID (as * generated by rend_get_service_id). */ int rend_valid_service_id(const char *query) { - if(strlen(query) != REND_SERVICE_ID_LEN) + if (strlen(query) != REND_SERVICE_ID_LEN) return 0; if (strspn(query, BASE32_CHARS) != REND_SERVICE_ID_LEN) @@ -306,7 +306,7 @@ void rend_process_relay_cell(circuit_t *circ, int command, size_t length, const char *payload) { int r; - switch(command) { + switch (command) { case RELAY_COMMAND_ESTABLISH_INTRO: r = rend_mid_establish_intro(circ,payload,length); break; diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 86e2ac7221..000e23563d 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -266,7 +266,7 @@ static void rend_service_update_descriptor(rend_service_t *service) d->intro_points = tor_malloc(sizeof(char*)*n); for (i=0; i < n; ++i) { router = router_get_by_nickname(smartlist_get(service->intro_nodes, i)); - if(!router) { + if (!router) { log_fn(LOG_WARN,"Router '%s' not found. Skipping.", (char*)smartlist_get(service->intro_nodes, i)); continue; @@ -457,12 +457,12 @@ rend_service_introduce(circuit_t *circuit, const char *request, size_t request_l /* Launch a circuit to alice's chosen rendezvous point. */ - for(i=0;i<MAX_REND_FAILURES;i++) { + for (i=0;i<MAX_REND_FAILURES;i++) { launched = circuit_launch_by_nickname(CIRCUIT_PURPOSE_S_CONNECT_REND, rp_nickname); if (launched) break; } - if(!launched) { /* give up */ + if (!launched) { /* give up */ log_fn(LOG_WARN,"Giving up launching first hop of circuit to rendezvous point '%s' for service %s", rp_nickname, serviceid); goto err; @@ -514,7 +514,7 @@ rend_service_relaunch_rendezvous(circuit_t *oldcirc) oldstate = oldcirc->build_state; tor_assert(oldstate); - if(oldstate->pending_final_cpath == NULL) { + if (oldstate->pending_final_cpath == NULL) { log_fn(LOG_INFO,"Skipping relaunch of circ that failed on its first hop. Initiator will retry."); return; } diff --git a/src/or/rephist.c b/src/or/rephist.c index d629e58dfa..97ef823e08 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -195,7 +195,7 @@ void rep_hist_note_disconnect(const char* id, time_t when) void rep_hist_note_connection_died(const char* id, time_t when) { or_history_t *hist; - if(!id) { + if (!id) { /* XXXX009 Well, everybody has an ID now. Hm. */ /* If conn has no nickname, it's either an OP, or it is an OR * which didn't complete its handshake (or did and was unapproved). diff --git a/src/or/router.c b/src/or/router.c index a63b58f86d..f24e2bdcc8 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -190,7 +190,7 @@ crypto_pk_env_t *init_key_from_file(const char *fname) goto error; } - switch(file_status(fname)) { + switch (file_status(fname)) { case FN_DIR: case FN_ERROR: log(LOG_ERR, "Can't read key from %s", fname); @@ -314,7 +314,7 @@ int init_keys(void) { log_fn(LOG_ERR, "Error initializing descriptor."); return -1; } - if(authdir_mode(options)) { + if (authdir_mode(options)) { /* We need to add our own fingerprint so it gets recognized. */ if (dirserv_add_own_fingerprint(options->Nickname, get_identity_key())) { log_fn(LOG_ERR, "Error adding own fingerprint to approved set"); @@ -345,12 +345,12 @@ int init_keys(void) { strlcat(fingerprint, "\n", sizeof(fingerprint)); if (write_str_to_file(keydir, fingerprint, 0)) return -1; - if(!authdir_mode(options)) + if (!authdir_mode(options)) return 0; /* 6. [authdirserver only] load approved-routers file */ tor_snprintf(keydir,sizeof(keydir),"%s/approved-routers", datadir); log_fn(LOG_INFO,"Loading approved fingerprints from %s...",keydir); - if(dirserv_parse_fingerprint_file(keydir) < 0) { + if (dirserv_parse_fingerprint_file(keydir) < 0) { log_fn(LOG_ERR, "Error loading fingerprints"); return -1; } @@ -363,10 +363,10 @@ int init_keys(void) { tor_snprintf(keydir,sizeof(keydir),"%s/cached-directory", datadir); log_fn(LOG_INFO,"Loading cached directory from %s...",keydir); cp = read_file_to_str(keydir,0); - if(!cp) { + if (!cp) { log_fn(LOG_INFO,"Cached directory %s not present. Ok.",keydir); } else { - if(dirserv_load_from_directory_string(cp) < 0) { + if (dirserv_load_from_directory_string(cp) < 0) { log_fn(LOG_ERR, "Cached directory %s is corrupt", keydir); tor_free(cp); return -1; @@ -397,11 +397,11 @@ void router_retry_connections(void) { if (!rl) return; for (i=0;i < smartlist_len(rl->routers);i++) { router = smartlist_get(rl->routers, i); - if(router_is_me(router)) + if (router_is_me(router)) continue; - if(!clique_mode(options) && !router_is_clique_mode(router)) + if (!clique_mode(options) && !router_is_clique_mode(router)) continue; - if(!connection_get_by_identity_digest(router->identity_digest, + if (!connection_get_by_identity_digest(router->identity_digest, CONN_TYPE_OR)) { /* not in the list */ log_fn(LOG_DEBUG,"connecting to OR at %s:%u.",router->address,router->or_port); @@ -411,7 +411,7 @@ void router_retry_connections(void) { } int router_is_clique_mode(routerinfo_t *router) { - if(router_digest_is_trusted_dir(router->identity_digest)) + if (router_digest_is_trusted_dir(router->identity_digest)) return 1; return 0; } @@ -495,7 +495,7 @@ int router_is_me(routerinfo_t *router) { routerinfo_t *me = router_get_my_routerinfo(); tor_assert(router); - if(!me || memcmp(me->identity_digest, router->identity_digest, DIGEST_LEN)) + if (!me || memcmp(me->identity_digest, router->identity_digest, DIGEST_LEN)) return 0; return 1; } @@ -539,7 +539,7 @@ int router_rebuild_descriptor(int force) { if (!desc_is_dirty && !force) return 0; - if(resolve_my_address(options->Address, &addr) < 0) { + if (resolve_my_address(options->Address, &addr) < 0) { log_fn(LOG_WARN,"options->Address didn't resolve into an IP."); return -1; } @@ -565,7 +565,7 @@ int router_rebuild_descriptor(int force) { ri->bandwidthburst = (int)options->BandwidthBurst; ri->bandwidthcapacity = router_get_bandwidth_capacity(); router_add_exit_policy_from_config(ri); - if(desc_routerinfo) /* inherit values */ + if (desc_routerinfo) /* inherit values */ ri->is_verified = desc_routerinfo->is_verified; if (options->MyFamily) { ri->declared_family = smartlist_create(); @@ -649,14 +649,14 @@ int router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router, } /* PEM-encode the onion key */ - if(crypto_pk_write_public_key_to_string(router->onion_pkey, + if (crypto_pk_write_public_key_to_string(router->onion_pkey, &onion_pkey,&onion_pkeylen)<0) { log_fn(LOG_WARN,"write onion_pkey to string failed!"); return -1; } /* PEM-encode the identity key key */ - if(crypto_pk_write_public_key_to_string(router->identity_pkey, + if (crypto_pk_write_public_key_to_string(router->identity_pkey, &identity_pkey,&identity_pkeylen)<0) { log_fn(LOG_WARN,"write identity_pkey to string failed!"); tor_free(onion_pkey); @@ -709,7 +709,7 @@ int router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router, tor_free(identity_pkey); tor_free(bandwidth_usage); - if(result < 0 || (size_t)result >= maxlen) { + if (result < 0 || (size_t)result >= maxlen) { /* apparently different glibcs do different things on tor_snprintf error.. so check both */ return -1; } @@ -725,13 +725,13 @@ int router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router, } /* Write the exit policy to the end of 's'. */ - for(tmpe=router->exit_policy; tmpe; tmpe=tmpe->next) { + for (tmpe=router->exit_policy; tmpe; tmpe=tmpe->next) { in.s_addr = htonl(tmpe->addr); /* Write: "accept 1.2.3.4" */ result = tor_snprintf(s+written, maxlen-written, "%s %s", tmpe->policy_type == ADDR_POLICY_ACCEPT ? "accept" : "reject", tmpe->msk == 0 ? "*" : inet_ntoa(in)); - if(result < 0 || result+written > maxlen) { + if (result < 0 || result+written > maxlen) { /* apparently different glibcs do different things on tor_snprintf error.. so check both */ return -1; } diff --git a/src/or/routerlist.c b/src/or/routerlist.c index fcb1027170..a759ae3b61 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -61,7 +61,7 @@ int router_reload_router_list(void) if (router_load_routerlist_from_directory(s, NULL, is_recent) < 0) { log_fn(LOG_WARN, "Cached directory at '%s' was unparseable; ignoring.", filename); } - if(routerlist && + if (routerlist && ((routerlist->published_on > time(NULL) - OLD_MIN_ONION_KEY_LIFETIME/2) || is_recent)) { /* XXX use new onion key lifetime when 0.0.8 servers are obsolete */ @@ -96,7 +96,7 @@ routerinfo_t *router_pick_directory_server(int requireothers, return NULL; choice = router_pick_directory_server_impl(requireothers, fascistfirewall); - if(choice) + if (choice) return choice; log_fn(LOG_INFO,"No reachable router entries for dirservers. Trying them all again."); @@ -104,13 +104,13 @@ routerinfo_t *router_pick_directory_server(int requireothers, mark_all_trusteddirservers_up(); /* try again */ choice = router_pick_directory_server_impl(requireothers, fascistfirewall); - if(choice) + if (choice) return choice; log_fn(LOG_INFO,"Still no %s router entries. Reloading and trying again.", get_options()->FascistFirewall ? "reachable" : "known"); has_fetched_directory=0; /* reset it */ - if(router_reload_router_list()) { + if (router_reload_router_list()) { return NULL; } /* give it one last try */ @@ -123,7 +123,7 @@ trusted_dir_server_t *router_pick_trusteddirserver(int requireothers, trusted_dir_server_t *choice; choice = router_pick_trusteddirserver_impl(requireothers, fascistfirewall); - if(choice) + if (choice) return choice; log_fn(LOG_INFO,"No trusted dirservers are reachable. Trying them all again."); @@ -131,13 +131,13 @@ trusted_dir_server_t *router_pick_trusteddirserver(int requireothers, mark_all_trusteddirservers_up(); /* try again */ choice = router_pick_trusteddirserver_impl(requireothers, fascistfirewall); - if(choice) + if (choice) return choice; log_fn(LOG_WARN,"Still no dirservers %s. Reloading and trying again.", get_options()->FascistFirewall ? "reachable" : "known"); has_fetched_directory=0; /* reset it */ - if(router_reload_router_list()) { + if (router_reload_router_list()) { return NULL; } /* give it one last try */ @@ -156,21 +156,21 @@ router_pick_directory_server_impl(int requireothers, int fascistfirewall) smartlist_t *sl; char buf[16]; - if(!routerlist) + if (!routerlist) return NULL; - if(get_options()->HttpProxy) + if (get_options()->HttpProxy) fascistfirewall = 0; /* Find all the running dirservers we know about. */ sl = smartlist_create(); - for(i=0;i< smartlist_len(routerlist->routers); i++) { + for (i=0;i< smartlist_len(routerlist->routers); i++) { router = smartlist_get(routerlist->routers, i); - if(!router->is_running || !router->dir_port) + if (!router->is_running || !router->dir_port) continue; - if(requireothers && router_is_me(router)) + if (requireothers && router_is_me(router)) continue; - if(fascistfirewall) { + if (fascistfirewall) { tor_snprintf(buf,sizeof(buf),"%d",router->dir_port); if (!smartlist_string_isin(get_options()->FirewallPorts, buf)) continue; @@ -196,7 +196,7 @@ router_pick_trusteddirserver_impl(int requireother, int fascistfirewall) if (!trusted_dir_servers) return NULL; - if(get_options()->HttpProxy) + if (get_options()->HttpProxy) fascistfirewall = 0; SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, d, @@ -220,9 +220,9 @@ router_pick_trusteddirserver_impl(int requireother, int fascistfirewall) /** Go through and mark the auth dirservers as up */ static void mark_all_trusteddirservers_up(void) { - if(routerlist) { + if (routerlist) { SMARTLIST_FOREACH(routerlist->routers, routerinfo_t *, router, - if(router_digest_is_trusted_dir(router->identity_digest)) { + if (router_digest_is_trusted_dir(router->identity_digest)) { tor_assert(router->dir_port > 0); router->is_running = 1; router->status_set_at = time(NULL); @@ -286,7 +286,7 @@ add_nickname_list_to_smartlist(smartlist_t *sl, const char *list, int warn_if_do routerinfo_t *router; smartlist_t *nickname_list; - if(!list) + if (!list) return; /* nothing to do */ tor_assert(sl); @@ -324,7 +324,7 @@ router_nickname_is_in_list(routerinfo_t *router, const char *list) smartlist_t *nickname_list; int v = 0; - if(!list) + if (!list) return 0; /* definitely not */ tor_assert(router); @@ -348,12 +348,12 @@ router_add_running_routers_to_smartlist(smartlist_t *sl, int allow_unverified, routerinfo_t *router; int i; - if(!routerlist) + if (!routerlist) return; - for(i=0;i<smartlist_len(routerlist->routers);i++) { + for (i=0;i<smartlist_len(routerlist->routers);i++) { router = smartlist_get(routerlist->routers, i); - if(router->is_running && + if (router->is_running && (router->is_verified || (allow_unverified && !router_is_unreliable_router(router, preferuptime, preferbandwidth)))) { @@ -370,12 +370,12 @@ routerlist_find_my_routerinfo(void) { routerinfo_t *router; int i; - if(!routerlist) + if (!routerlist) return NULL; - for(i=0;i<smartlist_len(routerlist->routers);i++) { + for (i=0;i<smartlist_len(routerlist->routers);i++) { router = smartlist_get(routerlist->routers, i); - if(router_is_me(router)) + if (router_is_me(router)) return router; } return NULL; @@ -390,9 +390,9 @@ routerlist_find_my_routerinfo(void) { int router_is_unreliable_router(routerinfo_t *router, int need_uptime, int need_bw) { - if(need_uptime && router->uptime < ROUTER_REQUIRED_MIN_UPTIME) + if (need_uptime && router->uptime < ROUTER_REQUIRED_MIN_UPTIME) return 1; - if(need_bw && router->bandwidthcapacity < ROUTER_REQUIRED_MIN_BANDWIDTH) + if (need_bw && router->bandwidthcapacity < ROUTER_REQUIRED_MIN_BANDWIDTH) return 1; return 0; } @@ -405,7 +405,7 @@ routerlist_sl_remove_unreliable_routers(smartlist_t *sl) for (i = 0; i < smartlist_len(sl); ++i) { router = smartlist_get(sl, i); - if(router_is_unreliable_router(router, 1, 0)) { + if (router_is_unreliable_router(router, 1, 0)) { log(LOG_DEBUG, "Router '%s' has insufficient uptime; deleting.", router->nickname); smartlist_del(sl, i--); @@ -427,7 +427,7 @@ routerlist_sl_choose_by_bandwidth(smartlist_t *sl) router = smartlist_get(sl, i); this_bw = (router->bandwidthcapacity < router->bandwidthrate) ? router->bandwidthcapacity : router->bandwidthrate; - if(this_bw > 800000) + if (this_bw > 800000) this_bw = 800000; /* if they claim something huge, don't believe it */ p = tor_malloc(sizeof(uint32_t)); *p = this_bw; @@ -435,18 +435,18 @@ routerlist_sl_choose_by_bandwidth(smartlist_t *sl) total_bw += this_bw; // log_fn(LOG_INFO,"Recording bw %d for node %s.", this_bw, router->nickname); } - if(!total_bw) + if (!total_bw) return smartlist_choose(sl); rand_bw = crypto_pseudo_rand_int(total_bw); // log_fn(LOG_INFO,"Total bw %d. Randomly chose %d.", total_bw, rand_bw); tmp = 0; - for(i=0; ; i++) { + for (i=0; ; i++) { tor_assert(i < smartlist_len(sl)); p = smartlist_get(bandwidths, i); tmp += *p; router = smartlist_get(sl, i); // log_fn(LOG_INFO,"Considering %s. tmp = %d.", router->nickname, tmp); - if(tmp >= rand_bw) + if (tmp >= rand_bw) break; } SMARTLIST_FOREACH(bandwidths, uint32_t*, p, tor_free(p)); @@ -479,32 +479,32 @@ routerinfo_t *router_choose_random_node(const char *preferred, sl = smartlist_create(); add_nickname_list_to_smartlist(sl,preferred,1); smartlist_subtract(sl,excludednodes); - if(excludedsmartlist) + if (excludedsmartlist) smartlist_subtract(sl,excludedsmartlist); - if(preferuptime) + if (preferuptime) routerlist_sl_remove_unreliable_routers(sl); - if(preferbandwidth) + if (preferbandwidth) choice = routerlist_sl_choose_by_bandwidth(sl); else choice = smartlist_choose(sl); smartlist_free(sl); - if(!choice && !strict) { + if (!choice && !strict) { sl = smartlist_create(); router_add_running_routers_to_smartlist(sl, allow_unverified, preferuptime, preferbandwidth); smartlist_subtract(sl,excludednodes); - if(excludedsmartlist) + if (excludedsmartlist) smartlist_subtract(sl,excludedsmartlist); - if(preferuptime) + if (preferuptime) routerlist_sl_remove_unreliable_routers(sl); - if(preferbandwidth) + if (preferbandwidth) choice = routerlist_sl_choose_by_bandwidth(sl); else choice = smartlist_choose(sl); smartlist_free(sl); } smartlist_free(excludednodes); - if(!choice) + if (!choice) log_fn(LOG_WARN,"No available nodes when trying to choose node. Failing."); return choice; } @@ -519,7 +519,7 @@ routerinfo_t *router_get_by_addr_port(uint32_t addr, uint16_t port) { if (!routerlist) return NULL; - for(i=0;i<smartlist_len(routerlist->routers);i++) { + for (i=0;i<smartlist_len(routerlist->routers);i++) { router = smartlist_get(routerlist->routers, i); if ((router->addr == addr) && (router->or_port == port)) return router; @@ -577,7 +577,7 @@ routerinfo_t *router_get_by_nickname(const char *nickname) maybedigest = (strlen(nickname) == HEX_DIGEST_LEN) && (base16_decode(digest,DIGEST_LEN,nickname,HEX_DIGEST_LEN) == 0); - for(i=0;i<smartlist_len(routerlist->routers);i++) { + for (i=0;i<smartlist_len(routerlist->routers);i++) { router = smartlist_get(routerlist->routers, i); if (0 == strcasecmp(router->nickname, nickname) || (maybedigest && 0 == memcmp(digest, router->identity_digest, @@ -624,7 +624,7 @@ routerinfo_t *router_get_by_digest(const char *digest) { tor_assert(digest); if (!routerlist) return NULL; - for(i=0;i<smartlist_len(routerlist->routers);i++) { + for (i=0;i<smartlist_len(routerlist->routers);i++) { router = smartlist_get(routerlist->routers, i); if (0 == memcmp(router->identity_digest, digest, DIGEST_LEN)) return router; @@ -717,7 +717,7 @@ void router_mark_as_down(const char *digest) { d->is_running = 0); router = router_get_by_digest(digest); - if(!router) /* we don't seem to know about him in the first place */ + if (!router) /* we don't seem to know about him in the first place */ return; log_fn(LOG_DEBUG,"Marking router '%s' as down.",router->nickname); if (router_is_me(router)) @@ -777,8 +777,8 @@ router_add_to_routerlist(routerinfo_t *router) { * make new ones with the new key. */ connection_t *conn; - while((conn = connection_get_by_identity_digest(r->identity_digest, - CONN_TYPE_OR))) { + while ((conn = connection_get_by_identity_digest(r->identity_digest, + CONN_TYPE_OR))) { log_fn(LOG_INFO,"Closing conn to obsolete router '%s'", r->nickname); connection_mark_for_close(conn); } @@ -936,7 +936,7 @@ int router_compare_addr_to_addr_policy(uint32_t addr, uint16_t port, struct in_addr in; struct addr_policy_t *tmpe; - for(tmpe=policy; tmpe; tmpe=tmpe->next) { + for (tmpe=policy; tmpe; tmpe=tmpe->next) { // log_fn(LOG_DEBUG,"Considering exit policy %s", tmpe->string); maybe = 0; if (!addr) { @@ -973,7 +973,7 @@ int router_compare_addr_to_addr_policy(uint32_t addr, uint16_t port, in.s_addr = htonl(addr); log_fn(LOG_DEBUG,"Address %s:%d matches policy '%s'", inet_ntoa(in), port, tmpe->string); - if(tmpe->policy_type == ADDR_POLICY_ACCEPT) { + if (tmpe->policy_type == ADDR_POLICY_ACCEPT) { /* If we already hit a clause that might trigger a 'reject', than we * can't be sure of this certain 'accept'.*/ return maybe_reject ? ADDR_POLICY_UNKNOWN : ADDR_POLICY_ACCEPTED; @@ -1037,7 +1037,7 @@ void routerlist_update_from_runningrouters(routerlist_t *list, return; all_routers = smartlist_create(); - if(me) /* learn if the dirservers think I'm verified */ + if (me) /* learn if the dirservers think I'm verified */ smartlist_add(all_routers, me); smartlist_add_all(all_routers,list->routers); diff --git a/src/or/routerparse.c b/src/or/routerparse.c index d5790ca8e4..5903e3ddcf 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -276,7 +276,7 @@ int check_software_version_against_directory(const char *directory, VERSION, strchr(v,',') ? "one of " : "", v); tor_free(v); - if(ignoreversion) { + if (ignoreversion) { log(LOG_WARN, "IgnoreVersion is set. If it breaks, we told you so."); return -1; } else { @@ -331,7 +331,7 @@ router_parse_routerlist_from_directory(const char *str, log_fn(LOG_WARN, "Unexpected number of tokens in signature"); goto err; } tok=smartlist_get(tokens,0); - if(tok->tp != K_DIRECTORY_SIGNATURE) { + if (tok->tp != K_DIRECTORY_SIGNATURE) { log_fn(LOG_WARN,"Expected a single directory signature"); goto err; } declared_key = find_dir_signing_key(str); @@ -432,8 +432,8 @@ router_parse_routerlist_from_directory(const char *str, { static int have_warned_about_unverified_status = 0; routerinfo_t *me = router_get_my_routerinfo(); - if(me) { - if(router_update_status_from_smartlist(me, published_on, + if (me) { + if (router_update_status_from_smartlist(me, published_on, good_nickname_list, tok->tp==K_RUNNING_ROUTERS)==1 && me->is_verified == 0 && !have_warned_about_unverified_status) { @@ -612,7 +612,7 @@ static int dir_signing_key_is_trusted(crypto_pk_env_t *key) log_fn(LOG_WARN, "Error computing dir-signing-key digest"); return 0; } - if(!router_digest_is_trusted_dir(digest)) { + if (!router_digest_is_trusted_dir(digest)) { log_fn(LOG_WARN, "Listed dir-signing-key is not trusted"); return 0; } @@ -933,7 +933,7 @@ routerinfo_t *router_parse_entry_from_string(const char *s, if (!bw_set) { log_fn(LOG_WARN,"No bandwidth declared; failing."); goto err; } - if(!router->or_port) { + if (!router->or_port) { log_fn(LOG_WARN,"or_port unreadable or 0. Failing."); goto err; } @@ -1262,7 +1262,7 @@ get_next_token(const char **s, where_syntax where) { } *s += i+6; } - switch(o_syn) + switch (o_syn) { case NO_OBJ: if (tok->object_body) @@ -1298,7 +1298,7 @@ get_next_token(const char **s, where_syntax where) { if (tok->tp == _EOF) fputs("EOF",stdout); if (tok->tp == _NIL) fputs("_NIL",stdout); } - for(i = 0; i < tok->n_args; ++i) { + for (i = 0; i < tok->n_args; ++i) { fprintf(stdout," \"%s\"", tok->args[i]); } if (tok->error) { fprintf(stdout," *%s*", tok->error); } @@ -1408,21 +1408,21 @@ int tor_version_as_new_as(const char *platform, const char *cutoff) { char *s, *start; char tmp[128]; - if(tor_version_parse(cutoff, &cutoff_version)<0) { + if (tor_version_parse(cutoff, &cutoff_version)<0) { log_fn(LOG_WARN,"Bug: cutoff version '%s' unparsable.",cutoff); return 0; } - if(strcmpstart(platform,"Tor ")) /* nonstandard Tor; be safe and say yes */ + if (strcmpstart(platform,"Tor ")) /* nonstandard Tor; be safe and say yes */ return 1; start = (char *)eat_whitespace(platform+3); if (!*start) return 0; s = (char *)find_whitespace(start); /* also finds '\0', which is fine */ - if((size_t)(s-start+1) >= sizeof(tmp)) /* too big, no */ + if ((size_t)(s-start+1) >= sizeof(tmp)) /* too big, no */ return 0; strlcpy(tmp, start, s-start+1); - if(tor_version_parse(tmp, &router_version)<0) { + if (tor_version_parse(tmp, &router_version)<0) { log_fn(LOG_INFO,"Router version '%s' unparsable.",tmp); return 1; /* be safe and say yes */ } diff --git a/src/or/test.c b/src/or/test.c index 867ae33a48..f80cc55204 100644 --- a/src/or/test.c +++ b/src/or/test.c @@ -267,7 +267,7 @@ test_crypto(void) test_neq(env1, 0); test_eq(crypto_cipher_generate_key(env1), 0); test_eq(crypto_cipher_encrypt_init_cipher(env1), 0); - for(i = 0; i < 1024; ++i) { + for (i = 0; i < 1024; ++i) { data1[i] = (char) i*73; } crypto_cipher_encrypt(env1, data2, data1, 1024); @@ -277,7 +277,7 @@ test_crypto(void) /* Now, test encryption and decryption with stream cipher. */ data1[0]='\0'; - for(i = 1023; i>0; i -= 35) + for (i = 1023; i>0; i -= 35) strncat(data1, "Now is the time for all good onions", i); memset(data2, 0, 1024); @@ -879,7 +879,7 @@ test_onion(void) test_streq(names[1],"bar"); test_streq(names[2],"baz"); test_streq(names[3],"quux"); - for(i=0;i<num;i++) + for (i=0;i<num;i++) tor_free(names[i]); tor_free(names); #endif diff --git a/src/tools/tor-resolve.c b/src/tools/tor-resolve.c index 2de3cb9ca6..a082f829a4 100644 --- a/src/tools/tor-resolve.c +++ b/src/tools/tor-resolve.c @@ -42,7 +42,7 @@ #define RESPONSE_LEN 8 #define log_sock_error(act, _s) \ do { log_fn(LOG_ERR, "Error while %s: %s", act, \ - tor_socket_strerror(tor_socket_errno(_s))); } while(0) + tor_socket_strerror(tor_socket_errno(_s))); } while (0) static int build_socks4a_resolve_request(char **out, |