diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-12-26 16:18:38 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-12-26 16:37:41 -0800 |
| commit | eb1f8db4ed87867f0f08afba79253e3981db9c88 (patch) | |
| tree | aa85c54c5c53ab62cc269e83c04e106637d49473 /src/transport | |
| parent | 93db6fe3aaff421d61a15993ba6827b742ab00d1 (diff) | |
| download | nng-eb1f8db4ed87867f0f08afba79253e3981db9c88.tar.gz nng-eb1f8db4ed87867f0f08afba79253e3981db9c88.tar.bz2 nng-eb1f8db4ed87867f0f08afba79253e3981db9c88.zip | |
fixes #165 Add address properties for websocket pipes
Diffstat (limited to 'src/transport')
| -rw-r--r-- | src/transport/ws/websocket.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/transport/ws/websocket.c b/src/transport/ws/websocket.c index 8a73bcfb..178338f9 100644 --- a/src/transport/ws/websocket.c +++ b/src/transport/ws/websocket.c @@ -319,13 +319,41 @@ ws_ep_getopt_recvmaxsz(void *arg, void *v, size_t *szp) return (nni_getopt_size(ep->rcvmax, v, szp)); } +static int +ws_pipe_getopt_locaddr(void *arg, void *v, size_t *szp) +{ + ws_pipe * p = arg; + int rv; + nng_sockaddr sa; + + memset(&sa, 0, sizeof(sa)); + if ((rv = nni_ws_sock_addr(p->ws, &sa)) == 0) { + rv = nni_getopt_sockaddr(&sa, v, szp); + } + return (rv); +} + +static int +ws_pipe_getopt_remaddr(void *arg, void *v, size_t *szp) +{ + ws_pipe * p = arg; + int rv; + nng_sockaddr sa; + + memset(&sa, 0, sizeof(sa)); + if ((rv = nni_ws_peer_addr(p->ws, &sa)) == 0) { + rv = nni_getopt_sockaddr(&sa, v, szp); + } + return (rv); +} + static nni_tran_pipe_option ws_pipe_options[] = { -#if 0 + // clang-format off { NNG_OPT_LOCADDR, ws_pipe_getopt_locaddr }, { NNG_OPT_REMADDR, ws_pipe_getopt_remaddr }, // clang-format on -#endif + // terminate list { NULL, NULL } }; |
