From 2ef463d8928da710bae698c881af667568e61acb Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Tue, 17 Jan 2017 22:59:35 +0800 Subject: [PATCH] tools/kq_recvserv: Add option to set read size --- .../netrate/kq_sendrecv/kq_recvserv/kq_recvserv.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tools/tools/netrate/kq_sendrecv/kq_recvserv/kq_recvserv.c b/tools/tools/netrate/kq_sendrecv/kq_recvserv/kq_recvserv.c index 2b4f68f36f..96278b6e0f 100644 --- a/tools/tools/netrate/kq_sendrecv/kq_recvserv/kq_recvserv.c +++ b/tools/tools/netrate/kq_sendrecv/kq_recvserv/kq_recvserv.c @@ -35,10 +35,13 @@ struct recv_thrctx { static void *recv_thread(void *); +static int recv_buflen = RECV_BUFLEN; + static void usage(const char *cmd) { - fprintf(stderr, "%s [-4 addr4] [-p port] [-t nthreads] [-D]\n", cmd); + fprintf(stderr, "%s [-4 addr4] [-p port] [-t nthreads] [-D] " + "[-b buflen]\n", cmd); exit(2); } @@ -68,7 +71,7 @@ main(int argc, char *argv[]) do_daemon = 1; - while ((opt = getopt(argc, argv, "4:Dp:t:")) != -1) { + while ((opt = getopt(argc, argv, "4:Db:p:t:")) != -1) { switch (opt) { case '4': if (inet_pton(AF_INET, optarg, &in.sin_addr) <= 0) @@ -79,6 +82,12 @@ main(int argc, char *argv[]) do_daemon = 0; break; + case 'b': + recv_buflen = strtol(optarg, NULL, 10); + if (recv_buflen <= 0) + errx(1, "invalid -b"); + break; + case 'p': in.sin_port = htons(strtoul(optarg, NULL, 10)); break; @@ -219,9 +228,9 @@ recv_thread(void *xctx) if (kq < 0) err(1, "kqueue failed"); - buf = malloc(RECV_BUFLEN); + buf = malloc(recv_buflen); if (buf == NULL) - err(1, "malloc %d failed", RECV_BUFLEN); + err(1, "malloc %d failed", recv_buflen); memset(&ack, 0, sizeof(ack)); @@ -277,7 +286,7 @@ recv_thread(void *xctx) ++nchange; } } else { - n = read(evt[i].ident, buf, RECV_BUFLEN); + n = read(evt[i].ident, buf, recv_buflen); if (n <= 0) { if (n == 0 || errno != EAGAIN) close(evt[i].ident); -- 2.11.4.GIT