X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Futils.h;h=b7093e1e9d273e45d550723e56717f35ea2b00e3;hb=6debc6c79ba385d35f646e0958f84ace5b8f4b4d;hp=10de2d41205dfe12371292c7edf5b7205dcabe70;hpb=a80253aee68968c722c796c523ed26655d29c882;p=tinc diff --git a/src/utils.h b/src/utils.h index 10de2d41..b7093e1e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -23,6 +23,8 @@ #include "system.h" +#include "crypto.h" + #define B64_SIZE(len) ((len) * 4 / 3 + 5) extern size_t hex2bin(const char *src, void *dst, size_t length); @@ -43,6 +45,10 @@ extern const char *winerror(int); #define sockinuse(x) ((x) == WSAEADDRINUSE) #define socknotconn(x) ((x) == WSAENOTCONN) #define sockshutdown(x) ((x) == WSAESHUTDOWN) + +static inline long jitter(void) { + return (long)prng(131072); +} #else #define sockerrno errno #define sockstrerror(x) strerror(x) @@ -51,6 +57,10 @@ extern const char *winerror(int); #define sockinprogress(x) ((x) == EINPROGRESS) #define sockinuse(x) ((x) == EADDRINUSE) #define socknotconn(x) ((x) == ENOTCONN) + +static inline suseconds_t jitter(void) { + return (suseconds_t)prng(131072); +} #endif extern unsigned int bitfield_to_int(const void *bitfield, size_t size);