diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-11-23 08:55:21 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-11-23 09:40:32 -0800 |
| commit | 8f29c19954b7e4f0e47036b37b36ab9cd386ad70 (patch) | |
| tree | 535b12c11e1049f80edd4b7b5564c8e3ebcfb07d /src/sp | |
| parent | d1a0201e25ca2bf1d28c753aef47795144733b8d (diff) | |
| download | nng-8f29c19954b7e4f0e47036b37b36ab9cd386ad70.tar.gz nng-8f29c19954b7e4f0e47036b37b36ab9cd386ad70.tar.bz2 nng-8f29c19954b7e4f0e47036b37b36ab9cd386ad70.zip | |
dialers: add nng_dial_url and nng_dialer_create_url
This allows a URL object to be used for dialing, which may
be easier than using a string if you already have the URL object.
Diffstat (limited to 'src/sp')
| -rw-r--r-- | src/sp/transport.c | 2 | ||||
| -rw-r--r-- | src/sp/transport/tcp/tcp_test.c | 6 | ||||
| -rw-r--r-- | src/sp/transport/udp/udp_tran_test.c | 4 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/sp/transport.c b/src/sp/transport.c index a2220e7b..919a0f37 100644 --- a/src/sp/transport.c +++ b/src/sp/transport.c @@ -41,7 +41,7 @@ nni_sp_tran_find(const char *url) NNI_LIST_FOREACH (&sp_tran_list, t) { size_t len = strlen(t->tran_scheme); if ((strncmp(url, t->tran_scheme, len) == 0) && - (strncmp(url + len, "://", 3) == 0)) { + (url[len] == ':' || url[len] == '\0')) { nni_rwlock_unlock(&sp_tran_lk); return (t); } diff --git a/src/sp/transport/tcp/tcp_test.c b/src/sp/transport/tcp/tcp_test.c index a95e48e7..82abcae1 100644 --- a/src/sp/transport/tcp/tcp_test.c +++ b/src/sp/transport/tcp/tcp_test.c @@ -172,10 +172,14 @@ test_tcp_keep_alive_option(void) bool v; int x; char *addr; + nng_url *url; NUTS_ADDR(addr, "tcp"); + // next cases are just to exercise nng_dialer_create_url + NUTS_PASS(nng_url_parse(&url, addr)); NUTS_OPEN(s); - NUTS_PASS(nng_dialer_create(&d, s, addr)); + NUTS_PASS(nng_dialer_create_url(&d, s, url)); + nng_url_free(url); NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); NUTS_TRUE(v == false); NUTS_PASS(nng_dialer_set_bool(d, NNG_OPT_TCP_KEEPALIVE, true)); diff --git a/src/sp/transport/udp/udp_tran_test.c b/src/sp/transport/udp/udp_tran_test.c index 654df1e2..941b28e0 100644 --- a/src/sp/transport/udp/udp_tran_test.c +++ b/src/sp/transport/udp/udp_tran_test.c @@ -63,7 +63,6 @@ test_udp_port_zero_bind(void) nng_sockaddr sa; nng_listener l; nng_dialer d; - char addr[NNG_MAXADDRSTRLEN]; int port; const nng_url *u1; const nng_url *u2; @@ -77,12 +76,11 @@ test_udp_port_zero_bind(void) NUTS_MATCH(nng_url_scheme(u1), "udp"); NUTS_MATCH(nng_url_hostname(u1), "127.0.0.1"); NUTS_MATCH(nng_url_path(u1), ""); - nng_url_sprintf(addr, sizeof(addr), u1); 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 == nuts_be16(nng_url_port(u1))); NUTS_TRUE(sa.s_in.sa_addr == nuts_be32(0x7f000001)); - NUTS_PASS(nng_dial(s2, addr, &d, 0)); + NUTS_PASS(nng_dial_url(s2, u1, &d, 0)); NUTS_PASS(nng_dialer_get_url(d, &u2)); NUTS_MATCH(nng_url_scheme(u1), nng_url_scheme(u2)); NUTS_MATCH(nng_url_hostname(u1), nng_url_hostname(u2)); |
