diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-08-14 15:27:38 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-08-14 15:27:38 -0700 |
| commit | 63479c2938cbc80c1aac9367cb95564f6e7540e1 (patch) | |
| tree | 495584b637f73b593d25f01577eeaa944477f159 /src/nng.c | |
| parent | 343417234aa3fd86e8ae0b56ae500a1ed3411cfc (diff) | |
| download | nng-63479c2938cbc80c1aac9367cb95564f6e7540e1.tar.gz nng-63479c2938cbc80c1aac9367cb95564f6e7540e1.tar.bz2 nng-63479c2938cbc80c1aac9367cb95564f6e7540e1.zip | |
fixes #63 NNG_FLAG_SYNCH should be the default
Also enables creating endpoints that are idle (first part of
endpoint options API) and shutting down endpoints.
Diffstat (limited to 'src/nng.c')
| -rw-r--r-- | src/nng.c | 60 |
1 files changed, 55 insertions, 5 deletions
@@ -278,18 +278,68 @@ nng_listen(nng_socket sid, const char *addr, nng_listener *lp, int flags) } int +nng_listener_create(nng_listener *lp, nng_socket sid, const char *addr) +{ + nni_sock *s; + nni_ep * ep; + int rv; + + if ((rv = nni_sock_find(&s, sid)) != 0) { + return (rv); + } + if ((rv = nni_ep_create_listener(&ep, s, addr)) != 0) { + nni_sock_rele(s); + return (rv); + } + *lp = nni_ep_id(ep); + nni_ep_rele(ep); + nni_sock_rele(s); + return (0); +} + +int +nng_dialer_create(nng_dialer *dp, nng_socket sid, const char *addr) +{ + nni_sock *s; + nni_ep * ep; + int rv; + + if ((rv = nni_sock_find(&s, sid)) != 0) { + return (rv); + } + if ((rv = nni_ep_create_dialer(&ep, s, addr)) != 0) { + nni_sock_rele(s); + return (rv); + } + *dp = nni_ep_id(ep); + nni_ep_rele(ep); + nni_sock_rele(s); + return (0); +} + +static int +nng_ep_close(uint32_t id) +{ + nni_ep *ep; + int rv; + + if ((rv = nni_ep_find(&ep, id)) != 0) { + return (rv); + } + nni_ep_close(ep); + return (0); +} + +int nng_dialer_close(nng_dialer d) { - // return (nni_ep_close()); - NNI_ARG_UNUSED(d); - return (NNG_ENOTSUP); + return (nng_ep_close((uint32_t) d)); } int nng_listener_close(nng_listener l) { - NNI_ARG_UNUSED(l); - return (NNG_ENOTSUP); + return (nng_ep_close((uint32_t) l)); } int |
