diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-11-09 15:24:43 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-11-09 16:27:45 -0800 |
| commit | 0058b766b91f08b34dcef3c7bb55b216099f3f66 (patch) | |
| tree | 5ac1fa105d707018cdfa9f5244da5837a8c31601 /src/supplemental/websocket | |
| parent | 150d80c2c62ce3693dbbd0256c16337879c7d825 (diff) | |
| download | nng-0058b766b91f08b34dcef3c7bb55b216099f3f66.tar.gz nng-0058b766b91f08b34dcef3c7bb55b216099f3f66.tar.bz2 nng-0058b766b91f08b34dcef3c7bb55b216099f3f66.zip | |
TLS configuration changed to use discret _set_tls and _get_tls functions.
This is simpler, and more reliable than using socket options.
Diffstat (limited to 'src/supplemental/websocket')
| -rw-r--r-- | src/supplemental/websocket/websocket.c | 66 | ||||
| -rw-r--r-- | src/supplemental/websocket/wssfile_test.c | 4 |
2 files changed, 51 insertions, 19 deletions
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c index 8c622be6..ad3ee928 100644 --- a/src/supplemental/websocket/websocket.c +++ b/src/supplemental/websocket/websocket.c @@ -2110,6 +2110,20 @@ ws_listener_get( return (rv); } +static int +ws_listener_get_tls(void *arg, nng_tls_config **cfgp) +{ + nni_ws_listener *l = arg; + return (nni_http_server_get_tls(l->server, cfgp)); +} + +static int +ws_listener_set_tls(void *arg, nng_tls_config *cfg) +{ + nni_ws_listener *l = arg; + return (nni_http_server_set_tls(l->server, cfg)); +} + int nni_ws_listener_alloc(nng_stream_listener **wslp, const nng_url *url) { @@ -2151,17 +2165,19 @@ nni_ws_listener_alloc(nng_stream_listener **wslp, const nng_url *url) return (rv); } - l->fragsize = WS_DEF_MAXTXFRAME; - l->maxframe = WS_DEF_MAXRXFRAME; - l->recvmax = WS_DEF_RECVMAX; - l->isstream = true; - l->ops.sl_free = ws_listener_free; - l->ops.sl_close = ws_listener_close; - l->ops.sl_accept = ws_listener_accept; - l->ops.sl_listen = ws_listener_listen; - l->ops.sl_set = ws_listener_set; - l->ops.sl_get = ws_listener_get; - *wslp = (void *) l; + l->fragsize = WS_DEF_MAXTXFRAME; + l->maxframe = WS_DEF_MAXRXFRAME; + l->recvmax = WS_DEF_RECVMAX; + l->isstream = true; + l->ops.sl_free = ws_listener_free; + l->ops.sl_close = ws_listener_close; + l->ops.sl_accept = ws_listener_accept; + l->ops.sl_listen = ws_listener_listen; + l->ops.sl_set = ws_listener_set; + l->ops.sl_get = ws_listener_get; + l->ops.sl_get_tls = ws_listener_get_tls; + l->ops.sl_set_tls = ws_listener_set_tls; + *wslp = (void *) l; return (0); } @@ -2641,6 +2657,20 @@ ws_dialer_get(void *arg, const char *name, void *buf, size_t *szp, nni_type t) return (rv); } +static int +ws_dialer_get_tls(void *arg, nng_tls_config **cfgp) +{ + nni_ws_dialer *d = arg; + return (nni_http_client_get_tls(d->client, cfgp)); +} + +static int +ws_dialer_set_tls(void *arg, nng_tls_config *cfg) +{ + nni_ws_dialer *d = arg; + return (nni_http_client_set_tls(d->client, cfg)); +} + int nni_ws_dialer_alloc(nng_stream_dialer **dp, const nng_url *url) { @@ -2670,12 +2700,14 @@ nni_ws_dialer_alloc(nng_stream_dialer **dp, const nng_url *url) d->maxframe = WS_DEF_MAXRXFRAME; d->fragsize = WS_DEF_MAXTXFRAME; - d->ops.sd_free = ws_dialer_free; - d->ops.sd_close = ws_dialer_close; - d->ops.sd_dial = ws_dialer_dial; - d->ops.sd_set = ws_dialer_set; - d->ops.sd_get = ws_dialer_get; - *dp = (void *) d; + d->ops.sd_free = ws_dialer_free; + d->ops.sd_close = ws_dialer_close; + d->ops.sd_dial = ws_dialer_dial; + d->ops.sd_set = ws_dialer_set; + d->ops.sd_get = ws_dialer_get; + d->ops.sd_set_tls = ws_dialer_set_tls; + d->ops.sd_get_tls = ws_dialer_get_tls; + *dp = (void *) d; return (0); } diff --git a/src/supplemental/websocket/wssfile_test.c b/src/supplemental/websocket/wssfile_test.c index b449a6bf..584f8481 100644 --- a/src/supplemental/websocket/wssfile_test.c +++ b/src/supplemental/websocket/wssfile_test.c @@ -32,7 +32,7 @@ init_dialer_wss_file(nng_dialer d) NUTS_PASS(nng_tls_config_alloc(&c, NNG_TLS_MODE_CLIENT)); NUTS_PASS(nng_tls_config_ca_file(c, pth)); NUTS_PASS(nng_tls_config_server_name(c, "localhost")); - NUTS_PASS(nng_dialer_set_ptr(d, NNG_OPT_TLS_CONFIG, c)); + NUTS_PASS(nng_dialer_set_tls(d, c)); nni_file_delete(pth); nng_strfree(pth); nng_tls_config_free(c); @@ -57,7 +57,7 @@ init_listener_wss_file(nng_listener l) nng_strfree(cert_key); NUTS_PASS(nng_tls_config_alloc(&c, NNG_TLS_MODE_SERVER)); NUTS_PASS(nng_tls_config_cert_key_file(c, pth, pth)); - NUTS_PASS(nng_listener_set_ptr(l, NNG_OPT_TLS_CONFIG, c)); + NUTS_PASS(nng_listener_set_tls(l, c)); nni_file_delete(pth); nng_strfree(pth); |
