summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nng.c50
-rw-r--r--src/nng.h4
2 files changed, 49 insertions, 5 deletions
diff --git a/src/nng.c b/src/nng.c
index e3108e47..9eb33f50 100644
--- a/src/nng.c
+++ b/src/nng.c
@@ -326,17 +326,57 @@ nng_ctx_getopt_size(nng_ctx id, const char *name, size_t *vp)
}
int
-nng_ctx_getopt_string(nng_ctx id, const char *name, char **vp)
+nng_ctx_getopt_ms(nng_ctx id, const char *name, nng_duration *vp)
{
size_t sz = sizeof(*vp);
- return (nng_ctx_getx(id, name, vp, &sz, NNI_TYPE_STRING));
+ return (nng_ctx_getx(id, name, vp, &sz, NNI_TYPE_DURATION));
+}
+
+static int
+nng_ctx_setx(nng_ctx id, const char *n, const void *v, size_t sz, int t)
+{
+ nni_ctx *ctx;
+ int rv;
+
+ if ((rv = nni_init()) != 0) {
+ return (rv);
+ }
+ if ((rv = nni_ctx_find(&ctx, id, false)) != 0) {
+ return (rv);
+ }
+ rv = nni_ctx_setopt(ctx, n, v, sz, t);
+ nni_ctx_rele(ctx);
+ return (rv);
}
int
-nng_ctx_getopt_ms(nng_ctx id, const char *name, nng_duration *vp)
+nng_ctx_setopt(nng_ctx id, const char *name, const void *val, size_t sz)
{
- size_t sz = sizeof(*vp);
- return (nng_ctx_getx(id, name, vp, &sz, NNI_TYPE_DURATION));
+ return (nng_ctx_setx(id, name, val, sz, NNI_TYPE_OPAQUE));
+}
+
+int
+nng_ctx_setopt_bool(nng_ctx id, const char *name, bool v)
+{
+ return (nng_ctx_setx(id, name, &v, sizeof(v), NNI_TYPE_BOOL));
+}
+
+int
+nng_ctx_setopt_int(nng_ctx id, const char *name, int v)
+{
+ return (nng_ctx_setx(id, name, &v, sizeof(v), NNI_TYPE_INT32));
+}
+
+int
+nng_ctx_setopt_size(nng_ctx id, const char *name, size_t v)
+{
+ return (nng_ctx_setx(id, name, &v, sizeof(v), NNI_TYPE_SIZE));
+}
+
+int
+nng_ctx_setopt_ms(nng_ctx id, const char *name, nng_duration v)
+{
+ return (nng_ctx_setx(id, name, &v, sizeof(v), NNI_TYPE_DURATION));
}
int
diff --git a/src/nng.h b/src/nng.h
index 57d66915..40aef567 100644
--- a/src/nng.h
+++ b/src/nng.h
@@ -377,6 +377,10 @@ NNG_DECL int nng_ctx_getopt_size(nng_ctx, const char *, size_t *);
// tunables (which does include NNG_OPT_SENDTIMEO and NNG_OPT_RECVTIMEO);
// see the protocol documentation for more details.
NNG_DECL int nng_ctx_setopt(nng_ctx, const char *, const void *, size_t);
+NNG_DECL int nng_ctx_setopt_bool(nng_ctx, const char *, bool);
+NNG_DECL int nng_ctx_setopt_int(nng_ctx, const char *, int);
+NNG_DECL int nng_ctx_setopt_ms(nng_ctx, const char *, nng_duration);
+NNG_DECL int nng_ctx_setopt_size(nng_ctx, const char *, size_t);
// nng_alloc is used to allocate memory. It's intended purpose is for
// allocating memory suitable for message buffers with nng_send().