diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-07-17 20:10:57 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-07-17 20:10:57 +0000 |
| commit | 614afd29cde018bfb021833b2bba132eca987b03 (patch) | |
| tree | c514af9650db09b3645c2041462a8ff13f9a7fb2 | |
| parent | 47aa24ceaf4f711afbfab36e070df098b1f892a2 (diff) | |
| download | btpd-614afd29cde018bfb021833b2bba132eca987b03.tar.gz btpd-614afd29cde018bfb021833b2bba132eca987b03.zip | |
Use net_read_to_buf in net_generic_read.
| -rw-r--r-- | btpd/net.c | 17 |
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; |