* [PATCH liburing 0/2] Fix endianess issue and add srand() @ 2021-09-27 4:37 Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi 0 siblings, 2 replies; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 4:37 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring Hi Jens, 2 patches for liburing: - Fix endiness issue (from me, suggested by Louvian). - Add `srand()` before calling `rand()` (from me). ---------------------------------------------------------------- Ammar Faizi (2): test: Fix endianess issue on `bind()` and `connect()` test/accept-link: Add `srand()` for better randomness test/232c93d07b74-test.c | 9 +++++---- test/accept-link.c | 14 ++++++++++---- test/accept.c | 5 +++-- test/poll-link.c | 11 +++++++---- test/shutdown.c | 5 +++-- test/socket-rw-eagain.c | 5 +++-- test/socket-rw.c | 5 +++-- 7 files changed, 34 insertions(+), 20 deletions(-) --- Ammar Faizi ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` 2021-09-27 4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi @ 2021-09-27 4:37 ` Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi 1 sibling, 0 replies; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 4:37 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, Ammar Faizi, Louvian Lyndal When we call `bind()` or `connect()`, the `addr` and `port` should be in big endian value representation. Portability notes: - Do not hard code the address with integer like this `0x0100007fU`. Instead, use `inet_addr("127.0.0.1")` to ensure portability for the machine with different endianess. It's also cleaner and more readable to use `inet_addr()` from `#include <arpa/inet.h>`. - Use `htons(port_number)` to make sure the port_number is properly choosen instead directly assign it with integer (still about endianess problem). This commit fixes endianess issue in these files: test/232c93d07b74-test.c test/accept-link.c test/accept.c test/poll-link.c test/shutdown.c test/socket-rw-eagain.c test/socket-rw.c Fixes: 08bd815170ab4352d71019f4d3e532cd3f6f0489 ("Un-DOSify test/232c93d07b74-test.c") Fixes: 4bce856d43ab1f9a64477aa5a8f9f02f53e64b74 ("Improve reliability of poll/accept-link tests") Fixes: 76e3b7921fee98a5627cd270628b6a5160d3857d ("Add nonblock empty socket read test") Fixes: 7de625356997dea66826007676224285d407a0fe ("test/accept: code reuse cleanup") Fixes: 8a3a8d744db428a326e2f54093665411734fa3a8 ("Add IORING_OP_SHUTDOWN test case") Fixes: e3adbfc235da96ac97a9cafac78292a22eb12036 ("Moves function calls out of assert().") Suggested-by: Louvian Lyndal <[email protected]> Signed-off-by: Ammar Faizi <[email protected]> --- test/232c93d07b74-test.c | 9 +++++---- test/accept-link.c | 11 +++++++---- test/accept.c | 5 +++-- test/poll-link.c | 11 +++++++---- test/shutdown.c | 5 +++-- test/socket-rw-eagain.c | 5 +++-- test/socket-rw.c | 5 +++-- 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/test/232c93d07b74-test.c b/test/232c93d07b74-test.c index cd194cb..4153aef 100644 --- a/test/232c93d07b74-test.c +++ b/test/232c93d07b74-test.c @@ -19,6 +19,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -75,8 +76,8 @@ static void *rcv(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = PORT; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons(PORT); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); res = bind(s0, (struct sockaddr *) &addr, sizeof(addr)); assert(res != -1); } else { @@ -190,8 +191,8 @@ static void *snd(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = PORT; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons(PORT); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); ret = connect(s0, (struct sockaddr*) &addr, sizeof(addr)); assert(ret != -1); } else { diff --git a/test/accept-link.c b/test/accept-link.c index 605e0ec..f111275 100644 --- a/test/accept-link.c +++ b/test/accept-link.c @@ -11,6 +11,7 @@ #include <netinet/tcp.h> #include <netinet/in.h> #include <poll.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,7 +43,8 @@ struct data { unsigned expected[2]; unsigned just_positive[2]; unsigned long timeout; - int port; + unsigned short port; + unsigned int addr; int stop; }; @@ -63,7 +65,7 @@ static void *send_thread(void *arg) addr.sin_family = AF_INET; addr.sin_port = data->port; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = data->addr; ret = connect(s0, (struct sockaddr*)&addr, sizeof(addr)); assert(ret != -1); @@ -95,11 +97,12 @@ void *recv_thread(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + data->addr = inet_addr("127.0.0.1"); + addr.sin_addr.s_addr = data->addr; i = 0; do { - data->port = 1025 + (rand() % 64510); + data->port = htons(1025 + (rand() % 64510)); addr.sin_port = data->port; if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) diff --git a/test/accept.c b/test/accept.c index 0c69b98..a4fc677 100644 --- a/test/accept.c +++ b/test/accept.c @@ -17,6 +17,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "helpers.h" #include "liburing.h" @@ -107,8 +108,8 @@ static int start_accept_listen(struct sockaddr_in *addr, int port_off) addr = &laddr; addr->sin_family = AF_INET; - addr->sin_port = 0x1235 + port_off; - addr->sin_addr.s_addr = 0x0100007fU; + addr->sin_port = htons(0x1235 + port_off); + addr->sin_addr.s_addr = inet_addr("127.0.0.1"); ret = bind(fd, (struct sockaddr*)addr, sizeof(*addr)); assert(ret != -1); diff --git a/test/poll-link.c b/test/poll-link.c index 4b4f9aa..197ad77 100644 --- a/test/poll-link.c +++ b/test/poll-link.c @@ -11,6 +11,7 @@ #include <netinet/tcp.h> #include <netinet/in.h> #include <poll.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,7 +43,8 @@ struct data { unsigned expected[2]; unsigned is_mask[2]; unsigned long timeout; - int port; + unsigned short port; + unsigned int addr; int stop; }; @@ -59,7 +61,7 @@ static void *send_thread(void *arg) addr.sin_family = AF_INET; addr.sin_port = data->port; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = data->addr; if (connect(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) wait_for_var(&recv_thread_done); @@ -90,11 +92,12 @@ void *recv_thread(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + data->addr = inet_addr("127.0.0.1"); + addr.sin_addr.s_addr = data->addr; i = 0; do { - data->port = 1025 + (rand() % 64510); + data->port = htons(1025 + (rand() % 64510)); addr.sin_port = data->port; if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) diff --git a/test/shutdown.c b/test/shutdown.c index 5aa1371..20bcc77 100644 --- a/test/shutdown.c +++ b/test/shutdown.c @@ -15,6 +15,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,8 +43,8 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_port = (rand() % 61440) + 4096; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons((rand() % 61440) + 4096); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); assert(ret != -1); diff --git a/test/socket-rw-eagain.c b/test/socket-rw-eagain.c index cc87aca..9854e00 100644 --- a/test/socket-rw-eagain.c +++ b/test/socket-rw-eagain.c @@ -15,6 +15,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -38,10 +39,10 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); do { - addr.sin_port = (rand() % 61440) + 4096; + addr.sin_port = htons((rand() % 61440) + 4096); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); if (!ret) break; diff --git a/test/socket-rw.c b/test/socket-rw.c index 1b731b2..5afd14d 100644 --- a/test/socket-rw.c +++ b/test/socket-rw.c @@ -17,6 +17,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -40,10 +41,10 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); do { - addr.sin_port = (rand() % 61440) + 4096; + addr.sin_port = htons((rand() % 61440) + 4096); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); if (!ret) break; -- 2.30.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness 2021-09-27 4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi @ 2021-09-27 4:37 ` Ammar Faizi 2021-09-27 13:28 ` Jens Axboe 1 sibling, 1 reply; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 4:37 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, Ammar Faizi The use of `rand()` should be accompanied by `srand()`. Signed-off-by: Ammar Faizi <[email protected]> --- test/accept-link.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/accept-link.c b/test/accept-link.c index f111275..843f345 100644 --- a/test/accept-link.c +++ b/test/accept-link.c @@ -240,6 +240,9 @@ int main(int argc, char *argv[]) { if (argc > 1) return 0; + + srand((unsigned)time(NULL)); + if (test_accept_timeout(0, 200000000)) { fprintf(stderr, "accept timeout 0 failed\n"); return 1; -- 2.30.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness 2021-09-27 4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi @ 2021-09-27 13:28 ` Jens Axboe 2021-09-27 13:40 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi 0 siblings, 1 reply; 8+ messages in thread From: Jens Axboe @ 2021-09-27 13:28 UTC (permalink / raw) To: Ammar Faizi; +Cc: io-uring On 9/26/21 10:37 PM, Ammar Faizi wrote: > The use of `rand()` should be accompanied by `srand()`. The idiomatic way that I usually do it for these tests is: srand(getpid()); Shouldn't really matter, but we may as well keep it consistent. -- Jens Axboe ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH liburing v2 0/2] Fix endianess issue and add srand() 2021-09-27 13:28 ` Jens Axboe @ 2021-09-27 13:40 ` Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw) To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List On Mon, Sep 27, 2021 at 8:28 PM Jens Axboe <[email protected]> wrote: > > On 9/26/21 10:37 PM, Ammar Faizi wrote: > > The use of `rand()` should be accompanied by `srand()`. > > The idiomatic way that I usually do it for these tests is: > > srand(getpid()); > > Shouldn't really matter, but we may as well keep it consistent. v2: Use getpid() for the random seed. ---------------------------------------------------------------- Ammar Faizi (2): test: Fix endianess issue on `bind()` and `connect()` test/accept-link: Add `srand()` for better randomness test/232c93d07b74-test.c | 9 +++++---- test/accept-link.c | 14 ++++++++++---- test/accept.c | 5 +++-- test/poll-link.c | 11 +++++++---- test/shutdown.c | 5 +++-- test/socket-rw-eagain.c | 5 +++-- test/socket-rw.c | 5 +++-- 7 files changed, 34 insertions(+), 20 deletions(-) --- Ammar Faizi ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` 2021-09-27 13:40 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi @ 2021-09-27 13:40 ` Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi 2021-09-27 13:45 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe 2 siblings, 0 replies; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw) To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List, Louvian Lyndal When we call `bind()` or `connect()`, the `addr` and `port` should be in big endian value representation. Portability notes: - Do not hard code the address with integer like this `0x0100007fU`. Instead, use `inet_addr("127.0.0.1")` to ensure portability for the machine with different endianess. It's also cleaner and more readable to use `inet_addr()` from `#include <arpa/inet.h>`. - Use `htons(port_number)` to make sure the port_number is properly choosen instead directly assign it with integer (still about endianess problem). This commit fixes endianess issue in these files: test/232c93d07b74-test.c test/accept-link.c test/accept.c test/poll-link.c test/shutdown.c test/socket-rw-eagain.c test/socket-rw.c Fixes: 08bd815170ab4352d71019f4d3e532cd3f6f0489 ("Un-DOSify test/232c93d07b74-test.c") Fixes: 4bce856d43ab1f9a64477aa5a8f9f02f53e64b74 ("Improve reliability of poll/accept-link tests") Fixes: 76e3b7921fee98a5627cd270628b6a5160d3857d ("Add nonblock empty socket read test") Fixes: 7de625356997dea66826007676224285d407a0fe ("test/accept: code reuse cleanup") Fixes: 8a3a8d744db428a326e2f54093665411734fa3a8 ("Add IORING_OP_SHUTDOWN test case") Fixes: e3adbfc235da96ac97a9cafac78292a22eb12036 ("Moves function calls out of assert().") Suggested-by: Louvian Lyndal <[email protected]> Signed-off-by: Ammar Faizi <[email protected]> --- test/232c93d07b74-test.c | 9 +++++---- test/accept-link.c | 11 +++++++---- test/accept.c | 5 +++-- test/poll-link.c | 11 +++++++---- test/shutdown.c | 5 +++-- test/socket-rw-eagain.c | 5 +++-- test/socket-rw.c | 5 +++-- 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/test/232c93d07b74-test.c b/test/232c93d07b74-test.c index cd194cb..4153aef 100644 --- a/test/232c93d07b74-test.c +++ b/test/232c93d07b74-test.c @@ -19,6 +19,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -75,8 +76,8 @@ static void *rcv(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = PORT; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons(PORT); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); res = bind(s0, (struct sockaddr *) &addr, sizeof(addr)); assert(res != -1); } else { @@ -190,8 +191,8 @@ static void *snd(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = PORT; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons(PORT); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); ret = connect(s0, (struct sockaddr*) &addr, sizeof(addr)); assert(ret != -1); } else { diff --git a/test/accept-link.c b/test/accept-link.c index 605e0ec..f111275 100644 --- a/test/accept-link.c +++ b/test/accept-link.c @@ -11,6 +11,7 @@ #include <netinet/tcp.h> #include <netinet/in.h> #include <poll.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,7 +43,8 @@ struct data { unsigned expected[2]; unsigned just_positive[2]; unsigned long timeout; - int port; + unsigned short port; + unsigned int addr; int stop; }; @@ -63,7 +65,7 @@ static void *send_thread(void *arg) addr.sin_family = AF_INET; addr.sin_port = data->port; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = data->addr; ret = connect(s0, (struct sockaddr*)&addr, sizeof(addr)); assert(ret != -1); @@ -95,11 +97,12 @@ void *recv_thread(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + data->addr = inet_addr("127.0.0.1"); + addr.sin_addr.s_addr = data->addr; i = 0; do { - data->port = 1025 + (rand() % 64510); + data->port = htons(1025 + (rand() % 64510)); addr.sin_port = data->port; if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) diff --git a/test/accept.c b/test/accept.c index 0c69b98..a4fc677 100644 --- a/test/accept.c +++ b/test/accept.c @@ -17,6 +17,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "helpers.h" #include "liburing.h" @@ -107,8 +108,8 @@ static int start_accept_listen(struct sockaddr_in *addr, int port_off) addr = &laddr; addr->sin_family = AF_INET; - addr->sin_port = 0x1235 + port_off; - addr->sin_addr.s_addr = 0x0100007fU; + addr->sin_port = htons(0x1235 + port_off); + addr->sin_addr.s_addr = inet_addr("127.0.0.1"); ret = bind(fd, (struct sockaddr*)addr, sizeof(*addr)); assert(ret != -1); diff --git a/test/poll-link.c b/test/poll-link.c index 4b4f9aa..197ad77 100644 --- a/test/poll-link.c +++ b/test/poll-link.c @@ -11,6 +11,7 @@ #include <netinet/tcp.h> #include <netinet/in.h> #include <poll.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,7 +43,8 @@ struct data { unsigned expected[2]; unsigned is_mask[2]; unsigned long timeout; - int port; + unsigned short port; + unsigned int addr; int stop; }; @@ -59,7 +61,7 @@ static void *send_thread(void *arg) addr.sin_family = AF_INET; addr.sin_port = data->port; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = data->addr; if (connect(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) wait_for_var(&recv_thread_done); @@ -90,11 +92,12 @@ void *recv_thread(void *arg) struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + data->addr = inet_addr("127.0.0.1"); + addr.sin_addr.s_addr = data->addr; i = 0; do { - data->port = 1025 + (rand() % 64510); + data->port = htons(1025 + (rand() % 64510)); addr.sin_port = data->port; if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1) diff --git a/test/shutdown.c b/test/shutdown.c index 5aa1371..20bcc77 100644 --- a/test/shutdown.c +++ b/test/shutdown.c @@ -15,6 +15,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -42,8 +43,8 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_port = (rand() % 61440) + 4096; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_port = htons((rand() % 61440) + 4096); + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); assert(ret != -1); diff --git a/test/socket-rw-eagain.c b/test/socket-rw-eagain.c index cc87aca..9854e00 100644 --- a/test/socket-rw-eagain.c +++ b/test/socket-rw-eagain.c @@ -15,6 +15,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -38,10 +39,10 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); do { - addr.sin_port = (rand() % 61440) + 4096; + addr.sin_port = htons((rand() % 61440) + 4096); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); if (!ret) break; diff --git a/test/socket-rw.c b/test/socket-rw.c index 1b731b2..5afd14d 100644 --- a/test/socket-rw.c +++ b/test/socket-rw.c @@ -17,6 +17,7 @@ #include <sys/un.h> #include <netinet/tcp.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "liburing.h" @@ -40,10 +41,10 @@ int main(int argc, char *argv[]) assert(ret != -1); addr.sin_family = AF_INET; - addr.sin_addr.s_addr = 0x0100007fU; + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); do { - addr.sin_port = (rand() % 61440) + 4096; + addr.sin_port = htons((rand() % 61440) + 4096); ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr)); if (!ret) break; -- 2.30.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness 2021-09-27 13:40 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi @ 2021-09-27 13:40 ` Ammar Faizi 2021-09-27 13:45 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe 2 siblings, 0 replies; 8+ messages in thread From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw) To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List The use of `rand()` should be accompanied by `srand()`. Signed-off-by: Ammar Faizi <[email protected]> --- test/accept-link.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/accept-link.c b/test/accept-link.c index f111275..68db5be 100644 --- a/test/accept-link.c +++ b/test/accept-link.c @@ -240,6 +240,9 @@ int main(int argc, char *argv[]) { if (argc > 1) return 0; + + srand(getpid()); + if (test_accept_timeout(0, 200000000)) { fprintf(stderr, "accept timeout 0 failed\n"); return 1; -- 2.30.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH liburing v2 0/2] Fix endianess issue and add srand() 2021-09-27 13:40 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi @ 2021-09-27 13:45 ` Jens Axboe 2 siblings, 0 replies; 8+ messages in thread From: Jens Axboe @ 2021-09-27 13:45 UTC (permalink / raw) To: Ammar Faizi; +Cc: io_uring Mailing List On 9/27/21 7:40 AM, Ammar Faizi wrote: > On Mon, Sep 27, 2021 at 8:28 PM Jens Axboe <[email protected]> wrote: >> >> On 9/26/21 10:37 PM, Ammar Faizi wrote: >>> The use of `rand()` should be accompanied by `srand()`. >> >> The idiomatic way that I usually do it for these tests is: >> >> srand(getpid()); >> >> Shouldn't really matter, but we may as well keep it consistent. > > v2: Use getpid() for the random seed. Applied, thanks. -- Jens Axboe ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-09-27 13:46 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-09-27 4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi 2021-09-27 4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi 2021-09-27 13:28 ` Jens Axboe 2021-09-27 13:40 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi 2021-09-27 13:40 ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi 2021-09-27 13:45 ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox