summaryrefslogtreecommitdiff
path: root/src/transport/tcp
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/tcp')
-rw-r--r--src/transport/tcp/tcp.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/transport/tcp/tcp.c b/src/transport/tcp/tcp.c
index 9db5b016..80b372e9 100644
--- a/src/transport/tcp/tcp.c
+++ b/src/transport/tcp/tcp.c
@@ -760,13 +760,16 @@ nni_tcp_ep_connect(void *arg, nni_aio *aio)
}
static int
-nni_tcp_ep_setopt_recvmaxsz(void *arg, const void *v, size_t sz)
+nni_tcp_ep_setopt_recvmaxsz(void *arg, const void *v, size_t sz, int typ)
{
nni_tcp_ep *ep = arg;
- if (ep == NULL) {
- return (nni_chkopt_size(v, sz, 0, NNI_MAXSZ));
+ size_t val;
+ int rv;
+ rv = nni_copyin_size(&val, v, sz, 0, NNI_MAXSZ, typ);
+ if ((rv == 0) && (ep != NULL)) {
+ ep->rcvmax = val;
}
- return (nni_setopt_size(&ep->rcvmax, v, sz, 0, NNI_MAXSZ));
+ return (rv);
}
static int
@@ -793,13 +796,16 @@ nni_tcp_ep_getopt_recvmaxsz(void *arg, void *v, size_t *szp, int typ)
}
static int
-nni_tcp_ep_setopt_linger(void *arg, const void *v, size_t sz)
+nni_tcp_ep_setopt_linger(void *arg, const void *v, size_t sz, int typ)
{
- nni_tcp_ep *ep = arg;
- if (ep == NULL) {
- return (nni_chkopt_ms(v, sz));
+ nni_tcp_ep * ep = arg;
+ nng_duration val;
+ int rv;
+
+ if (((rv = nni_copyin_ms(&val, v, sz, typ)) == 0) && (ep != NULL)) {
+ ep->linger = val;
}
- return (nni_setopt_ms(&ep->linger, v, sz));
+ return (rv);
}
static int