summaryrefslogtreecommitdiffstats
path: root/src/libnetdata/buffer/buffer.c
diff options
context:
space:
mode:
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