aboutsummaryrefslogtreecommitdiff
path: root/src/nng.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-12-29 14:21:20 -0800
committerGarrett D'Amore <garrett@damore.org>2017-12-30 19:05:41 -0800
commit6a50035b242b972c1d9b659ba63e037a0a8afe71 (patch)
treefe2600235a01e72d1e7bd5fad1d5e2ea62aada2e /src/nng.c
parenta0364185784895c4bc748a6e6453a132d618c96c (diff)
downloadnng-6a50035b242b972c1d9b659ba63e037a0a8afe71.tar.gz
nng-6a50035b242b972c1d9b659ba63e037a0a8afe71.tar.bz2
nng-6a50035b242b972c1d9b659ba63e037a0a8afe71.zip
fixes #166 Websocket TLS mapping
This introduces the wss:// scheme, which is available and works like the ws:// scheme if TLS is enabled in the library. The library modularization is refactored somewhat, to make it easier to use. There is now a single NNG_ENABLE_TLS that enables TLS support under the hood. This also adds a new option for the TLS transport, NNG_OPT_TLS_CONFIG (and a similar one for WSS, NNG_OPT_TLS_WSS_CONFIG) that offer access to the underlying TLS configuration object, which now has a public API to go with it as well. Note that it is also possible to use pure HTTPS using the *private* API, which will be exposed in a public form soon.
Diffstat (limited to 'src/nng.c')
-rw-r--r--src/nng.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/nng.c b/src/nng.c
index 6cd78e1d..67eac2c4 100644
--- a/src/nng.c
+++ b/src/nng.c
@@ -405,6 +405,12 @@ nng_dialer_setopt_uint64(nng_dialer id, const char *name, uint64_t val)
}
int
+nng_dialer_setopt_ptr(nng_dialer id, const char *name, void *val)
+{
+ return (nng_dialer_setopt(id, name, &val, sizeof(val)));
+}
+
+int
nng_dialer_getopt(nng_dialer id, const char *name, void *val, size_t *szp)
{
return (nng_ep_getopt(id, name, val, szp, NNI_EP_MODE_DIAL));
@@ -432,6 +438,13 @@ nng_dialer_getopt_uint64(nng_dialer id, const char *name, uint64_t *valp)
}
int
+nng_dialer_getopt_ptr(nng_dialer id, const char *name, void **valp)
+{
+ size_t sz = sizeof(*valp);
+ return (nng_dialer_getopt(id, name, valp, &sz));
+}
+
+int
nng_dialer_getopt_ms(nng_dialer id, const char *name, nng_duration *valp)
{
size_t sz = sizeof(*valp);
@@ -470,6 +483,12 @@ nng_listener_setopt_uint64(nng_listener id, const char *name, uint64_t val)
}
int
+nng_listener_setopt_ptr(nng_listener id, const char *name, void *val)
+{
+ return (nng_listener_setopt(id, name, &val, sizeof(val)));
+}
+
+int
nng_listener_getopt(nng_listener id, const char *name, void *val, size_t *szp)
{
return (nng_ep_getopt(id, name, val, szp, NNI_EP_MODE_LISTEN));
@@ -497,6 +516,13 @@ nng_listener_getopt_uint64(nng_listener id, const char *name, uint64_t *valp)
}
int
+nng_listener_getopt_ptr(nng_listener id, const char *name, void **valp)
+{
+ size_t sz = sizeof(*valp);
+ return (nng_listener_getopt(id, name, valp, &sz));
+}
+
+int
nng_listener_getopt_ms(nng_listener id, const char *name, nng_duration *valp)
{
size_t sz = sizeof(*valp);
@@ -588,6 +614,12 @@ nng_setopt_uint64(nng_socket sid, const char *name, uint64_t val)
}
int
+nng_setopt_ptr(nng_socket sid, const char *name, void *val)
+{
+ return (nng_setopt(sid, name, &val, sizeof(val)));
+}
+
+int
nng_getopt_int(nng_socket sid, const char *name, int *valp)
{
size_t sz = sizeof(*valp);
@@ -616,6 +648,13 @@ nng_getopt_ms(nng_socket sid, const char *name, nng_duration *valp)
}
int
+nng_getopt_ptr(nng_socket sid, const char *name, void **valp)
+{
+ size_t sz = sizeof(*valp);
+ return (nng_getopt(sid, name, valp, &sz));
+}
+
+int
nng_device(nng_socket s1, nng_socket s2)
{
int rv;