diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-01-27 01:15:46 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-01-27 01:15:46 -0800 |
| commit | 82e058a2abae40760f0f9956cdb9d21f8a512624 (patch) | |
| tree | a2aa52cb91afea0224657ef8bc32d61de2adc3fc /src/nng_compat.c | |
| parent | 0867d597788099c213b1f3b0bbd2f3adbaeceee2 (diff) | |
| download | nng-82e058a2abae40760f0f9956cdb9d21f8a512624.tar.gz nng-82e058a2abae40760f0f9956cdb9d21f8a512624.tar.bz2 nng-82e058a2abae40760f0f9956cdb9d21f8a512624.zip | |
Add device support & testing. Bus semantic fix.
This adds nn_device and nng_device. There were some internal changes
required to fix shutdown / close issues. Note that we shut down the
sockets when exiting from device -- this is required to make both threads
see the failure and bail, since we are not using a single event loop.
I also noticed that the bus protocol had a bug where it would send
messages back to the originator. This was specifically tested for in
the compat_device test, and we have fixed it.
Diffstat (limited to 'src/nng_compat.c')
| -rw-r--r-- | src/nng_compat.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/nng_compat.c b/src/nng_compat.c index 24085f30..ee52a074 100644 --- a/src/nng_compat.c +++ b/src/nng_compat.c @@ -729,6 +729,30 @@ nn_cmsg_next(struct nn_msghdr *mh, struct nn_cmsghdr *first) } +int +nn_device(int s1, int s2) +{ + int rv; + + rv = nng_device((nng_socket) s1, (nng_socket) s2); + // rv must always be nonzero + nn_seterror(rv); + return (-1); +} + + +// You should not use this function if you can help it. +void +nn_term(void) +{ + // XXX: Implement something to do something. Probably we + // should go through the nni_sockets idhash and clobber all + // of the sockets. This function is relatively toxic, since + // it can affect all sockets in the process, including those + // in use by libraries, etc. +} + + // Internal test support routines. void |
