aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-12-26 16:18:38 -0800
committerGarrett D'Amore <garrett@damore.org>2017-12-26 16:37:41 -0800
commiteb1f8db4ed87867f0f08afba79253e3981db9c88 (patch)
treeaa85c54c5c53ab62cc269e83c04e106637d49473 /src/transport
parent93db6fe3aaff421d61a15993ba6827b742ab00d1 (diff)
downloadnng-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.c32
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 }
};