diff options
author | Fraser Adams <fraser.adams@blueyonder.co.uk> | 2013-11-18 19:28:21 +0000 |
---|---|---|
committer | Fraser Adams <fraser.adams@blueyonder.co.uk> | 2013-11-18 19:28:21 +0000 |
commit | 5e49fbbfdcca308b7f9d747fc66d3c92c03ac241 (patch) | |
tree | 2c92453871495a66c9a387793eeb3a749a2335b8 /tests/sockets/test_sockets_echo_server.c | |
parent | 047280d98decd0c4071b0a044461569b84193023 (diff) |
fix a bug in the accept call in library.js whereby if accept was called with non-NULL addr and addrlen parameters a ReferenceError occurs because accept had a parameter of addrp but later used addr. Modified tests_sockets_echo_server.c to use non-NULL addr if TEST_ACCEPT_ADDR is defined and added test case to test_sockets.py
Diffstat (limited to 'tests/sockets/test_sockets_echo_server.c')
-rw-r--r-- | tests/sockets/test_sockets_echo_server.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/sockets/test_sockets_echo_server.c b/tests/sockets/test_sockets_echo_server.c index dbc912a6..55ace660 100644 --- a/tests/sockets/test_sockets_echo_server.c +++ b/tests/sockets/test_sockets_echo_server.c @@ -72,7 +72,16 @@ void main_loop(void *arg) { #if !USE_UDP // for TCP sockets, we may need to accept a connection if (FD_ISSET(server.fd, &fdr)) { +#if TEST_ACCEPT_ADDR + // Do an accept with non-NULL addr and addlen parameters. This tests a fix to a bug in the implementation of + // accept which had a parameter "addrp" but used "addr" internally if addrp was set - giving a ReferenceError. + struct sockaddr_in addr = {0}; + addr.sin_family = AF_INET; + socklen_t addrlen = sizeof(addr); + client.fd = accept(server.fd, (struct sockaddr *) &addr, &addrlen); +#else client.fd = accept(server.fd, NULL, NULL); +#endif assert(client.fd != -1); } #endif |