Commit 4c102213 authored by rl1987's avatar rl1987
Browse files

Use compress_dir_buf_add() function in a few places

parent 09a3c949
Loading
Loading
Loading
Loading
+10 −18
Original line number Diff line number Diff line
@@ -1068,13 +1068,11 @@ handle_get_status_vote(dir_connection_t *conn, const get_handler_args_t *args)
      if (compress_method != NO_METHOD) {
        conn->compress_state = tor_compress_new(1, compress_method,
                           choose_compression_level(estimated_len));
        SMARTLIST_FOREACH(items, const char *, c,
                 connection_buf_add_compress(c, strlen(c), conn, 0));
        connection_buf_add_compress("", 0, conn, 1);
      } else {
        SMARTLIST_FOREACH(items, const char *, c,
                         connection_buf_add(c, strlen(c), TO_CONN(conn)));
      }

      SMARTLIST_FOREACH(items, const char *, c,
                        connection_dir_buf_add(c, strlen(c), conn,
                                               c_sl_idx == c_sl_len - 1));
    } else {
      SMARTLIST_FOREACH(dir_items, cached_dir_t *, d,
          connection_buf_add(compress_method != NO_METHOD ?
@@ -1325,18 +1323,12 @@ handle_get_keys(dir_connection_t *conn, const get_handler_args_t *args)
    if (compress_method != NO_METHOD) {
      conn->compress_state = tor_compress_new(1, compress_method,
                                              choose_compression_level(len));
    }

    SMARTLIST_FOREACH(certs, authority_cert_t *, c,
            connection_buf_add_compress(
                c->cache_info.signed_descriptor_body,
                c->cache_info.signed_descriptor_len,
                conn, 0));
      connection_buf_add_compress("", 0, conn, 1);
    } else {
      SMARTLIST_FOREACH(certs, authority_cert_t *, c,
            connection_buf_add(c->cache_info.signed_descriptor_body,
          connection_dir_buf_add(c->cache_info.signed_descriptor_body,
                                 c->cache_info.signed_descriptor_len,
                                    TO_CONN(conn)));
    }
                                 conn, c_sl_idx == c_sl_len - 1));
 keys_done:
    smartlist_free(certs);
    goto done;
+7 −13
Original line number Diff line number Diff line
@@ -583,11 +583,9 @@ spooled_resource_flush_some(spooled_resource_t *spooled,
      /* Absent objects count as "done". */
      return SRFS_DONE;
    }
    if (conn->compress_state) {
      connection_buf_add_compress((const char*)body, bodylen, conn, 0);
    } else {
      connection_buf_add((const char*)body, bodylen, TO_CONN(conn));
    }

    connection_dir_buf_add((const char*)body, bodylen, conn, 0);

    return SRFS_DONE;
  } else {
    cached_dir_t *cached = spooled->cached_dir_ref;
@@ -622,14 +620,10 @@ spooled_resource_flush_some(spooled_resource_t *spooled,
    if (BUG(remaining < 0))
      return SRFS_ERR;
    ssize_t bytes = (ssize_t) MIN(DIRSERV_CACHED_DIR_CHUNK_SIZE, remaining);
    if (conn->compress_state) {
      connection_buf_add_compress(
              ptr + spooled->cached_dir_offset,

    connection_dir_buf_add(ptr + spooled->cached_dir_offset,
                           bytes, conn, 0);
    } else {
      connection_buf_add(ptr + spooled->cached_dir_offset,
                              bytes, TO_CONN(conn));
    }

    spooled->cached_dir_offset += bytes;
    if (spooled->cached_dir_offset >= (off_t)total_len) {
      return SRFS_DONE;