Add random functions

This commit is contained in:
Matthias Schiffer 2013-03-18 23:38:04 +01:00
parent f567646b68
commit 4acbc99663
3 changed files with 12 additions and 1 deletions

View file

@ -56,6 +56,7 @@ static inline bool gmrf_addr_equal(const gmrf_addr_t *addr1, const gmrf_addr_t *
} }
gmrf_time_t gmrf_now(gmrf_t *gmrf); gmrf_time_t gmrf_now(gmrf_t *gmrf);
void gmrf_random_bytes(gmrf_t *gmrf, void *buffer, size_t len);
void gmrf_logf(gmrf_t *gmrf, int priority, const char *format, ...); void gmrf_logf(gmrf_t *gmrf, int priority, const char *format, ...);
gmrf_addr_t gmrf_iface_get_addr(gmrf_t *gmrf, gmrf_iface_t *iface); gmrf_addr_t gmrf_iface_get_addr(gmrf_t *gmrf, gmrf_iface_t *iface);

View file

@ -35,6 +35,14 @@ gmrf_time_t gmrf_now(gmrf_t *gmrf) {
return gmrf->mmss->now; return gmrf->mmss->now;
} }
void gmrf_random_bytes(gmrf_t *gmrf, void *buffer, size_t len) {
uint8_t *data = buffer;
size_t i;
for (i = 0; i < len; i++)
data[i] = rand_r(&gmrf->rand_seed);
}
static void init_nodes(gmrf_t *nodes) { static void init_nodes(gmrf_t *nodes) {
gmrf_t *node; gmrf_t *node;
@ -72,7 +80,7 @@ int main(int argc, char *argv[]) {
mmss_t mmss = { .now = 0 }; mmss_t mmss = { .now = 0 };
mmss_network_t net = { .mtu = 1500 }; mmss_network_t net = { .mtu = 1500 };
gmrf_t node1 = { .name = "node1", .mmss = &mmss, .proto = proto }, node2 = { .name = "node2", .mmss = &mmss, .proto = proto }; gmrf_t node1 = { .name = "node1", .mmss = &mmss, .rand_seed = 1, .proto = proto }, node2 = { .name = "node2", .mmss = &mmss, .rand_seed = 2, .proto = proto };
node2.next = &node1; node2.next = &node1;
gmrf_t *nodes = &node2; gmrf_t *nodes = &node2;

View file

@ -73,6 +73,8 @@ struct gmrf {
gmrf_context_t *ctx; gmrf_context_t *ctx;
gmrf_iface_t *interfaces; gmrf_iface_t *interfaces;
unsigned rand_seed;
const mmss_protocol_t *proto; const mmss_protocol_t *proto;
}; };