From ca6cfe359fa55a5a7f4b6ae73500ffd98e6ee968 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Mon, 18 Nov 2024 01:17:24 -0800 Subject: URL refactor part 1. This eliminates most (but not all) of the dynamic allocations associated with URL objects. A number of convenience fields on the URL are removed, but we are able to use common buffer for most of the details. --- src/sp/transport/socket/sockfd.c | 2 +- src/sp/transport/tcp/tcp_test.c | 13 ++------- src/sp/transport/tls/tls_tran_test.c | 54 ------------------------------------ src/sp/transport/udp/udp_tran_test.c | 13 +-------- src/sp/transport/ws/ws_test.c | 4 +-- 5 files changed, 6 insertions(+), 80 deletions(-) (limited to 'src/sp') diff --git a/src/sp/transport/socket/sockfd.c b/src/sp/transport/socket/sockfd.c index 2db052ac..2313d12d 100644 --- a/src/sp/transport/socket/sockfd.c +++ b/src/sp/transport/socket/sockfd.c @@ -817,7 +817,7 @@ sfd_tran_listener_init(void **lp, nng_url *url, nni_listener *nlistener) nni_sock *sock = nni_listener_sock(nlistener); // Check for invalid URL components -- we only accept a bare scheme - if ((strlen(url->u_host) != 0) || (strlen(url->u_path) != 0) || + if ((strlen(url->u_hostname) != 0) || (strlen(url->u_path) != 0) || (url->u_fragment != NULL) || (url->u_userinfo != NULL) || (url->u_query != NULL)) { return (NNG_EADDRINVAL); diff --git a/src/sp/transport/tcp/tcp_test.c b/src/sp/transport/tcp/tcp_test.c index 57c612b7..c80a259f 100644 --- a/src/sp/transport/tcp/tcp_test.c +++ b/src/sp/transport/tcp/tcp_test.c @@ -10,6 +10,7 @@ // found online at https://opensource.org/licenses/MIT. // +#include "nng/nng.h" #include // TCP tests. @@ -30,19 +31,9 @@ void test_tcp_wild_card_bind(void) { nng_socket s1; - nng_socket s2; - char addr[NNG_MAXADDRLEN]; - uint16_t port; - - port = nuts_next_port(); NUTS_OPEN(s1); - NUTS_OPEN(s2); - (void) snprintf(addr, sizeof(addr), "tcp4://*:%u", port); - NUTS_PASS(nng_listen(s1, addr, NULL, 0)); - (void) snprintf(addr, sizeof(addr), "tcp://127.0.0.1:%u", port); - NUTS_PASS(nng_dial(s2, addr, NULL, 0)); - NUTS_CLOSE(s2); + NUTS_FAIL(nng_listen(s1, "tcp4://*:8080", NULL, 0), NNG_EADDRINVAL); NUTS_CLOSE(s1); } diff --git a/src/sp/transport/tls/tls_tran_test.c b/src/sp/transport/tls/tls_tran_test.c index d6e94899..be049e05 100644 --- a/src/sp/transport/tls/tls_tran_test.c +++ b/src/sp/transport/tls/tls_tran_test.c @@ -46,58 +46,6 @@ tls_client_config(void) return (c); } -static void -test_tls_wild_card_connect_fail(void) -{ - nng_socket s; - nng_dialer d; - char addr[NNG_MAXADDRLEN]; - - NUTS_OPEN(s); - (void) snprintf( - addr, sizeof(addr), "tls+tcp://*:%u", nuts_next_port()); - NUTS_FAIL(nng_dialer_create(&d, s, addr), NNG_EADDRINVAL); - NUTS_CLOSE(s); -} - -void -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; - nng_tls_config *sc; - nng_tls_config *other; - - port = nuts_next_port(); - - sc = tls_server_config(); - cc = tls_client_config(); - - NUTS_OPEN(s1); - NUTS_OPEN(s2); - (void) snprintf(addr, sizeof(addr), "tls+tcp4://*:%u", port); - NUTS_PASS(nng_listener_create(&l, s1, addr)); - NUTS_PASS(nng_listener_set_tls(l, sc)); - NUTS_PASS(nng_listener_get_tls(l, &other)); - NUTS_TRUE(sc == other); - NUTS_PASS(nng_listener_start(l, 0)); - (void) snprintf(addr, sizeof(addr), "tls+tcp://127.0.0.1:%u", port); - NUTS_PASS(nng_dialer_create(&d, s2, addr)); - NUTS_PASS(nng_dialer_set_tls(d, cc)); - NUTS_PASS(nng_dialer_get_tls(d, &other)); - NUTS_TRUE(cc == other); - NUTS_PASS(nng_dialer_start(d, 0)); - NUTS_CLOSE(s2); - NUTS_CLOSE(s1); - nng_tls_config_free(cc); - nng_tls_config_free(sc); -} - void test_tls_port_zero_bind(void) { @@ -329,8 +277,6 @@ test_tls_psk(void) NUTS_TESTS = { - { "tls wild card connect fail", test_tls_wild_card_connect_fail }, - { "tls wild card bind", test_tls_wild_card_bind }, { "tls port zero bind", test_tls_port_zero_bind }, { "tls malformed address", test_tls_malformed_address }, { "tls no delay option", test_tls_no_delay_option }, diff --git a/src/sp/transport/udp/udp_tran_test.c b/src/sp/transport/udp/udp_tran_test.c index 151c2783..781c6ad9 100644 --- a/src/sp/transport/udp/udp_tran_test.c +++ b/src/sp/transport/udp/udp_tran_test.c @@ -29,20 +29,9 @@ void test_udp_wild_card_bind(void) { nng_socket s1; - nng_socket s2; - char addr[NNG_MAXADDRLEN]; - uint16_t port; - - port = nuts_next_port(); NUTS_OPEN(s1); - NUTS_OPEN(s2); - (void) snprintf(addr, sizeof(addr), "udp4://*:%u", port); - NUTS_PASS(nng_listen(s1, addr, NULL, 0)); - nng_msleep(500); - (void) snprintf(addr, sizeof(addr), "udp://127.0.0.1:%u", port); - NUTS_PASS(nng_dial(s2, addr, NULL, 0)); - NUTS_CLOSE(s2); + NUTS_FAIL(nng_listen(s1, "udp://*:8080", NULL, 0), NNG_EADDRINVAL); NUTS_CLOSE(s1); } diff --git a/src/sp/transport/ws/ws_test.c b/src/sp/transport/ws/ws_test.c index 0f514cfe..23158e3f 100644 --- a/src/sp/transport/ws/ws_test.c +++ b/src/sp/transport/ws/ws_test.c @@ -1,5 +1,5 @@ // -// Copyright 2020 Staysail Systems, Inc. +// Copyright 2024 Staysail Systems, Inc. // Copyright 2018 Cody Piersall // // This software is supplied under the terms of the MIT License, a @@ -99,7 +99,7 @@ test_wild_card_host(void) port = nuts_next_port(); // we use ws4 to ensure 127.0.0.1 binding - snprintf(addr, sizeof(addr), "ws4://*:%u/test", port); + snprintf(addr, sizeof(addr), "ws4://:%u/test", port); NUTS_PASS(nng_listen(s1, addr, NULL, 0)); nng_msleep(100); -- cgit v1.2.3-70-g09d2