aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-11-24 13:04:34 -0800
committerGarrett D'Amore <garrett@damore.org>2024-11-24 13:04:34 -0800
commit5ab47e210de76d29cffbc9ea47800775a3627210 (patch)
tree8138498b3efd5e81b96503bb14d2f79519905a88 /src/core
parenta2b6d6a544aa9934c87a6d54591faff18179858d (diff)
downloadnng-5ab47e210de76d29cffbc9ea47800775a3627210.tar.gz
nng-5ab47e210de76d29cffbc9ea47800775a3627210.tar.bz2
nng-5ab47e210de76d29cffbc9ea47800775a3627210.zip
Remove the NNG_OPT_IPC_SECURITY_DESCRIPTOR option.
This is now replaced with nng_listener_set_security_descriptor and nng_stream_listener_set_security_descriptor functions. We may elect to remove these entirely, but for named pipe users they are probably still quite useful. Moving towards UNIX domain sockets would obsolete this functionality.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/listener.c9
-rw-r--r--src/core/listener.h1
-rw-r--r--src/core/stream.c10
-rw-r--r--src/core/stream.h7
4 files changed, 25 insertions, 2 deletions
diff --git a/src/core/listener.c b/src/core/listener.c
index 76d9848e..9107e3a4 100644
--- a/src/core/listener.c
+++ b/src/core/listener.c
@@ -532,6 +532,15 @@ nni_listener_set_tls(nni_listener *l, nng_tls_config *cfg)
return (l->l_ops.l_set_tls(l->l_data, cfg));
}
+int
+nni_listener_set_security_descriptor(nni_listener *l, void *desc)
+{
+ if (l->l_ops.l_set_security_descriptor == NULL) {
+ return (NNG_ENOTSUP);
+ }
+ return (l->l_ops.l_set_security_descriptor(l->l_data, desc));
+}
+
nng_url *
nni_listener_url(nni_listener *l)
{
diff --git a/src/core/listener.h b/src/core/listener.h
index eec98f2e..5902d4bc 100644
--- a/src/core/listener.h
+++ b/src/core/listener.h
@@ -29,6 +29,7 @@ extern int nni_listener_getopt(
nni_listener *, const char *, void *, size_t *, nni_type);
extern int nni_listener_get_tls(nni_listener *, nng_tls_config **);
extern int nni_listener_set_tls(nni_listener *, nng_tls_config *);
+extern int nni_listener_set_security_descriptor(nni_listener *, void *);
extern nng_url *nni_listener_url(nni_listener *);
extern void nni_listener_add_stat(nni_listener *, nni_stat_item *);
extern void nni_listener_bump_error(nni_listener *, int);
diff --git a/src/core/stream.c b/src/core/stream.c
index d900329a..e46eb59a 100644
--- a/src/core/stream.c
+++ b/src/core/stream.c
@@ -280,6 +280,16 @@ nni_stream_listener_set_tls(nng_stream_listener *l, nng_tls_config *cfg)
}
int
+nng_stream_listener_set_security_descriptor(
+ nng_stream_listener *l, void *pdesc)
+{
+ if (l->sl_set_security_descriptor == NULL) {
+ return (NNG_ENOTSUP);
+ }
+ return (l->sl_set_security_descriptor(l, pdesc));
+}
+
+int
nng_stream_listener_alloc_url(nng_stream_listener **lp, const nng_url *url)
{
for (int i = 0; stream_drivers[i].scheme != NULL; i++) {
diff --git a/src/core/stream.h b/src/core/stream.h
index 0fa79a47..9ea65834 100644
--- a/src/core/stream.h
+++ b/src/core/stream.h
@@ -32,8 +32,10 @@ extern int nni_stream_listener_get(
nng_stream_listener *, const char *, void *, size_t *, nni_type);
extern int nni_stream_listener_set(
nng_stream_listener *, const char *, const void *, size_t, nni_type);
-extern int nni_stream_listener_set_tls(nng_stream_listener *, nng_tls_config *);
-extern int nni_stream_listener_get_tls(nng_stream_listener *, nng_tls_config **);
+extern int nni_stream_listener_set_tls(
+ nng_stream_listener *, nng_tls_config *);
+extern int nni_stream_listener_get_tls(
+ nng_stream_listener *, nng_tls_config **);
// This is the common implementation of a connected byte stream. It should be
// the first element of any implementation. Applications are not permitted to
@@ -69,6 +71,7 @@ struct nng_stream_listener {
int (*sl_set)(void *, const char *, const void *, size_t, nni_type);
int (*sl_get_tls)(void *, nng_tls_config **);
int (*sl_set_tls)(void *, nng_tls_config *);
+ int (*sl_set_security_descriptor)(void *, void *);
};
#endif // CORE_STREAM_H