diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-03-17 17:21:43 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-03-17 17:21:43 -0700 |
| commit | 2e6f76636e2adbc5e2bc4659a0639d83eb3f2d59 (patch) | |
| tree | 9c4e71aba9f8209e052362be6a32d6bebcff48b8 /src/compat | |
| parent | 48bda13b2f3f985389bd3caba923eea77d49c6be (diff) | |
| download | nng-2e6f76636e2adbc5e2bc4659a0639d83eb3f2d59.tar.gz nng-2e6f76636e2adbc5e2bc4659a0639d83eb3f2d59.tar.bz2 nng-2e6f76636e2adbc5e2bc4659a0639d83eb3f2d59.zip | |
fixes #287 remove NNG_OPT_DOMAIN, NNG_OPT_PROTOCOL, and NNG_OPT_TRANSPORT
While here we documented that certain options are not supported in the
compatibility layer.
Diffstat (limited to 'src/compat')
| -rw-r--r-- | src/compat/nanomsg/nn.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/compat/nanomsg/nn.c b/src/compat/nanomsg/nn.c index 1d5bcfbb..01b51503 100644 --- a/src/compat/nanomsg/nn.c +++ b/src/compat/nanomsg/nn.c @@ -613,7 +613,6 @@ static const struct { { NN_SOL_SOCKET, NN_MAXTTL, NNG_OPT_MAXTTL }, { NN_SOL_SOCKET, NN_RCVTIMEO, NNG_OPT_RECVTIMEO }, { NN_SOL_SOCKET, NN_SNDTIMEO, NNG_OPT_SENDTIMEO }, - { NN_SOL_SOCKET, NN_DOMAIN, NNG_OPT_DOMAIN }, { NN_SOL_SOCKET, NN_SOCKET_NAME, NNG_OPT_SOCKNAME }, { NN_REQ, NN_REQ_RESEND_IVL, NNG_OPT_REQ_RESENDTIME }, { NN_SUB, NN_SUB_SUBSCRIBE, NNG_OPT_SUB_SUBSCRIBE }, @@ -622,6 +621,22 @@ static const struct { // XXX: IPV4ONLY, SNDPRIO, RCVPRIO }; +static int +nn_getdomain(int s, void *valp, size_t *szp) +{ + int i; + int rv; + + if ((rv = nng_getopt_int((nng_socket) s, NNG_OPT_RAW, &i)) != 0) { + nn_seterror(rv); + return (-1); + } + i = i ? AF_SP_RAW : AF_SP; + memcpy(valp, &i, *szp < sizeof(int) ? *szp : sizeof(int)); + *szp = sizeof(int); + return (0); +} + int nn_getsockopt(int s, int nnlevel, int nnopt, void *valp, size_t *szp) { @@ -637,6 +652,10 @@ nn_getsockopt(int s, int nnlevel, int nnopt, void *valp, size_t *szp) } if (name == NULL) { + if (nnlevel == NN_SOL_SOCKET && nnopt == NN_DOMAIN) { + return (nn_getdomain(s, valp, szp)); + } + errno = ENOPROTOOPT; return (-1); } |
