aboutsummaryrefslogtreecommitdiff
path: root/docs/man/nng_dial.3.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/man/nng_dial.3.adoc')
-rw-r--r--docs/man/nng_dial.3.adoc93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/man/nng_dial.3.adoc b/docs/man/nng_dial.3.adoc
new file mode 100644
index 00000000..c2044dfb
--- /dev/null
+++ b/docs/man/nng_dial.3.adoc
@@ -0,0 +1,93 @@
+= nng_dial(3)
+//
+// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// 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
+
+nng_dial - create and start dialer
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_dial(nng_socket s, const char *url, nng_dialer *dp, int flags);
+----
+
+== DESCRIPTION
+
+The `nng_dialer()` function creates a newly initialized
+<<nng_dialer.5#,`nng_dialer`>> object,
+associated with socket _s_, and configured to listen at the
+address specified by _url_, and starts it.
+If the value of _dp_ is not `NULL`, then
+the newly created dialer is stored at the address indicated by _dp_.
+
+Dialers initiate a remote connection to a listener.
+Upon a successful
+connection being established, they create a <<nng_pipe.5#,pipe>>,
+add it to the socket, and then wait for that pipe to be closed.
+When the pipe is closed, the dialer attempts to re-establish the connection.
+Dialers will also periodically retry a connection automatically if an attempt
+to connect asynchronously fails.
+
+TIP: While it is convenient to think of dialers as "`clients``", the relationship
+between the listener or dialer is orthogonal to any server or client status
+that might be associated with a given protocol.
+For example, a <<nng_req.7#,_req_>>
+socket might have associated dialers, but might also have associated listeners.
+It may even have some of each at the same time!
+
+Normally, the first attempt to connect to the address indicated by _url_ is done
+synchronously, including any necessary name resolution.
+As a result, a failure, such as if the connection is refused, will be returned
+immediately, and no further action will be taken.
+
+However, if the special value `NNG_FLAG_NONBLOCK` is
+supplied in _flags_, then the connection attempt is made asynchronously.
+
+Furthermore, if the connection was closed for a synchronously dialed
+connection, the dialer will still attempt to redial asynchronously.
+
+TIP: While `NNG_FLAG_NONBLOCK` can help an application be more resilient,
+it also generally makes diagnosing failures somewhat more difficult.
+
+Because the dialer is started immediately, it is generally not possible
+to apply extra configuration; if that is needed applications should consider
+using <<nng_dialer_create.3#,`nng_dialer_create()`>> and
+<<nng_dialer_start.3#,`nng_dialer_start()`>> instead.
+
+== RETURN VALUES
+
+This function returns 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+`NNG_EADDRINVAL`:: An invalid _url_ was specified.
+`NNG_ECLOSED`:: The socket _s_ is not open.
+`NNG_ECONNREFUSED`:: The remote peer refused the connection.
+`NNG_ECONNRESET`:: The remote peer reset the connection.
+`NNG_EINVAL`:: An invalid set of _flags_ was specified.
+`NNG_ENOMEM`:: Insufficient memory is available.
+`NNG_EPEERAUTH`:: Authentication or authorization failure.
+`NNG_EPROTO`:: A protocol error occurred.
+`NNG_EUNREACHABLE`:: The remote address is not reachable.
+
+== SEE ALSO
+
+<<nng_dialer_close.3#,nng_dialer_close(3)>>,
+<<nng_dialer_create.3#,nng_dialer_create(3)>>
+<<nng_dialer_start.3#,nng_dialer_start(3)>>,
+<<nng_listen.3#,nng_listen(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_dialer.5#,nng_dialer(5)>>,
+<<nng_pipe.5#,nng_pipe(5)>>,
+<<nng.7#,nng(7)>>