From 53e8dbbe3c2bd82fb7ac8583a45e7fcfec173cc1 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 20 Oct 2024 23:43:44 -0700 Subject: remove legacy support for configuration of transport options on socket Transport specific options should be configured on the end point. This has the most impact for TLS, as TLS dialers and listeners will need to be allocated apriori, to configure TLS options. Some legacy tests were removed... we're going to remove the legacy libnanomsg compatibility layer anyway. --- src/compat/nanomsg/compat_tcp_test.c | 29 +------- src/core/sock_test.c | 71 ++++--------------- src/core/socket.c | 83 ----------------------- src/platform/posix/posix_tcpdial.c | 3 +- src/platform/posix/posix_tcplisten.c | 3 +- src/platform/windows/win_tcpdial.c | 1 + src/sp/transport/tcp/tcp_test.c | 30 -------- src/sp/transport/tls/tls_tran_test.c | 128 ++++++++++------------------------- 8 files changed, 57 insertions(+), 291 deletions(-) (limited to 'src') diff --git a/src/compat/nanomsg/compat_tcp_test.c b/src/compat/nanomsg/compat_tcp_test.c index d090463f..a23c878d 100644 --- a/src/compat/nanomsg/compat_tcp_test.c +++ b/src/compat/nanomsg/compat_tcp_test.c @@ -93,32 +93,6 @@ test_bad_addresses(void) NUTS_NN_PASS(nn_close(s)); } -void -test_no_delay(void) -{ - int s; - int opt; - size_t sz; - NUTS_TRUE((s = nn_socket(AF_SP, NN_PAIR)) >= 0); - - sz = sizeof(opt); - NUTS_NN_PASS(nn_getsockopt(s, NN_TCP, NN_TCP_NODELAY, &opt, &sz)); - NUTS_TRUE(sz == sizeof(opt)); - NUTS_TRUE(opt == 0); - opt = 2; - NUTS_NN_FAIL( - nn_setsockopt(s, NN_TCP, NN_TCP_NODELAY, &opt, sz), EINVAL); - - opt = 1; - NUTS_NN_PASS(nn_setsockopt(s, NN_TCP, NN_TCP_NODELAY, &opt, sz)); - - opt = 3; - NUTS_NN_PASS(nn_getsockopt(s, NN_TCP, NN_TCP_NODELAY, &opt, &sz)); - NUTS_TRUE(sz == sizeof(opt)); - NUTS_TRUE(opt == 1); - NUTS_NN_PASS(nn_close(s)); -} - void test_ping_pong(void) { @@ -201,7 +175,7 @@ test_max_recv_size(void) int n; size_t sz; char buf[64]; - char *addr; + char *addr; NUTS_ADDR(addr, "tcp"); @@ -251,7 +225,6 @@ TEST_LIST = { { "compat tcp connect and close ", test_connect_and_close }, { "compat tcp bind and connect ", test_bind_and_connect }, { "compat tcp invalid addresses", test_bad_addresses }, - { "compat tcp no delay option", test_no_delay }, { "compat tcp ping pong", test_ping_pong }, { "compat tcp pair reject", test_pair_reject }, { "compat tcp addr in use", test_addr_in_use }, diff --git a/src/core/sock_test.c b/src/core/sock_test.c index fbf70537..f785d9c0 100644 --- a/src/core/sock_test.c +++ b/src/core/sock_test.c @@ -15,7 +15,7 @@ test_recv_timeout(void) { nng_socket s1; uint64_t now; - nng_msg * msg = NULL; + nng_msg *msg = NULL; NUTS_OPEN(s1); NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); @@ -32,7 +32,7 @@ test_recv_nonblock(void) { nng_socket s1; uint64_t now; - nng_msg * msg = NULL; + nng_msg *msg = NULL; NUTS_OPEN(s1); NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); @@ -48,7 +48,7 @@ test_send_timeout(void) { nng_socket s1; uint64_t now; - nng_msg * msg; + nng_msg *msg; NUTS_OPEN(s1); NUTS_PASS(nng_msg_alloc(&msg, 0)); @@ -66,7 +66,7 @@ test_send_nonblock(void) { nng_socket s1; uint64_t now; - nng_msg * msg; + nng_msg *msg; NUTS_OPEN(s1); NUTS_PASS(nng_msg_alloc(&msg, 0)); @@ -108,9 +108,9 @@ test_socket_name(void) { nng_socket s1; char name[128]; // 64 is max - char * str; + char *str; long id; - char * end; + char *end; size_t sz; sz = sizeof(name); @@ -175,8 +175,8 @@ test_send_recv(void) int len; size_t sz; nng_duration to = 3000; // 3 seconds - char * buf; - char * a = "inproc://t1"; + char *buf; + char *a = "inproc://t1"; NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -215,8 +215,8 @@ test_send_recv_zero_length(void) int len; size_t sz; nng_duration to = 3000; // 3 seconds - char * buf; - char * a = "inproc://send-recv-zero-length"; + char *buf; + char *a = "inproc://send-recv-zero-length"; NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -259,11 +259,11 @@ test_connection_refused(void) void test_late_connection(void) { - char * buf; + char *buf; size_t sz; nng_socket s1; nng_socket s2; - char * a = "inproc://asy"; + char *a = "inproc://asy"; NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -287,7 +287,7 @@ test_late_connection(void) void test_address_busy(void) { - char * a = "inproc://eaddrinuse"; + char *a = "inproc://eaddrinuse"; nng_listener l = NNG_LISTENER_INITIALIZER; nng_dialer d = NNG_DIALER_INITIALIZER; nng_socket s1; @@ -323,7 +323,7 @@ test_endpoint_types(void) nng_listener l = NNG_LISTENER_INITIALIZER; nng_dialer d2; nng_listener l2; - char * a = "inproc://mumble..."; + char *a = "inproc://mumble..."; bool b; NUTS_OPEN(s1); @@ -400,30 +400,10 @@ test_listener_options(void) NUTS_OPEN(s1); -#ifndef NNG_ELIDE_DEPRECATED - // Create a listener with the specified options - NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); NUTS_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); - NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 543); - - // Verify endpoint overrides NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); NUTS_TRUE(sz == 678); - NUTS_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 543); - - // And socket overrides again - NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); - NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 911); -#else - NUTS_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); - NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); - NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 678); -#endif // Cannot set invalid options NUTS_FAIL(nng_listener_set_size(l, "BAD_OPT", 1), NNG_ENOTSUP); @@ -456,31 +436,10 @@ test_dialer_options(void) NUTS_OPEN(s1); -#ifndef NNG_ELIDE_DEPRECATED - // NOTE: This test will fail if eliding deprecated behavior. - // Create a dialer with the specified options - NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); NUTS_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); - NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 543); - - // Verify endpoint overrides NUTS_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); NUTS_TRUE(sz == 678); - NUTS_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 543); - - // And socket overrides again - NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); - NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 911); -#else - NUTS_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); - NUTS_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); - NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - NUTS_TRUE(sz == 678); -#endif // Cannot set invalid options NUTS_FAIL(nng_dialer_set_size(d, "BAD_OPT", 1), NNG_ENOTSUP); @@ -588,7 +547,7 @@ test_size_options(void) nng_socket s1; size_t val; size_t sz; - char * opt; + char *opt; char *cases[] = { NNG_OPT_RECVMAXSZ, diff --git a/src/core/socket.c b/src/core/socket.c index c4e16f70..88a11382 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1036,57 +1036,6 @@ nni_sock_setopt( 0) { return (rv); } - -#if !defined(NNG_ELIDE_DEPRECATED) - // TCP options, set via socket is deprecated. - } else if ((strcmp(name, NNG_OPT_TCP_KEEPALIVE) == 0) || - (strcmp(name, NNG_OPT_TCP_NODELAY)) == 0) { - if ((rv = nni_copyin_bool(NULL, v, sz, t)) != 0) { - return (rv); - } -#endif - -#if defined(NNG_SUPP_TLS) && !defined(NNG_ELIDE_DEPRECATED) - // TLS options may not be supported if TLS is not - // compiled in. Supporting all these is deprecated. - } else if (strcmp(name, NNG_OPT_TLS_CONFIG) == 0) { - nng_tls_config *tc; - if ((rv = nni_copyin_ptr((void **) &tc, v, sz, t)) != 0) { - return (rv); - } - // place a hold on this configuration object - nng_tls_config_hold(tc); - - } else if ((strcmp(name, NNG_OPT_TLS_SERVER_NAME) == 0) || - (strcmp(name, NNG_OPT_TLS_CA_FILE) == 0) || - (strcmp(name, NNG_OPT_TLS_CERT_KEY_FILE) == 0)) { - if ((t != NNI_TYPE_OPAQUE) && (t != NNI_TYPE_STRING)) { - return (NNG_EBADTYPE); - } - if (nni_strnlen(v, sz) >= sz) { - return (NNG_EINVAL); - } - } else if ((strcmp(name, NNG_OPT_TLS_AUTH_MODE) == 0)) { - // 0, 1, or 2 (none, optional, required) - if ((rv = nni_copyin_int(NULL, v, sz, 0, 2, t)) != 0) { - return (rv); - } -#endif - -#if defined(NNG_PLATFORM_POSIX) && !defined(NNG_ELIDE_DEPRECATED) - } else if (strcmp(name, NNG_OPT_IPC_PERMISSIONS) == 0) { - // UNIX mode bits are 0777, but allow set id and sticky bits - if ((rv = nni_copyin_int(NULL, v, sz, 0, 07777, t)) != 0) { - return (rv); - } -#endif - -#if defined(NNG_PLATFORM_WINDOWS) && !defined(NNG_ELIDE_DEPRECATED) - } else if (strcmp(name, NNG_OPT_IPC_SECURITY_DESCRIPTOR) == 0) { - if ((rv = nni_copyin_ptr(NULL, v, sz, t)) == 0) { - return (rv); - } -#endif } // Prepare a copy of the socket option. @@ -1122,38 +1071,6 @@ nni_sock_setopt( } } -#ifndef NNG_ELIDE_DEPRECATED - nni_dialer *d; - nni_listener *l; - - // Apply the options. Failure to set any option on any - // transport (other than ENOTSUP) stops the operation - // altogether. Its important that transport wide checks - // properly pre-validate. - NNI_LIST_FOREACH (&s->s_listeners, l) { - int x; - x = nni_listener_setopt(l, optv->name, optv->data, sz, t); - if (x != NNG_ENOTSUP) { - if ((rv = x) != 0) { - nni_mtx_unlock(&s->s_mx); - nni_free_opt(optv); - return (rv); - } - } - } - NNI_LIST_FOREACH (&s->s_dialers, d) { - int x; - x = nni_dialer_setopt(d, optv->name, optv->data, sz, t); - if (x != NNG_ENOTSUP) { - if ((rv = x) != 0) { - nni_mtx_unlock(&s->s_mx); - nni_free_opt(optv); - return (rv); - } - } - } -#endif - if (rv == 0) { // Remove and toss the old value; we are using a new one. if (oldv != NULL) { diff --git a/src/platform/posix/posix_tcpdial.c b/src/platform/posix/posix_tcpdial.c index cf3d9368..6aea8ae5 100644 --- a/src/platform/posix/posix_tcpdial.c +++ b/src/platform/posix/posix_tcpdial.c @@ -37,7 +37,8 @@ nni_tcp_dialer_init(nni_tcp_dialer **dp) return (NNG_ENOMEM); } nni_mtx_init(&d->mtx); - d->closed = false; + d->closed = false; + d->nodelay = true; nni_aio_list_init(&d->connq); nni_atomic_init_bool(&d->fini); nni_atomic_init64(&d->ref); diff --git a/src/platform/posix/posix_tcplisten.c b/src/platform/posix/posix_tcplisten.c index 95be4beb..a38411c5 100644 --- a/src/platform/posix/posix_tcplisten.c +++ b/src/platform/posix/posix_tcplisten.c @@ -1,5 +1,5 @@ // -// Copyright 2020 Staysail Systems, Inc. +// Copyright 2024 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // Copyright 2018 Devolutions // @@ -56,6 +56,7 @@ nni_tcp_listener_init(nni_tcp_listener **lp) l->pfd = NULL; l->closed = false; l->started = false; + l->nodelay = true; nni_aio_list_init(&l->acceptq); *lp = l; diff --git a/src/platform/windows/win_tcpdial.c b/src/platform/windows/win_tcpdial.c index bc5d6f5d..dbdd0762 100644 --- a/src/platform/windows/win_tcpdial.c +++ b/src/platform/windows/win_tcpdial.c @@ -43,6 +43,7 @@ nni_tcp_dialer_init(nni_tcp_dialer **dp) ZeroMemory(d, sizeof(*d)); nni_mtx_init(&d->mtx); nni_aio_list_init(&d->aios); + d->nodelay = true; // Create a scratch socket for use with ioctl. s = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP); diff --git a/src/sp/transport/tcp/tcp_test.c b/src/sp/transport/tcp/tcp_test.c index 005fd2b0..5a4e5647 100644 --- a/src/sp/transport/tcp/tcp_test.c +++ b/src/sp/transport/tcp/tcp_test.c @@ -144,10 +144,6 @@ test_tcp_no_delay_option(void) NUTS_ADDR(addr, "tcp"); NUTS_OPEN(s); -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v); -#endif NUTS_PASS(nng_dialer_create(&d, s, addr)); NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); NUTS_TRUE(v); @@ -178,17 +174,6 @@ test_tcp_no_delay_option(void) NUTS_PASS(nng_dialer_close(d)); NUTS_PASS(nng_listener_close(l)); - // Make sure socket wide defaults apply. -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, true)); - v = false; - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v); - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, false)); - NUTS_PASS(nng_dialer_create(&d, s, addr)); - NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v == false); -#endif NUTS_CLOSE(s); } @@ -204,10 +189,6 @@ test_tcp_keep_alive_option(void) NUTS_ADDR(addr, "tcp"); NUTS_OPEN(s); -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v == false); -#endif NUTS_PASS(nng_dialer_create(&d, s, addr)); NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); NUTS_TRUE(v == false); @@ -230,17 +211,6 @@ test_tcp_keep_alive_option(void) NUTS_PASS(nng_dialer_close(d)); NUTS_PASS(nng_listener_close(l)); - // Make sure socket wide defaults apply. -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, false)); - v = true; - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v == false); - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, true)); - NUTS_PASS(nng_dialer_create(&d, s, addr)); - NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v); -#endif NUTS_CLOSE(s); } diff --git a/src/sp/transport/tls/tls_tran_test.c b/src/sp/transport/tls/tls_tran_test.c index d2425b09..ee11d8b9 100644 --- a/src/sp/transport/tls/tls_tran_test.c +++ b/src/sp/transport/tls/tls_tran_test.c @@ -49,18 +49,15 @@ tls_client_config(void) static void test_tls_wild_card_connect_fail(void) { - nng_socket s; - nng_tls_config *c; - char addr[NNG_MAXADDRLEN]; + nng_socket s; + nng_dialer d; + char addr[NNG_MAXADDRLEN]; NUTS_OPEN(s); - c = tls_client_config(); - nng_socket_set_ptr(s, NNG_OPT_TLS_CONFIG, c); (void) snprintf( addr, sizeof(addr), "tls+tcp://*:%u", nuts_next_port()); - NUTS_FAIL(nng_dial(s, addr, NULL, 0), NNG_EADDRINVAL); + NUTS_FAIL(nng_dialer_create(&d, s, addr), NNG_EADDRINVAL); NUTS_CLOSE(s); - nng_tls_config_free(c); } void @@ -68,6 +65,8 @@ test_tls_wild_card_bind(void) { nng_socket s1; nng_socket s2; + nng_listener l; + nng_dialer d; char addr[NNG_MAXADDRLEN]; uint16_t port; nng_tls_config *cc; @@ -81,11 +80,13 @@ test_tls_wild_card_bind(void) NUTS_OPEN(s1); NUTS_OPEN(s2); (void) snprintf(addr, sizeof(addr), "tls+tcp4://*:%u", port); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, sc); - nng_socket_set_ptr(s2, NNG_OPT_TLS_CONFIG, cc); - NUTS_PASS(nng_listen(s1, addr, NULL, 0)); + NUTS_PASS(nng_listener_create(&l, s1, addr)); + NUTS_PASS(nng_listener_set_ptr(l, NNG_OPT_TLS_CONFIG, sc)); + NUTS_PASS(nng_listener_start(l, 0)); (void) snprintf(addr, sizeof(addr), "tls+tcp://127.0.0.1:%u", port); - NUTS_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_PASS(nng_dialer_create(&d, s2, addr)); + NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, cc)); + NUTS_PASS(nng_dialer_start(d, 0)); NUTS_CLOSE(s2); NUTS_CLOSE(s1); nng_tls_config_free(cc); @@ -100,22 +101,25 @@ test_tls_port_zero_bind(void) nng_tls_config *c1, *c2; nng_sockaddr sa; nng_listener l; + nng_dialer d; char *addr; c1 = tls_server_config(); c2 = tls_client_config(); NUTS_OPEN(s1); NUTS_OPEN(s2); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1); - nng_socket_set_ptr(s2, NNG_OPT_TLS_CONFIG, c2); - NUTS_PASS(nng_listen(s1, "tls+tcp://127.0.0.1:0", &l, 0)); + NUTS_PASS(nng_listener_create(&l, s1, "tls+tcp://127.0.0.1:0")); + NUTS_PASS(nng_listener_set_ptr(l, NNG_OPT_TLS_CONFIG, c1)); + NUTS_PASS(nng_listener_start(l, 0)); NUTS_PASS(nng_listener_get_string(l, NNG_OPT_URL, &addr)); NUTS_TRUE(memcmp(addr, "tls+tcp://", 6) == 0); NUTS_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa)); NUTS_TRUE(sa.s_in.sa_family == NNG_AF_INET); NUTS_TRUE(sa.s_in.sa_port != 0); NUTS_TRUE(sa.s_in.sa_addr = nuts_be32(0x7f000001)); - NUTS_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_PASS(nng_dialer_create(&d, s2, addr)); + NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, c2)); + NUTS_PASS(nng_dialer_start(d, 0)); nng_strfree(addr); NUTS_CLOSE(s2); NUTS_CLOSE(s1); @@ -130,6 +134,8 @@ test_tls_local_address_connect(void) nng_socket s1; nng_socket s2; nng_tls_config *c1, *c2; + nng_dialer d; + nng_listener l; char addr[NNG_MAXADDRLEN]; uint16_t port; @@ -137,62 +143,28 @@ test_tls_local_address_connect(void) c2 = tls_client_config(); NUTS_OPEN(s1); NUTS_OPEN(s2); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1); - nng_socket_set_ptr(s2, NNG_OPT_TLS_CONFIG, c2); port = nuts_next_port(); (void) snprintf(addr, sizeof(addr), "tls+tcp://127.0.0.1:%u", port); - NUTS_PASS(nng_listen(s1, addr, NULL, 0)); + NUTS_PASS(nng_listener_create(&l, s1, addr)); + NUTS_PASS(nng_listener_set_ptr(l, NNG_OPT_TLS_CONFIG, c1)); + NUTS_PASS(nng_listener_start(l, 0)); (void) snprintf( addr, sizeof(addr), "tls+tcp://127.0.0.1;127.0.0.1:%u", port); - NUTS_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_PASS(nng_dialer_create(&d, s2, addr)); + NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, c2)); + NUTS_PASS(nng_dialer_start(d, 0)); NUTS_CLOSE(s2); NUTS_CLOSE(s1); nng_tls_config_free(c1); nng_tls_config_free(c2); } -void -test_tls_bad_local_interface(void) -{ - nng_socket s1; - nng_tls_config *c1; - int rv; - - c1 = tls_client_config(); - NUTS_OPEN(s1); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1); - nng_tls_config_free(c1); // ref count held by socket - rv = nng_dial(s1, "tcp://bogus1;127.0.0.1:80", NULL, 0), - NUTS_TRUE(rv != 0); - NUTS_TRUE(rv != NNG_ECONNREFUSED); - NUTS_CLOSE(s1); -} - -void -test_tls_non_local_address(void) -{ - nng_socket s1; - nng_tls_config *c1; - - c1 = tls_client_config(); - NUTS_OPEN(s1); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1); - NUTS_FAIL(nng_dial(s1, "tls+tcp://8.8.8.8;127.0.0.1:80", NULL, 0), - NNG_EADDRINVAL); - NUTS_CLOSE(s1); - nng_tls_config_free(c1); -} - void test_tls_malformed_address(void) { - nng_socket s1; - nng_tls_config *c1; + nng_socket s1; NUTS_OPEN(s1); - c1 = tls_client_config(); - nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1); - nng_tls_config_free(c1); NUTS_FAIL( nng_dial(s1, "tls+tcp://127.0.0.1", NULL, 0), NNG_EADDRINVAL); NUTS_FAIL( @@ -222,10 +194,6 @@ test_tls_no_delay_option(void) lc = tls_server_config(); NUTS_OPEN(s); -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v); -#endif NUTS_PASS(nng_dialer_create(&d, s, addr)); NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, dc)); NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); @@ -258,17 +226,6 @@ test_tls_no_delay_option(void) NUTS_PASS(nng_dialer_close(d)); NUTS_PASS(nng_listener_close(l)); - // Make sure socket wide defaults apply. -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, true)); - v = false; - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v); - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, false)); - NUTS_PASS(nng_dialer_create(&d, s, addr)); - NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); - NUTS_TRUE(v == false); -#endif NUTS_CLOSE(s); nng_tls_config_free(lc); nng_tls_config_free(dc); @@ -289,10 +246,6 @@ test_tls_keep_alive_option(void) lc = tls_server_config(); NUTS_ADDR(addr, "tls+tcp"); NUTS_OPEN(s); -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v == false); -#endif NUTS_PASS(nng_dialer_create(&d, s, addr)); NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, dc)); NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); @@ -317,17 +270,6 @@ test_tls_keep_alive_option(void) NUTS_PASS(nng_dialer_close(d)); NUTS_PASS(nng_listener_close(l)); - // Make sure socket wide defaults apply. -#ifndef NNG_ELIDE_DEPRECATED - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, false)); - v = true; - NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v == false); - NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, true)); - NUTS_PASS(nng_dialer_create(&d, s, addr)); - NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); - NUTS_TRUE(v); -#endif NUTS_CLOSE(s); nng_tls_config_free(lc); nng_tls_config_free(dc); @@ -342,6 +284,7 @@ test_tls_recv_max(void) nng_socket s1; nng_tls_config *c0, *c1; nng_listener l; + nng_dialer d; size_t sz; char *addr; @@ -360,8 +303,9 @@ test_tls_recv_max(void) NUTS_PASS(nng_listener_start(l, 0)); NUTS_OPEN(s1); - NUTS_PASS(nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1)); - NUTS_PASS(nng_dial(s1, addr, NULL, 0)); + NUTS_PASS(nng_dialer_create(&d, s1, addr)); + NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, c1)); + NUTS_PASS(nng_dialer_start(d, 0)); NUTS_PASS(nng_send(s1, msg, 95, 0)); NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100)); NUTS_PASS(nng_recv(s0, buf, &sz, 0)); @@ -383,6 +327,7 @@ test_tls_psk(void) nng_socket s1; nng_tls_config *c0, *c1; nng_listener l; + nng_dialer d; size_t sz; char *addr; uint8_t key[32]; @@ -402,8 +347,9 @@ test_tls_psk(void) NUTS_PASS(nng_listener_start(l, 0)); NUTS_OPEN(s1); - NUTS_PASS(nng_socket_set_ptr(s1, NNG_OPT_TLS_CONFIG, c1)); - NUTS_PASS(nng_dial(s1, addr, NULL, 0)); + NUTS_PASS(nng_dialer_create(&d, s1, addr)); + NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, c1)); + NUTS_PASS(nng_dialer_start(d, 0)); NUTS_PASS(nng_send(s1, msg, 95, 0)); NUTS_PASS(nng_recv(s0, buf, &sz, 0)); NUTS_TRUE(sz == 95); @@ -419,8 +365,6 @@ NUTS_TESTS = { { "tls wild card bind", test_tls_wild_card_bind }, { "tls port zero bind", test_tls_port_zero_bind }, { "tls local address connect", test_tls_local_address_connect }, - { "tls bad local interface", test_tls_bad_local_interface }, - { "tls non-local address", test_tls_non_local_address }, { "tls malformed address", test_tls_malformed_address }, { "tls no delay option", test_tls_no_delay_option }, { "tls keep alive option", test_tls_keep_alive_option }, -- cgit v1.2.3-70-g09d2