/******************************************************************************/
-/* postlicyd: a postfix policy daemon with a lot of features */
+/* pfixtools: a collection of postfix related tools */
/* ~~~~~~~~~ */
/* ________________________________________________________________________ */
/* */
* Copyright © 2006-2007 Pierre Habouzit
*/
-#ifndef POSTLICYD_BUFFER_H
-#define POSTLICYD_BUFFER_H
+#ifndef PFIXTOOLS_BUFFER_H
+#define PFIXTOOLS_BUFFER_H
+#include <stdarg.h>
#include "mem.h"
#include "str.h"
ssize_t size;
} buffer_t;
+#define BUFFER_INIT {NULL, 0, 0}
+
DO_INIT(buffer_t, buffer);
static inline void buffer_wipe(buffer_t *buf) {
p_delete(&buf->data);
buffer_extendch(buf, 1, c);
}
+__attribute__((format(printf,2,0)))
+ssize_t buffer_addvf(buffer_t *, const char *fmt, va_list);
+
+static inline __attribute__((format(printf,2,3)))
+ssize_t buffer_addf(buffer_t *buf, const char *fmt, ...)
+{
+ ssize_t res;
+ va_list args;
+ va_start(args, fmt);
+ res = buffer_addvf(buf, fmt, args);
+ va_end(args);
+ return res;
+}
+
void buffer_consume(buffer_t *buf, ssize_t len);
ssize_t buffer_read(buffer_t *buf, int fd, ssize_t count);
+ssize_t buffer_write(buffer_t *buf, int fd);
-#endif /* POSTLICYD_BUFFER_H */
+#endif /* PFIXTOOLS_BUFFER_H */