diff options
Diffstat (limited to 'tests/tls.c')
| -rw-r--r-- | tests/tls.c | 112 |
1 files changed, 108 insertions, 4 deletions
diff --git a/tests/tls.c b/tests/tls.c index 087234ff..4ce12ea8 100644 --- a/tests/tls.c +++ b/tests/tls.c @@ -107,13 +107,14 @@ static const char key[] = static int check_props_v4(nng_msg *msg) { - nng_pipe p; - size_t z; + nng_pipe p; + size_t z; + bool b; + nng_sockaddr la; + nng_sockaddr ra; p = nng_msg_get_pipe(msg); So(p > 0); - nng_sockaddr la; - nng_sockaddr ra; // Typed access So(nng_pipe_getopt_sockaddr(p, NNG_OPT_LOCADDR, &la) == 0); @@ -130,12 +131,19 @@ check_props_v4(nng_msg *msg) So(ra.s_in.sa_port != 0); So(ra.s_in.sa_addr == htonl(0x7f000001)); + So(nng_pipe_getopt_bool(p, NNG_OPT_TCP_KEEPALIVE, &b) == 0); + So(b == false); // default + + So(nng_pipe_getopt_bool(p, NNG_OPT_TCP_NODELAY, &b) == 0); + So(b == true); // default + // Check for type enforcement int i; So(nng_pipe_getopt_int(p, NNG_OPT_REMADDR, &i) == NNG_EBADTYPE); z = 1; So(nng_pipe_getopt(p, NNG_OPT_REMADDR, &ra, &z) == NNG_EINVAL); + return (0); } @@ -468,4 +476,100 @@ TestMain("TLS Transport", { NNG_EBADTYPE); nng_msg_free(msg); }); + + Convey("No delay option", { + nng_socket s; + nng_dialer d; + nng_listener l; + bool v; + int x; + + So(nng_pair_open(&s) == 0); + Reset({ nng_close(s); }); + So(nng_getopt_bool(s, NNG_OPT_TCP_NODELAY, &v) == NNG_ENOTSUP); + So(nng_dialer_create(&d, s, "tcp://127.0.0.1:4999") == 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_NODELAY, &v) == 0); + So(v == true); + So(nng_dialer_setopt_bool(d, NNG_OPT_TCP_NODELAY, false) == 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_NODELAY, &v) == 0); + So(v == false); + So(nng_dialer_getopt_int(d, NNG_OPT_TCP_NODELAY, &x) == + NNG_EBADTYPE); + x = 0; + So(nng_dialer_setopt_int(d, NNG_OPT_TCP_NODELAY, x) == + NNG_EBADTYPE); + // This assumes sizeof (bool) != sizeof (int) + So(nng_dialer_setopt(d, NNG_OPT_TCP_NODELAY, &x, sizeof(x)) == + NNG_EINVAL); + + So(nng_listener_create(&l, s, "tcp://127.0.0.1:4999") == 0); + So(nng_listener_getopt_bool(l, NNG_OPT_TCP_NODELAY, &v) == 0); + So(v == true); + x = 0; + So(nng_listener_setopt_int(l, NNG_OPT_TCP_NODELAY, x) == + NNG_EBADTYPE); + // This assumes sizeof (bool) != sizeof (int) + So(nng_listener_setopt( + l, NNG_OPT_TCP_NODELAY, &x, sizeof(x)) == NNG_EINVAL); + + nng_dialer_close(d); + nng_listener_close(l); + + // Make sure socket wide defaults apply. + So(nng_setopt_bool(s, NNG_OPT_TCP_NODELAY, true) == 0); + v = false; + So(nng_getopt_bool(s, NNG_OPT_TCP_NODELAY, &v) == 0); + So(v == true); + So(nng_setopt_bool(s, NNG_OPT_TCP_NODELAY, false) == 0); + So(nng_dialer_create(&d, s, "tcp://127.0.0.1:4999") == 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_NODELAY, &v) == 0); + So(v == false); + }); + + Convey("Keepalive option", { + nng_socket s; + nng_dialer d; + nng_listener l; + bool v; + int x; + + So(nng_pair_open(&s) == 0); + Reset({ nng_close(s); }); + So(nng_getopt_bool(s, NNG_OPT_TCP_KEEPALIVE, &v) == + NNG_ENOTSUP); + So(nng_dialer_create(&d, s, "tcp://127.0.0.1:4999") == 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_KEEPALIVE, &v) == 0); + So(v == false); + So(nng_dialer_setopt_bool(d, NNG_OPT_TCP_KEEPALIVE, true) == + 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_KEEPALIVE, &v) == 0); + So(v == true); + So(nng_dialer_getopt_int(d, NNG_OPT_TCP_KEEPALIVE, &x) == + NNG_EBADTYPE); + x = 1; + So(nng_dialer_setopt_int(d, NNG_OPT_TCP_KEEPALIVE, x) == + NNG_EBADTYPE); + + So(nng_listener_create(&l, s, "tcp://127.0.0.1:4999") == 0); + So(nng_listener_getopt_bool(l, NNG_OPT_TCP_KEEPALIVE, &v) == + 0); + So(v == false); + x = 1; + So(nng_listener_setopt_int(l, NNG_OPT_TCP_KEEPALIVE, x) == + NNG_EBADTYPE); + + nng_dialer_close(d); + nng_listener_close(l); + + // Make sure socket wide defaults apply. + So(nng_setopt_bool(s, NNG_OPT_TCP_KEEPALIVE, false) == 0); + v = true; + So(nng_getopt_bool(s, NNG_OPT_TCP_KEEPALIVE, &v) == 0); + So(v == false); + So(nng_setopt_bool(s, NNG_OPT_TCP_KEEPALIVE, true) == 0); + So(nng_dialer_create(&d, s, "tcp://127.0.0.1:4999") == 0); + So(nng_dialer_getopt_bool(d, NNG_OPT_TCP_KEEPALIVE, &v) == 0); + So(v == true); + }); + }) |
