diff options
Diffstat (limited to 'src/transport')
| -rw-r--r-- | src/transport/ws/websocket.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/transport/ws/websocket.c b/src/transport/ws/websocket.c index 36deddac..97175d49 100644 --- a/src/transport/ws/websocket.c +++ b/src/transport/ws/websocket.c @@ -284,7 +284,9 @@ ws_ep_bind(void *arg) ws_ep *ep = arg; int rv; + nni_ws_listener_set_maxframe(ep->listener, ep->rcvmax); nni_ws_listener_hook(ep->listener, ws_hook, ep); + if ((rv = nni_ws_listener_listen(ep->listener)) == 0) { ep->started = true; } @@ -359,6 +361,7 @@ ws_ep_connect(void *arg, nni_aio *aio) NNI_ASSERT(nni_list_empty(&ep->aios)); ep->started = true; nni_list_append(&ep->aios, aio); + nni_ws_dialer_set_maxframe(ep->dialer, ep->rcvmax); nni_ws_dialer_dial(ep->dialer, ep->connaio); nni_mtx_unlock(&ep->mtx); } @@ -373,6 +376,11 @@ ws_ep_setopt_recvmaxsz(void *arg, const void *v, size_t sz, int typ) rv = nni_copyin_size(&val, v, sz, 0, NNI_MAXSZ, typ); if ((rv == 0) && (ep != NULL)) { ep->rcvmax = val; + if (ep->mode == NNI_EP_MODE_DIAL) { + nni_ws_dialer_set_maxframe(ep->dialer, ep->rcvmax); + } else { + nni_ws_listener_set_maxframe(ep->listener, ep->rcvmax); + } } return (rv); } |
