aboutsummaryrefslogtreecommitdiff
path: root/src/testing/nuts.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/nuts.h')
-rw-r--r--src/testing/nuts.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/testing/nuts.h b/src/testing/nuts.h
index 5fe193db..f2e50c2c 100644
--- a/src/testing/nuts.h
+++ b/src/testing/nuts.h
@@ -85,6 +85,10 @@ extern uint16_t nuts_next_port(void);
// 64 bytes to ensure no truncation occurs.
extern void nuts_scratch_addr(const char *, size_t, char *);
+// like nuts_scratch_addr, but attempts to use an autobind (0 port)
+// address instead.
+extern void nuts_scratch_addr_zero(const char *, size_t, char *);
+
// nuts_marry connects two sockets using inproc. It uses socket
// pipe hooks to ensure that it does not return before both sockets
// are fully connected.
@@ -264,6 +268,14 @@ extern const char *nuts_ecdsa_client_crt;
(var) = nuts_addr_; \
} while (0)
+#define NUTS_ADDR_ZERO(var, scheme) \
+ do { \
+ static char nuts_addr_[64]; \
+ nuts_scratch_addr_zero( \
+ scheme, sizeof(nuts_addr_), nuts_addr_); \
+ (var) = nuts_addr_; \
+ } while (0)
+
#define NUTS_OPEN(sock) NUTS_PASS(nng_pair1_open(&(sock)))
#define NUTS_CLOSE(sock) NUTS_PASS(nng_close(sock))