= nn_device(3compat) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // == NAME nn_device - create forwarding device (compatible API) == SYNOPSIS [source,c] ---- #include int nn_device(int sock1, int sock2); ---- == DESCRIPTION The `nn_device()` function is used to create a forwarder, where messages received on one of the two sockets _sock1_ and _sock2_ are forwarded to the other. NOTE: This function is provided for API xref:nng_compat.3compat.adoc[compatibility] with legacy _libnanomsg_. Consider using the relevant xref:libnng.3.adoc[modern API] instead. The two sockets must be compatible, and must be xref:nng.7.adoc#raw_mode[raw mode] sockets. More detail about devices and how they can be used is available in the new style xref:nng_device.3.adoc[nng_device()] documentation. == RETURN VALUES This function blocks forever, and will return -1 only when one of the sockets is closed or an error occurs. == ERRORS [horizontal] `EBADF`:: One of the two sockets is invalid or not open, or has `EINVAL`:: The sockets are not compatible with each other, or not both raw. `ENOMEM`:: Insufficient memory is available. == SEE ALSO [.text-left] xref:nn_errno.3compat.adoc[nn_errno(3compat)], xref:nn_socket.3compat.adoc[nn_socket(3compat)], xref:nng_compat.3compat.adoc[nng_compat(3compat)], xref:nng.7.adoc[nng(7)]