X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Futils.h;h=9756a3e0c3ca893180ac792a728029d9ef886014;hb=a85198d20f24cd4e20ec5c57e402611fef8b137a;hp=10de2d41205dfe12371292c7edf5b7205dcabe70;hpb=b2701c7c54b11cda71461c5dbbc985476bf5b221;p=tinc diff --git a/src/utils.h b/src/utils.h index 10de2d41..9756a3e0 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,9 +57,11 @@ extern const char *winerror(int); #define sockinprogress(x) ((x) == EINPROGRESS) #define sockinuse(x) ((x) == EADDRINUSE) #define socknotconn(x) ((x) == ENOTCONN) -#endif -extern unsigned int bitfield_to_int(const void *bitfield, size_t size); +static inline suseconds_t jitter(void) { + return (suseconds_t)prng(131072); +} +#endif extern bool check_id(const char *id); extern bool check_netname(const char *netname, bool strict);