From cef6e70c0b3e92e36b6895e7d6e981b00c702f9b Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Fri, 22 Nov 2024 18:16:24 -0800 Subject: Select transport using raw URL string. This is done so that we can provide transport specific logic for URL parsing later (we're going to want this for ZeroTier for example.) --- src/core/dialer.c | 10 +++++----- src/core/listener.c | 11 +++++------ 2 files changed, 10 insertions(+), 11 deletions(-) (limited to 'src/core') diff --git a/src/core/dialer.c b/src/core/dialer.c index 27020b37..3cd6620f 100644 --- a/src/core/dialer.c +++ b/src/core/dialer.c @@ -219,15 +219,15 @@ nni_dialer_create(nni_dialer **dp, nni_sock *s, const char *url_str) if ((d = NNI_ALLOC_STRUCT(d)) == NULL) { return (NNG_ENOMEM); } - if ((rv = nni_url_parse_inline(&d->d_url, url_str)) != 0) { + if (((tran = nni_sp_tran_find(url_str)) == NULL) || + (tran->tran_dialer == NULL)) { NNI_FREE_STRUCT(d); - return (rv); + return (NNG_ENOTSUP); } - if (((tran = nni_sp_tran_find(&d->d_url)) == NULL) || - (tran->tran_dialer == NULL)) { + if ((rv = nni_url_parse_inline(&d->d_url, url_str)) != 0) { nni_url_fini(&d->d_url); NNI_FREE_STRUCT(d); - return (NNG_ENOTSUP); + return (rv); } d->d_closed = false; d->d_data = NULL; diff --git a/src/core/listener.c b/src/core/listener.c index 08b235af..3c2d7bf0 100644 --- a/src/core/listener.c +++ b/src/core/listener.c @@ -207,16 +207,15 @@ nni_listener_create(nni_listener **lp, nni_sock *s, const char *url_str) if ((l = NNI_ALLOC_STRUCT(l)) == NULL) { return (NNG_ENOMEM); } - if ((rv = nni_url_parse_inline(&l->l_url, url_str)) != 0) { - nni_url_fini(&l->l_url); + if (((tran = nni_sp_tran_find(url_str)) == NULL) || + (tran->tran_listener == NULL)) { NNI_FREE_STRUCT(l); - return (rv); + return (NNG_ENOTSUP); } - if (((tran = nni_sp_tran_find(&l->l_url)) == NULL) || - (tran->tran_listener == NULL)) { + if ((rv = nni_url_parse_inline(&l->l_url, url_str)) != 0) { nni_url_fini(&l->l_url); NNI_FREE_STRUCT(l); - return (NNG_ENOTSUP); + return (rv); } l->l_closed = false; l->l_data = NULL; -- cgit v1.2.3-70-g09d2