X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=send_common.c;h=cf1cd37b7863ec438af70e246ca41538d4638408;hb=72d73eb53316768a5a3527cf56afad7158d9ef4d;hp=b44c8133d821ef2611650eee0ea40039af18bbc3;hpb=5b15980ce22a3a4244e2440f46eac19eb0ceb3ef;p=paraslash.git diff --git a/send_common.c b/send_common.c index b44c8133..cf1cd37b 100644 --- a/send_common.c +++ b/send_common.c @@ -110,20 +110,19 @@ static int queue_chunk_or_shutdown(struct sender_client *sc, * * \param fd The file descriptor. * \param cq The list of queued chunks. - * \param max_bytes_per_write Do not send more than this in one go. * * \return Negative on errors, zero if not everything was sent, one otherwise. */ -int send_queued_chunks(int fd, struct chunk_queue *cq, - size_t max_bytes_per_write) +int send_queued_chunks(int fd, struct chunk_queue *cq) { struct queued_chunk *qc; while ((qc = cq_peek(cq))) { const char *buf; size_t len; int ret; + cq_get(qc, &buf, &len); - ret = write_nonblock(fd, buf, len, max_bytes_per_write); + ret = write_nonblock(fd, buf, len); if (ret < 0) return ret; cq_update(cq, ret); @@ -139,7 +138,6 @@ int send_queued_chunks(int fd, struct chunk_queue *cq, * * \param sc The client. * \param ss The sender. - * \param max_bytes_per_write Split writes to chunks of at most that many bytes. * \param current_chunk The number of the chunk to write. * \param buf The data to write. * \param len The number of bytes of \a buf. @@ -150,9 +148,8 @@ int send_queued_chunks(int fd, struct chunk_queue *cq, * written, the remainder is put into the chunk queue for that client. */ void send_chunk(struct sender_client *sc, struct sender_status *ss, - size_t max_bytes_per_write, long unsigned current_chunk, - const char *buf, size_t len, const char *header_buf, - size_t header_len) + long unsigned current_chunk, const char *buf, size_t len, + const char *header_buf, size_t header_len) { int ret; @@ -164,7 +161,7 @@ void send_chunk(struct sender_client *sc, struct sender_status *ss, } } sc->header_sent = 1; - ret = send_queued_chunks(sc->fd, sc->cq, max_bytes_per_write); + ret = send_queued_chunks(sc->fd, sc->cq); if (ret < 0) { shutdown_client(sc, ss); goto out; @@ -175,7 +172,7 @@ void send_chunk(struct sender_client *sc, struct sender_status *ss, ret = queue_chunk_or_shutdown(sc, ss, buf, len); goto out; } - ret = write_nonblock(sc->fd, buf, len, max_bytes_per_write); + ret = write_nonblock(sc->fd, buf, len); if (ret < 0) { shutdown_client(sc, ss); goto out; @@ -480,7 +477,7 @@ int parse_fec_url(const char *arg, struct sender_command_data *scd) goto out; } /* use default fec parameters. */ - scd->max_slice_bytes = 1472; + scd->max_slice_bytes = 0; scd->slices_per_group = 16; scd->data_slices_per_group = 14; ret = 0;