#include "buffer.h"
#include "log.h"
#include "network.h"
+#include "lib_errors.h"
+
#include <stddef.h>
DEFINE_MTYPE_STATIC(LIB, BUFFER, "Buffer")
return s;
}
-/* Return 1 if buffer is empty. */
-int buffer_empty(struct buffer *b)
-{
- return (b->head == NULL);
-}
-
/* Clear and free all allocated data. */
void buffer_reset(struct buffer *b)
{
if (!b->head)
return BUFFER_EMPTY;
- if (height < 1) {
- zlog_warn(
- "%s called with non-positive window height %d, forcing to 1",
- __func__, height);
+ if (height < 1)
height = 1;
- } else if (height >= 2)
+ else if (height >= 2)
height--;
- if (width < 1) {
- zlog_warn(
- "%s called with non-positive window width %d, forcing to 1",
- __func__, width);
+ if (width < 1)
width = 1;
- }
/* For erase and more data add two to b's buffer_data count.*/
if (b->head->next == NULL) {
{
iov_alloc *= 2;
if (iov != small_iov) {
- zlog_warn(
- "%s: growing iov array to %d; "
- "width %d, height %d, size %lu",
- __func__, iov_alloc, width, height,
- (unsigned long)b->size);
iov = XREALLOC(MTYPE_TMP, iov,
iov_alloc * sizeof(*iov));
} else {
/* This should absolutely never occur. */
- zlog_err(
+ flog_err_sys(
+ EC_LIB_SYSTEM_CALL,
"%s: corruption detected: iov_small overflowed; "
"head %p, tail %p, head->next %p",
__func__, (void *)b->head,
iov_size =
((iov_index > IOV_MAX) ? IOV_MAX : iov_index);
if ((nbytes = writev(fd, c_iov, iov_size)) < 0) {
- zlog_warn("%s: writev to fd %d failed: %s",
- __func__, fd, safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "%s: writev to fd %d failed: %s",
+ __func__, fd, safe_strerror(errno));
break;
}
}
#else /* IOV_MAX */
if ((nbytes = writev(fd, iov, iov_index)) < 0)
- zlog_warn("%s: writev to fd %d failed: %s", __func__, fd,
- safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET, "%s: writev to fd %d failed: %s",
+ __func__, fd, safe_strerror(errno));
#endif /* IOV_MAX */
/* Free printed buffer data. */
if (ERRNO_IO_RETRY(errno))
/* Calling code should try again later. */
return BUFFER_PENDING;
- zlog_warn("%s: write error on fd %d: %s", __func__, fd,
- safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET, "%s: write error on fd %d: %s",
+ __func__, fd, safe_strerror(errno));
return BUFFER_ERROR;
}
/* Free printed buffer data. */
while (written > 0) {
- struct buffer_data *d;
if (!(d = b->head)) {
- zlog_err(
- "%s: corruption detected: buffer queue empty, "
- "but written is %lu",
+ flog_err(
+ EC_LIB_DEVELOPMENT,
+ "%s: corruption detected: buffer queue empty, but written is %lu",
__func__, (unsigned long)written);
break;
}
if (ERRNO_IO_RETRY(errno))
nbytes = 0;
else {
- zlog_warn("%s: write error on fd %d: %s", __func__, fd,
- safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET, "%s: write error on fd %d: %s",
+ __func__, fd, safe_strerror(errno));
return BUFFER_ERROR;
}
}