aboutsummaryrefslogtreecommitdiff
path: root/src/nng.c
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/nng.c
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/nng.c')
-rw-r--r--src/nng.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/nng.c b/src/nng.c
index bc68a5d3..dc8be731 100644
--- a/src/nng.c
+++ b/src/nng.c
@@ -787,6 +787,34 @@ nng_dialer_get_addr(nng_dialer id, const char *n, nng_sockaddr *v)
return (dialer_get(id, n, v, NULL, NNI_TYPE_SOCKADDR));
}
+int
+nng_dialer_get_tls(nng_dialer id, nng_tls_config **cfgp)
+{
+ int rv;
+ nni_dialer *d;
+ if (((rv = nni_init()) != 0) ||
+ ((rv = nni_dialer_find(&d, id.id)) != 0)) {
+ return (rv);
+ }
+ rv = nni_dialer_get_tls(d, cfgp);
+ nni_dialer_rele(d);
+ return (rv);
+}
+
+int
+nng_dialer_set_tls(nng_dialer id, nng_tls_config *cfg)
+{
+ int rv;
+ nni_dialer *d;
+ if (((rv = nni_init()) != 0) ||
+ ((rv = nni_dialer_find(&d, id.id)) != 0)) {
+ return (rv);
+ }
+ rv = nni_dialer_set_tls(d, cfg);
+ nni_dialer_rele(d);
+ return (rv);
+}
+
static int
listener_set(
nng_listener lid, const char *name, const void *v, size_t sz, nni_type t)
@@ -921,6 +949,33 @@ nng_listener_get_addr(nng_listener id, const char *n, nng_sockaddr *v)
}
int
+nng_listener_get_tls(nng_listener id, nng_tls_config **cfgp)
+{
+ int rv;
+ nni_listener *l;
+ if (((rv = nni_init()) != 0) ||
+ ((rv = nni_listener_find(&l, id.id)) != 0)) {
+ return (rv);
+ }
+ rv = nni_listener_get_tls(l, cfgp);
+ nni_listener_rele(l);
+ return (rv);
+}
+
+int
+nng_listener_set_tls(nng_listener id, nng_tls_config *cfg)
+{
+ int rv;
+ nni_listener *l;
+ if (((rv = nni_init()) != 0) ||
+ ((rv = nni_listener_find(&l, id.id)) != 0)) {
+ return (rv);
+ }
+ rv = nni_listener_set_tls(l, cfg);
+ nni_listener_rele(l);
+ return (rv);
+}
+int
nng_dialer_close(nng_dialer did)
{
nni_dialer *d;