diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-12-28 23:29:35 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-28 23:29:35 -0800 |
| commit | d574649899a29ce7eb96485c0a4c606f14f87011 (patch) | |
| tree | 0d6282c98fc458a4c24cc0b9f0f442bb2b958da3 /src/sp | |
| parent | 945dbef5e8eb060654aec33851937f1e3325913b (diff) | |
| download | nng-d574649899a29ce7eb96485c0a4c606f14f87011.tar.gz nng-d574649899a29ce7eb96485c0a4c606f14f87011.tar.bz2 nng-d574649899a29ce7eb96485c0a4c606f14f87011.zip | |
resolver: use explicit resolver item provided by caller
This avoids the need to perform multiple allocations for dialing,
eliminating additional potential failures. Cancellation is also
made simpler and more perfectly robust.
Diffstat (limited to 'src/sp')
| -rw-r--r-- | src/sp/transport/udp/udp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sp/transport/udp/udp.c b/src/sp/transport/udp/udp.c index ac3d3f1a..fee142e3 100644 --- a/src/sp/transport/udp/udp.c +++ b/src/sp/transport/udp/udp.c @@ -220,6 +220,7 @@ struct udp_ep { udp_txring tx_ring; nni_time next_wake; nni_aio_completions complq; + nni_resolv_item resolv; nni_stat_item st_rcv_max; nni_stat_item st_rcv_reorder; @@ -1529,9 +1530,14 @@ udp_ep_connect(void *arg, nni_aio *aio) // lookup the IP address + memset(&ep->resolv, 0, sizeof(ep->resolv)); + ep->resolv.ri_family = ep->af; + ep->resolv.ri_host = ep->url->u_hostname; + ep->resolv.ri_port = ep->url->u_port; + ep->resolv.ri_passive = false; + ep->resolv.ri_sa = &ep->peer_sa; nni_aio_set_timeout(&ep->resaio, NNI_SECOND * 5); - nni_resolv_ip(ep->url->u_hostname, ep->url->u_port, ep->af, false, - &ep->peer_sa, &ep->resaio); + nni_resolv(&ep->resolv, &ep->resaio); // wake up for retries nni_aio_abort(&ep->timeaio, NNG_EINTR); |
