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/nng.c | |
| 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/nng.c')
| -rw-r--r-- | src/nng.c | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -538,6 +538,33 @@ nng_dial(nng_socket sid, const char *addr, nng_dialer *dp, int flags) } int +nng_dial_url(nng_socket sid, const nng_url *url, nng_dialer *dp, int flags) +{ + nni_dialer *d; + int rv; + nni_sock *s; + + if ((rv = nni_sock_find(&s, sid.id)) != 0) { + return (rv); + } + if ((rv = nni_dialer_create_url(&d, s, url)) != 0) { + nni_sock_rele(s); + return (rv); + } + if ((rv = nni_dialer_start(d, flags)) != 0) { + nni_dialer_close(d); + return (rv); + } + if (dp != NULL) { + nng_dialer did; + did.id = nni_dialer_id(d); + *dp = did; + } + nni_dialer_rele(d); + return (0); +} + +int nng_listen(nng_socket sid, const char *addr, nng_listener *lp, int flags) { int rv; @@ -628,6 +655,27 @@ nng_dialer_create(nng_dialer *dp, nng_socket sid, const char *addr) } int +nng_dialer_create_url(nng_dialer *dp, nng_socket sid, const nng_url *url) +{ + nni_sock *s; + nni_dialer *d; + int rv; + nng_dialer did; + + if ((rv = nni_sock_find(&s, sid.id)) != 0) { + return (rv); + } + if ((rv = nni_dialer_create_url(&d, s, url)) != 0) { + nni_sock_rele(s); + return (rv); + } + did.id = nni_dialer_id(d); + *dp = did; + nni_dialer_rele(d); + return (0); +} + +int nng_dialer_start(nng_dialer did, int flags) { nni_dialer *d; |
