aboutsummaryrefslogtreecommitdiff
path: root/include
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 /include
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 'include')
-rw-r--r--include/nng/nng.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/include/nng/nng.h b/include/nng/nng.h
index c39b142d..aebed4b9 100644
--- a/include/nng/nng.h
+++ b/include/nng/nng.h
@@ -357,6 +357,7 @@ NNG_DECL int nng_dialer_set_ptr(nng_dialer, const char *, void *);
NNG_DECL int nng_dialer_set_ms(nng_dialer, const char *, nng_duration);
NNG_DECL int nng_dialer_set_addr(
nng_dialer, const char *, const nng_sockaddr *);
+NNG_DECL int nng_dialer_set_tls(nng_dialer, nng_tls_config *);
NNG_DECL int nng_dialer_get_bool(nng_dialer, const char *, bool *);
NNG_DECL int nng_dialer_get_int(nng_dialer, const char *, int *);
@@ -366,6 +367,7 @@ NNG_DECL int nng_dialer_get_string(nng_dialer, const char *, char **);
NNG_DECL int nng_dialer_get_ptr(nng_dialer, const char *, void **);
NNG_DECL int nng_dialer_get_ms(nng_dialer, const char *, nng_duration *);
NNG_DECL int nng_dialer_get_addr(nng_dialer, const char *, nng_sockaddr *);
+NNG_DECL int nng_dialer_get_tls(nng_dialer, nng_tls_config **);
NNG_DECL int nng_listener_set_bool(nng_listener, const char *, bool);
NNG_DECL int nng_listener_set_int(nng_listener, const char *, int);
@@ -376,6 +378,7 @@ NNG_DECL int nng_listener_set_ptr(nng_listener, const char *, void *);
NNG_DECL int nng_listener_set_ms(nng_listener, const char *, nng_duration);
NNG_DECL int nng_listener_set_addr(
nng_listener, const char *, const nng_sockaddr *);
+NNG_DECL int nng_listener_set_tls(nng_listener, nng_tls_config *);
NNG_DECL int nng_listener_get_bool(nng_listener, const char *, bool *);
NNG_DECL int nng_listener_get_int(nng_listener, const char *, int *);
@@ -385,6 +388,7 @@ NNG_DECL int nng_listener_get_string(nng_listener, const char *, char **);
NNG_DECL int nng_listener_get_ptr(nng_listener, const char *, void **);
NNG_DECL int nng_listener_get_ms(nng_listener, const char *, nng_duration *);
NNG_DECL int nng_listener_get_addr(nng_listener, const char *, nng_sockaddr *);
+NNG_DECL int nng_listener_get_tls(nng_listener, nng_tls_config **);
// nng_strerror returns a human-readable string associated with the error
// code supplied.
@@ -735,15 +739,6 @@ NNG_DECL nng_listener nng_pipe_listener(nng_pipe);
// TLS options are only used when the underlying transport supports TLS.
-// NNG_OPT_TLS_CONFIG is a pointer to a nng_tls_config object. Generally
-// this can be used with endpoints, although once an endpoint is started, or
-// once a configuration is used, the value becomes read-only. Note that
-// when configuring the object, a hold is placed on the TLS configuration,
-// using a reference count. When retrieving the object, no such hold is
-// placed, and so the caller must take care not to use the associated object
-// after the endpoint it is associated with is closed.
-#define NNG_OPT_TLS_CONFIG "tls-config"
-
// NNG_OPT_TLS_VERIFIED returns a boolean indicating whether the peer has
// been verified (true) or not (false). Typically, this is read-only, and
// only available for pipes. This option may return incorrect results if
@@ -1188,6 +1183,13 @@ NNG_DECL int nng_stream_dialer_set_ptr(
NNG_DECL int nng_stream_dialer_set_addr(
nng_stream_dialer *, const char *, const nng_sockaddr *);
+// Note that when configuring the object, a hold is placed on the TLS
+// configuration, using a reference count. When retrieving the object, no such
+// hold is placed, and so the caller must take care not to use the associated
+// object after the endpoint it is associated with is closed.
+NNG_DECL int nng_stream_dialer_get_tls(nng_stream_dialer *, nng_tls_config **);
+NNG_DECL int nng_stream_dialer_set_tls(nng_stream_dialer *, nng_tls_config *);
+
NNG_DECL int nng_stream_listener_alloc(nng_stream_listener **, const char *);
NNG_DECL int nng_stream_listener_alloc_url(
nng_stream_listener **, const nng_url *);
@@ -1228,6 +1230,11 @@ NNG_DECL int nng_stream_listener_set_ptr(
NNG_DECL int nng_stream_listener_set_addr(
nng_stream_listener *, const char *, const nng_sockaddr *);
+NNG_DECL int nng_stream_listener_get_tls(
+ nng_stream_listener *, nng_tls_config **);
+NNG_DECL int nng_stream_listener_set_tls(
+ nng_stream_listener *, nng_tls_config *);
+
// UDP operations. These are provided for convenience,
// and should be considered somewhat experimental.