mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Add tor_compress_get_total_allocation()
function.
This patch adds the `tor_compress_get_total_allocation()` which returns an approximate number of bytes currently in use by all the different compression backends. See: https://bugs.torproject.org/21662
This commit is contained in:
parent
be4dc54634
commit
04682d302a
@ -154,6 +154,16 @@ detect_compression_method(const char *in, size_t in_len)
|
||||
}
|
||||
}
|
||||
|
||||
/** Return the approximate number of bytes allocated for all
|
||||
* supported compression schemas. */
|
||||
size_t
|
||||
tor_compress_get_total_allocation(void)
|
||||
{
|
||||
return tor_zlib_get_total_allocation() +
|
||||
tor_lzma_get_total_allocation() +
|
||||
tor_zstd_get_total_allocation();
|
||||
}
|
||||
|
||||
/** Internal state for an incremental compression/decompression. The body of
|
||||
* this struct is not exposed. */
|
||||
struct tor_compress_state_t {
|
||||
|
@ -51,6 +51,9 @@ tor_compress_memory_level(compression_level_t level);
|
||||
int
|
||||
tor_compress_is_compression_bomb(size_t size_in, size_t size_out);
|
||||
|
||||
size_t
|
||||
tor_compress_get_total_allocation(void);
|
||||
|
||||
/** Return values from tor_compress_process; see that function's documentation
|
||||
* for details. */
|
||||
typedef enum {
|
||||
|
@ -54,7 +54,7 @@
|
||||
#include "circuitbuild.h"
|
||||
#include "circuitlist.h"
|
||||
#include "circuituse.h"
|
||||
#include "compress_zlib.h"
|
||||
#include "compress.h"
|
||||
#include "config.h"
|
||||
#include "connection.h"
|
||||
#include "connection_edge.h"
|
||||
@ -2454,7 +2454,7 @@ cell_queues_check_size(void)
|
||||
{
|
||||
size_t alloc = cell_queues_get_total_allocation();
|
||||
alloc += buf_get_total_allocation();
|
||||
alloc += tor_zlib_get_total_allocation();
|
||||
alloc += tor_compress_get_total_allocation();
|
||||
const size_t rend_cache_total = rend_cache_get_total_allocation();
|
||||
alloc += rend_cache_total;
|
||||
if (alloc >= get_options()->MaxMemInQueues_low_threshold) {
|
||||
|
Loading…
Reference in New Issue
Block a user