$NetBSD: patch-ay,v 1.1 2006/03/02 21:28:23 joerg Exp $

Committed upstream in r1.13; should be in next release.

--- uip/scansbr.c.orig	2006-03-02 21:05:07.000000000 +0000
+++ uip/scansbr.c
@@ -245,6 +245,8 @@ body:;
 		while (state == BODY) {
 #ifdef LINUX_STDIO
 		    if (scnout->_IO_write_ptr == scnout->_IO_write_end) {
+#elif defined(__DragonFly__)
+		    if (((struct __FILE_public *)scnout)->_w <= 0) {
 #else
 		    if (scnout->_cnt <= 0) {
 #endif
@@ -255,6 +257,10 @@ body:;
 		    state = m_getfld(state, name, scnout->_IO_write_ptr,
 			(long)scnout->_IO_write_ptr-(long)scnout->_IO_write_end , inb);
 		    scnout->_IO_write_ptr += msg_count;
+#elif defined(__DragonFly__)
+		    state = m_getfld( state, name, ((struct __FILE_public *)scnout)->_p, -(((struct __FILE_public *)scnout)->_w), inb );
+		    ((struct __FILE_public *)scnout)->_w -= msg_count;
+		    ((struct __FILE_public *)scnout)->_p += msg_count;
 #else
 		    state = m_getfld( state, name, scnout->_ptr, -(scnout->_cnt), inb );
 		    scnout->_cnt -= msg_count;
