aboutsummaryrefslogtreecommitdiff
path: root/src/nng_compat.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-27 01:15:46 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-27 01:15:46 -0800
commit82e058a2abae40760f0f9956cdb9d21f8a512624 (patch)
treea2aa52cb91afea0224657ef8bc32d61de2adc3fc /src/nng_compat.c
parent0867d597788099c213b1f3b0bbd2f3adbaeceee2 (diff)
downloadnng-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.c24
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