Commit d4e339ed authored by Roger Dingledine's avatar Roger Dingledine
Browse files

Nov 03 11:15:13.103 [info] connection_dir_client_reached_eof(): Received...

Nov 03 11:15:13.103 [info] connection_dir_client_reached_eof(): Received consensus directory (size 330543) from server '86.59.21.38:80'
Nov 03 11:15:13.129 [info] networkstatus_set_current_consensus(): Got a consensus we already have
Nov 03 11:15:13.129 [warn] Unable to load consensus directory dowloaded from server '86.59.21.38:80'


svn:r12359
parent 23fdfd4d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1455,6 +1455,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
  }

  if (conn->_base.purpose == DIR_PURPOSE_FETCH_CONSENSUS) {
    int r;
    if (status_code != 200) {
      int severity = (status_code == 304) ? LOG_INFO : LOG_WARN;
      log(severity, LD_DIR,
@@ -1468,8 +1469,9 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
    }
    log_info(LD_DIR,"Received consensus directory (size %d) from server "
             "'%s:%d'",(int) body_len, conn->_base.address, conn->_base.port);
    if (networkstatus_set_current_consensus(body, 0, 0)<0) {
      log_warn(LD_DIR, "Unable to load consensus directory dowloaded from "
    if ((r=networkstatus_set_current_consensus(body, 0, 0))<0) {
      log_fn(r<-1?LOG_WARN:LOG_INFO, LD_DIR,
             "Unable to load consensus directory downloaded from "
             "server '%s:%d'", conn->_base.address, conn->_base.port);
      tor_free(body); tor_free(headers); tor_free(reason);
      networkstatus_consensus_download_failed(0);
+14 −5
Original line number Diff line number Diff line
@@ -1210,8 +1210,11 @@ networkstatus_copy_old_consensus_info(networkstatus_vote_t *new_c,
 * <b>consensus</b>.  If we don't have enough certificates to validate it,
 * store it in consensus_waiting_for_certs and launch a certificate fetch.
 *
 * Return 0 on success, -1 on failure.  On -1, caller should increment
 * Return 0 on success, <0 on failure.  On failure, caller should increment
 * the failure count as appropriate.
 *
 * We return -1 for mild failures that don't need to be reported to the
 * user, and -2 for more serious problems.
 */
int
networkstatus_set_current_consensus(const char *consensus, int from_cache,
@@ -1226,6 +1229,7 @@ networkstatus_set_current_consensus(const char *consensus, int from_cache,
  c = networkstatus_parse_vote_from_string(consensus, NULL, 0);
  if (!c) {
    log_warn(LD_DIR, "Unable to parse networkstatus consensus");
    result = -2;
    goto done;
  }

@@ -1251,9 +1255,12 @@ networkstatus_set_current_consensus(const char *consensus, int from_cache,
  if ((r=networkstatus_check_consensus_signature(c, 1))<0) {
    if (r == -1 && !was_waiting_for_certs) {
      /* Okay, so it _might_ be signed enough if we get more certificates. */
      if (!was_waiting_for_certs)
      if (!was_waiting_for_certs) {
        /* XXX020 eventually downgrade this log severity, or make it so
         * users know why they're being told. */
        log_notice(LD_DIR, "Not enough certificates to check networkstatus "
                   "consensus");
      }
      if (!current_consensus ||
          c->valid_after > current_consensus->valid_after) {
        if (consensus_waiting_for_certs)
@@ -1279,9 +1286,11 @@ networkstatus_set_current_consensus(const char *consensus, int from_cache,
      goto done;
    } else {
      /* This can never be signed enough:  Kill it. */
      if (!was_waiting_for_certs)
      if (!was_waiting_for_certs) {
        log_warn(LD_DIR, "Not enough good signatures on networkstatus "
                 "consensus");
        result = -2;
      }
      if (was_waiting_for_certs && (r < -1) && from_cache)
        unlink(unverified_fname);
      goto done;
+1 −1
Original line number Diff line number Diff line
@@ -3309,7 +3309,7 @@ rend_parse_v2_service_descriptor(rend_service_descriptor_t **parsed_out,
     * valid numbers. -KL */
    /* As above, increased version numbers are for
     * non-backward-compatible changes.  This code doesn't know how to
     * parse a v3 descriptor, because a v3 descriptor is by definitition not
     * parse a v3 descriptor, because a v3 descriptor is by definition not
     * compatible with this code.  */
    version = atoi(smartlist_get(versions, i));
    result->protocols |= 1 << version;