+ } else {
+ // Don't do anything if the buffer wraps
+ if(buffer_wraps(buf)) {
+ return;
+ }
+
+ // Realloc internal storage
+ size_t minsize = max(DEFAULT_SNDBUFSIZE, buf->offset + buf->used);
+
+ if(minsize) {
+ data = realloc(buf->data, minsize);
+
+ if(data) {
+ buf->data = data;
+ buf->size = minsize;
+ }
+ } else {
+ free(buf->data);
+ buf->data = NULL;
+ buf->size = 0;
+ }