strcpy(&b->buffer[b->size + 1], BUFFER_OVERFLOW_EOF);
}
+#ifdef NETDATA_INTERNAL_CHECKS
#define buffer_overflow_check(b) _buffer_overflow_check(b, __FILE__, __FUNCTION__, __LINE__)
+#else
+#define buffer_overflow_check(b)
+#endif
static inline void _buffer_overflow_check(BUFFER *b, const char *file, const char *function, const unsigned long line)
{
const char *buffer_tostring(BUFFER *wb)
{
- buffer_need_bytes(wb, 1);
+ buffer_need_bytes(wb, (size_t)1);
wb->buffer[wb->len] = '\0';
buffer_overflow_check(wb);
{
if(unlikely(!txt || !*txt)) return;
- if(wb->size - wb->len < 512)
- buffer_need_bytes(wb, 512);
+ buffer_need_bytes(wb, (size_t)(1));
char *s = &wb->buffer[wb->len], *end = &wb->buffer[wb->size];
long len = wb->len;
else {
// terminate the string
// without increasing the length
- buffer_need_bytes(wb, 1);
+ buffer_need_bytes(wb, (size_t)1);
wb->buffer[wb->len] = '\0';
}
}
{
if(unlikely(!fmt || !*fmt)) return;
+ buffer_need_bytes(wb, 1);
+
size_t len = wb->size - wb->len;
- if(unlikely(!len)) return;
wb->len += vsnprintf(&wb->buffer[wb->len], len, fmt, args);
{
if(unlikely(!fmt || !*fmt)) return;
- if(unlikely(wb->len > wb->size)) {
- error("web_buffer_sprintf(): already overflown length %ld, size = %ld", wb->len, wb->size);
- }
-
-// if(wb->size - wb->len < 512)
-// web_buffer_need_bytes(wb, 512);
+ buffer_need_bytes(wb, 1);
size_t len = wb->size - wb->len, wrote;
- buffer_need_bytes(wb, len);
-
va_list args;
va_start(args, fmt);
- wrote = vsnprintf(&wb->buffer[wb->len], len, fmt, args);
+ wrote = (size_t) vsnprintf(&wb->buffer[wb->len], len, fmt, args);
va_end(args);
if(unlikely(wrote >= len)) {
b[i++]='t';
b[i++]='e';
b[i++]='(';
- b[i++]= 48 + year / 1000; year -= (year / 1000) * 1000;
- b[i++]= 48 + year / 100; year -= (year / 100) * 100;
- b[i++]= 48 + year / 10;
- b[i++]= 48 + year % 10;
+ b[i++]= (char) (48 + year / 1000); year -= (year / 1000) * 1000;
+ b[i++]= (char) (48 + year / 100); year -= (year / 100) * 100;
+ b[i++]= (char) (48 + year / 10);
+ b[i++]= (char) (48 + year % 10);
b[i++]=',';
- b[i]= 48 + month / 10; if(b[i] != '0') i++;
- b[i++]= 48 + month % 10;
+ b[i]= (char) (48 + month / 10); if(b[i] != '0') i++;
+ b[i++]= (char) (48 + month % 10);
b[i++]=',';
- b[i]= 48 + day / 10; if(b[i] != '0') i++;
- b[i++]= 48 + day % 10;
+ b[i]= (char) (48 + day / 10); if(b[i] != '0') i++;
+ b[i++]= (char) (48 + day % 10);
b[i++]=',';
- b[i]= 48 + hours / 10; if(b[i] != '0') i++;
- b[i++]= 48 + hours % 10;
+ b[i]= (char) (48 + hours / 10); if(b[i] != '0') i++;
+ b[i++]= (char) (48 + hours % 10);
b[i++]=',';
- b[i]= 48 + minutes / 10; if(b[i] != '0') i++;
- b[i++]= 48 + minutes % 10;
+ b[i]= (char) (48 + minutes / 10); if(b[i] != '0') i++;
+ b[i++]= (char) (48 + minutes % 10);
b[i++]=',';
- b[i]= 48 + seconds / 10; if(b[i] != '0') i++;
- b[i++]= 48 + seconds % 10;
+ b[i]= (char) (48 + seconds / 10); if(b[i] != '0') i++;
+ b[i++]= (char) (48 + seconds % 10);
b[i++]=')';
b[i]='\0';
char *b = &wb->buffer[wb->len];
int i = 0;
- b[i++]= 48 + year / 1000; year -= (year / 1000) * 1000;
- b[i++]= 48 + year / 100; year -= (year / 100) * 100;
- b[i++]= 48 + year / 10;
- b[i++]= 48 + year % 10;
+ b[i++]= (char) (48 + year / 1000); year -= (year / 1000) * 1000;
+ b[i++]= (char) (48 + year / 100); year -= (year / 100) * 100;
+ b[i++]= (char) (48 + year / 10);
+ b[i++]= (char) (48 + year % 10);
b[i++]='-';
- b[i++]= 48 + month / 10;
- b[i++]= 48 + month % 10;
+ b[i++]= (char) (48 + month / 10);
+ b[i++]= (char) (48 + month % 10);
b[i++]='-';
- b[i++]= 48 + day / 10;
- b[i++]= 48 + day % 10;
+ b[i++]= (char) (48 + day / 10);
+ b[i++]= (char) (48 + day % 10);
b[i++]=' ';
- b[i++]= 48 + hours / 10;
- b[i++]= 48 + hours % 10;
+ b[i++]= (char) (48 + hours / 10);
+ b[i++]= (char) (48 + hours % 10);
b[i++]=':';
- b[i++]= 48 + minutes / 10;
- b[i++]= 48 + minutes % 10;
+ b[i++]= (char) (48 + minutes / 10);
+ b[i++]= (char) (48 + minutes % 10);
b[i++]=':';
- b[i++]= 48 + seconds / 10;
- b[i++]= 48 + seconds % 10;
+ b[i++]= (char) (48 + seconds / 10);
+ b[i++]= (char) (48 + seconds % 10);
b[i]='\0';
wb->len += i;
free(b);
}
-void buffer_increase(BUFFER *b, long free_size_required)
+void buffer_increase(BUFFER *b, size_t free_size_required)
{
buffer_overflow_check(b);
- long left = b->size - b->len;
+ size_t left = b->size - b->len;
if(left >= free_size_required) return;
- long increase = free_size_required - left;
+ size_t increase = free_size_required - left;
if(increase < WEB_DATA_LENGTH_INCREASE_STEP) increase = WEB_DATA_LENGTH_INCREASE_STEP;
debug(D_WEB_BUFFER, "Increasing data buffer from size %d to %d.", b->size, b->size + increase);