aboutsummaryrefslogtreecommitdiff
path: root/tests/tls.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tls.c')
-rw-r--r--tests/tls.c112
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);
+ });
+
})