aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/websocket
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-11-09 15:24:43 -0800
committerGarrett D'Amore <garrett@damore.org>2024-11-09 16:27:45 -0800
commit0058b766b91f08b34dcef3c7bb55b216099f3f66 (patch)
tree5ac1fa105d707018cdfa9f5244da5837a8c31601 /src/supplemental/websocket
parent150d80c2c62ce3693dbbd0256c16337879c7d825 (diff)
downloadnng-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.c66
-rw-r--r--src/supplemental/websocket/wssfile_test.c4
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);