aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/websocket
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/supplemental/websocket
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/supplemental/websocket')
-rw-r--r--src/supplemental/websocket/websocket.c20
-rw-r--r--src/supplemental/websocket/websocket.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c
index fe0a9bd9..dfcac3e7 100644
--- a/src/supplemental/websocket/websocket.c
+++ b/src/supplemental/websocket/websocket.c
@@ -646,6 +646,26 @@ ws_send_control(nni_ws *ws, uint8_t op, uint8_t *buf, size_t len)
nni_mtx_unlock(&ws->mtx);
}
+int
+nni_ws_sock_addr(nni_ws *ws, nni_sockaddr *sa)
+{
+ int rv;
+ nni_mtx_lock(&ws->mtx);
+ rv = ws->closed ? NNG_ECLOSED : nni_http_sock_addr(ws->http, sa);
+ nni_mtx_unlock(&ws->mtx);
+ return (rv);
+}
+
+int
+nni_ws_peer_addr(nni_ws *ws, nni_sockaddr *sa)
+{
+ int rv;
+ nni_mtx_lock(&ws->mtx);
+ rv = ws->closed ? NNG_ECLOSED : nni_http_peer_addr(ws->http, sa);
+ nni_mtx_unlock(&ws->mtx);
+ return (rv);
+}
+
void
nni_ws_send_msg(nni_ws *ws, nni_aio *aio)
{
diff --git a/src/supplemental/websocket/websocket.h b/src/supplemental/websocket/websocket.h
index 25add55e..3c3ce085 100644
--- a/src/supplemental/websocket/websocket.h
+++ b/src/supplemental/websocket/websocket.h
@@ -54,6 +54,8 @@ extern void nni_ws_send_msg(nni_ws *, nni_aio *);
extern void nni_ws_recv_msg(nni_ws *, nni_aio *);
extern nni_http_res *nni_ws_response(nni_ws *);
extern nni_http_req *nni_ws_request(nni_ws *);
+extern int nni_ws_sock_addr(nni_ws *, nni_sockaddr *);
+extern int nni_ws_peer_addr(nni_ws *, nni_sockaddr *);
extern void nni_ws_close(nni_ws *);
extern void nni_ws_close_error(nni_ws *, uint16_t);
extern void nni_ws_fini(nni_ws *);