diff options
Diffstat (limited to '')
-rw-r--r-- | src/libnetdata/buffer/buffer.c (renamed from libnetdata/buffer/buffer.c) | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/libnetdata/buffer/buffer.c b/src/libnetdata/buffer/buffer.c index 64f9cce47..119216dd9 100644 --- a/libnetdata/buffer/buffer.c +++ b/src/libnetdata/buffer/buffer.c @@ -259,23 +259,23 @@ void buffer_free(BUFFER *b) { void buffer_increase(BUFFER *b, size_t free_size_required) { buffer_overflow_check(b); - size_t left = b->size - b->len; - if(left >= free_size_required) return; + size_t remaining = b->size - b->len; + if(remaining >= free_size_required) return; - size_t wanted = free_size_required - left; - size_t minimum = WEB_DATA_LENGTH_INCREASE_STEP; - if(minimum > wanted) wanted = minimum; + size_t increase = free_size_required - remaining; + size_t minimum = 128; + if(minimum > increase) increase = minimum; size_t optimal = (b->size > 5*1024*1024) ? b->size / 2 : b->size; - if(optimal > wanted) wanted = optimal; + if(optimal > increase) increase = optimal; - netdata_log_debug(D_WEB_BUFFER, "Increasing data buffer from size %zu to %zu.", b->size, b->size + wanted); + netdata_log_debug(D_WEB_BUFFER, "Increasing data buffer from size %zu to %zu.", b->size, b->size + increase); - b->buffer = reallocz(b->buffer, b->size + wanted + sizeof(BUFFER_OVERFLOW_EOF) + 2); - b->size += wanted; + b->buffer = reallocz(b->buffer, b->size + increase + sizeof(BUFFER_OVERFLOW_EOF) + 2); + b->size += increase; if(b->statistics) - __atomic_add_fetch(b->statistics, wanted, __ATOMIC_RELAXED); + __atomic_add_fetch(b->statistics, increase, __ATOMIC_RELAXED); buffer_overflow_init(b); buffer_overflow_check(b); @@ -341,8 +341,10 @@ __attribute__((constructor)) void initialize_ascii_maps(void) { base64_value_from_ascii[i] = 255; } - for(size_t i = 0; i < 16 ; i++) - hex_value_from_ascii[(int)hex_digits[i]] = i; + for(size_t i = 0; i < 16 ; i++) { + hex_value_from_ascii[(int)toupper(hex_digits[i])] = i; + hex_value_from_ascii[(int)tolower(hex_digits[i])] = i; + } for(size_t i = 0; i < 64 ; i++) base64_value_from_ascii[(int)base64_digits[i]] = i; @@ -492,12 +494,3 @@ int buffer_unittest(void) { buffer_free(wb); return errors; } - -#ifdef ENABLE_H2O -h2o_iovec_t buffer_to_h2o_iovec(BUFFER *wb) { - h2o_iovec_t ret; - ret.base = wb->buffer; - ret.len = wb->len; - return ret; -} -#endif |