2004-11-07 Paul Jakma <paul@dishone.st>

	* buffer.c: Add missing include of log.h.
	  (buffer_flush_available) written is compared against
	  mostly against unsigned types, only for the writev do we need
          signed compare, so declare it as size_t and cast it to ssize_t
          just for the error compare when we've called writev.
	* buffer.h: Add comment that buffer data sizes really should be
          size_t.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index e256bbe..2acd002 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,6 +1,16 @@
 2004-11-07 Paul Jakma <paul@dishone.st>
 
-	* lib/version.h.in: add autoconf configure_input output var
+	* buffer.c: Add missing include of log.h.
+	  (buffer_flush_available) written is compared against
+	  mostly against unsigned types, only for the writev do we need
+          signed compare, so declare it as size_t and cast it to ssize_t
+          just for the error compare when we've called writev.
+	* buffer.h: Add comment that buffer data sizes really should be 
+          size_t.
+
+2004-11-07 Paul Jakma <paul@dishone.st>
+
+	* version.h.in: add autoconf configure_input output var
 
 2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
diff --git a/lib/buffer.c b/lib/buffer.c
index 9d931a9..3701e12 100644
--- a/lib/buffer.c
+++ b/lib/buffer.c
@@ -24,6 +24,7 @@
 
 #include "memory.h"
 #include "buffer.h"
+#include "log.h"
 #include <stddef.h>
 
 /* Make buffer data. */
@@ -580,9 +581,9 @@
 
   struct buffer_data *d;
   struct buffer_data *next;
-  ssize_t written;
+  size_t written;
   struct iovec iov[MAX_CHUNKS];
-  int iovcnt = 0;
+  size_t iovcnt = 0;
   size_t nbyte = 0;
 
   for (d = b->head; d && (iovcnt < MAX_CHUNKS) && (nbyte < MAX_FLUSH);
@@ -592,7 +593,8 @@
       nbyte += (iov[iovcnt].iov_len = d->cp-d->sp);
     }
 
-  if ((written = writev(fd,iov,iovcnt)) < 0)
+  /* only place where written should be sign compared */
+  if ((ssize_t)(written = writev(fd,iov,iovcnt)) < 0)
     {
       if ((errno != EAGAIN) && (errno != EINTR))
         zlog_warn("buffer_flush_available write error on fd %d: %s",
diff --git a/lib/buffer.h b/lib/buffer.h
index 2acd571..65b8a8c 100644
--- a/lib/buffer.h
+++ b/lib/buffer.h
@@ -29,7 +29,8 @@
   /* Data list. */
   struct buffer_data *head;
   struct buffer_data *tail;
-
+  
+  /* XXX: These unsigned longs should be size_t's */
   /* Current allocated data. */
   unsigned long alloc;