about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2005-07-17 20:10:57 +0000
committerRichard Nyberg <rnyberg@murmeldjur.se>2005-07-17 20:10:57 +0000
commit614afd29cde018bfb021833b2bba132eca987b03 (patch)
treec514af9650db09b3645c2041462a8ff13f9a7fb2
parent47aa24ceaf4f711afbfab36e070df098b1f892a2 (diff)
downloadbtpd-614afd29cde018bfb021833b2bba132eca987b03.tar.gz
btpd-614afd29cde018bfb021833b2bba132eca987b03.zip
Use net_read_to_buf in net_generic_read.
-rw-r--r--btpd/net.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/btpd/net.c b/btpd/net.c
index 761e152..845cc75 100644
--- a/btpd/net.c
+++ b/btpd/net.c
@@ -528,27 +528,22 @@ static unsigned long
 net_generic_read(struct peer *p, unsigned long rmax)
 {
     char buf[GRBUFLEN];
+    struct io_buffer iob = { 0, GRBUFLEN, buf };
     struct generic_reader *gr = (struct generic_reader *)p->reader;
-    ssize_t nread;
+    size_t nread;
     size_t off, len;
     int got_part;
 
-    len = 0;
     if (gr->iob.buf_off > 0) {
-	len = gr->iob.buf_off;
+	iob.buf_off = gr->iob.buf_off;
+	bcopy(gr->iob.buf, iob.buf, iob.buf_off);
 	gr->iob.buf_off = 0;
-	bcopy(gr->iob.buf, buf, len);
     }
     
-    if (rmax == 0)
-	rmax = GRBUFLEN - len;
-    else
-	rmax = min(rmax, GRBUFLEN - len);
-
-    if ((nread = net_read(p, buf + len, rmax)) == 0)
+    if ((nread = net_read_to_buf(p, &iob, rmax)) == 0)
 	return 0;
 
-    len += nread;
+    len = iob.buf_off;
     off = 0;
 
     got_part = 0;