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/sp/transport/tcp/tcp_test.c | 30 -------- src/sp/transport/tls/tls_tran_test.c | 128 ++++++++++------------------------- 2 files changed, 36 insertions(+), 122 deletions(-) (limited to 'src/sp') 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