aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/nng/supplemental/tcp/tcp.h54
1 files changed, 31 insertions, 23 deletions
diff --git a/include/nng/supplemental/tcp/tcp.h b/include/nng/supplemental/tcp/tcp.h
index 9b83d678..447bc6f8 100644
--- a/include/nng/supplemental/tcp/tcp.h
+++ b/include/nng/supplemental/tcp/tcp.h
@@ -58,22 +58,13 @@ NNG_DECL void nng_tcp_send(nng_tcp *, nng_aio *);
// the iov's and resubmit as needed.
NNG_DECL void nng_tcp_recv(nng_tcp *, nng_aio *);
-// nng_tcp_sockname obtains an nng_sockaddr associated with our local address.
-NNG_DECL int nng_tcp_sockname(nng_tcp *, nng_sockaddr *);
+// nng_tcp_getopt is used to retrieve socket options, using the named
+// option values, like NNG_OPT_TCP_NODELAY or NNG_OPT_REMADDR.
+NNG_DECL int nng_tcp_getopt(nng_tcp *, const char *, void *, size_t *);
-// nng_tcp_peername obtains an nng_sockaddr associated with our peer.
-NNG_DECL int nng_tcp_peername(nng_tcp *, nng_sockaddr *);
-
-// nng_tcp_set_nodelay is used to disable Nagle's algorithm (true) or
-// enable it. For latency sensitive applications, disable it. For
-// throughput operations involving tiny messages, leave it enabled. We
-// usually recommend disabling it.
-NNG_DECL int nng_tcp_set_nodelay(nng_tcp *, bool);
-
-// nng_set_keepalive is used to enable the use of TCP keepalives.
-// At the moment there is no further tuning, because the tunables here
-// tend to be fairly platform specific.
-NNG_DECL int nng_tcp_set_keepalive(nng_tcp *, bool);
+// nng_tcp_setopt is used to set socket options, using the named
+// option values, like NNG_OPT_TCP_KEEPALIVE.
+NNG_DECL int nng_tcp_setopt(nng_tcp *, const char *, const void *, size_t);
// nng_tcp_dialer_alloc is used to allocate a TCP dialer.
NNG_DECL int nng_tcp_dialer_alloc(nng_tcp_dialer **);
@@ -91,14 +82,6 @@ NNG_DECL void nng_tcp_dialer_close(nng_tcp_dialer *);
// the dialer after this call.
NNG_DECL void nng_tcp_dialer_free(nng_tcp_dialer *);
-// nng_tcp_dialer_set_source is used to set the source address that the
-// dialer should dial from. The port component of the socket address is
-// ignored, as a source port is always chosen at random. If this is not
-// called, then a system specific default source address is chosen.
-// (Usually the local interface IP address chosen based on the route to
-// the destination.)
-NNG_DECL int nng_tcp_dialer_set_source(nng_tcp_dialer *, const nng_sockaddr *);
-
// nng_tcp_dialer_dial attempts to create a new connection (nng_tcp *)
// may making an outbound connect call. If this succeeds, the aio
// will return a suitable nng_tcp * in the first output of the aio.
@@ -107,6 +90,19 @@ NNG_DECL int nng_tcp_dialer_set_source(nng_tcp_dialer *, const nng_sockaddr *);
NNG_DECL void nng_tcp_dialer_dial(
nng_tcp_dialer *, const nng_sockaddr *, nng_aio *);
+// nng_tcp_dialer_getopt gets an option.
+NNG_DECL int nng_tcp_dialer_getopt(
+ nng_tcp_dialer *, const char *, void *, size_t *);
+
+// nng_tcp_dialer_setopt sets an option. This can be done to set the
+// initial values of NNG_OPT_TCP_NODELAY or NNG_OPT_TCP_KEEPALIVE for
+// created connections, for example. Also, the NNG_OPT_LOCADDR can
+// be set, which sets the source address new connections will be
+// established from -- except that the port is ignored as it is always
+// randomly chosen.
+NNG_DECL int nng_tcp_dialer_setopt(
+ nng_tcp_dialer *, const char *, const void *, size_t);
+
// nng_tcp_listener_alloc creates a listener.
NNG_DECL int nng_tcp_listener_alloc(nng_tcp_listener **);
@@ -140,6 +136,18 @@ NNG_DECL int nng_tcp_listener_listen(nng_tcp_listener *, nng_sockaddr *);
// on success.
NNG_DECL void nng_tcp_listener_accept(nng_tcp_listener *, nng_aio *);
+// nng_tcp_listener_getopt gets an option. A good example of this is to
+// obtain the NNG_OPT_LOCADDR local address after starting the listener
+// on a wild card port (0).
+NNG_DECL int nng_tcp_listener_getopt(
+ nng_tcp_listener *, const char *, void *, size_t *);
+
+// nng_tcp_listener_setopt sets an option. This can be done to set the
+// initial values of NNG_OPT_TCP_NODELAY or NNG_OPT_TCP_KEEPALIVE for
+// created connections, for example.
+NNG_DECL int nng_tcp_listener_setopt(
+ nng_tcp_listener *, const char *, const void *, size_t);
+
#ifdef __cplusplus
}
#endif