@@ -145,7 +145,7 @@ btpd_init(void) | |||||
m_peer_id[sizeof(BTPD_VERSION) - 1] = '|'; | m_peer_id[sizeof(BTPD_VERSION) - 1] = '|'; | ||||
srandom(time(NULL)); | srandom(time(NULL)); | ||||
for (int i = sizeof(BTPD_VERSION); i < 20; i++) | for (int i = sizeof(BTPD_VERSION); i < 20; i++) | ||||
m_peer_id[i] = rint(random() * 255.0 / RAND_MAX); | m_peer_id[i] = rand_between(0, 255); | ||||
net_init(); | net_init(); | ||||
ipc_init(); | ipc_init(); | ||||
@@ -305,7 +305,7 @@ dl_choose_rarest(struct peer *p, uint32_t *res) | |||||
} | } | ||||
} | } | ||||
if (min_c > 1) { | if (min_c > 1) { | ||||
min_c = 1 + rint((double)random() * (min_c - 1) / RAND_MAX); | min_c = rand_between(1, min_c); | ||||
for (i = min_i; min_c > 0; i++) { | for (i = min_i; min_c > 0; i++) { | ||||
if (dl_piece_startable(p, i) | if (dl_piece_startable(p, i) | ||||
&& tp->piece_count[i] == tp->piece_count[min_i]) { | && tp->piece_count[i] == tp->piece_count[min_i]) { | ||||
@@ -5,6 +5,7 @@ | |||||
#include <fcntl.h> | #include <fcntl.h> | ||||
#include <inttypes.h> | #include <inttypes.h> | ||||
#include <limits.h> | #include <limits.h> | ||||
#include <math.h> | |||||
#include <stdarg.h> | #include <stdarg.h> | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
@@ -139,3 +140,9 @@ round_to_page(size_t size) | |||||
size += psize - rem; | size += psize - rem; | ||||
return size; | return size; | ||||
} | } | ||||
long | |||||
rand_between(long min, long max) | |||||
{ | |||||
return min + (long)rint((double)random() * (max - min) / RAND_MAX); | |||||
} |
@@ -18,4 +18,6 @@ int canon_path(const char *path, char **res); | |||||
size_t round_to_page(size_t size); | size_t round_to_page(size_t size); | ||||
long rand_between(long min, long max); | |||||
#endif | #endif |