diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-18 23:38:04 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-18 23:38:04 +0100 |
commit | 4acbc996634bd2292230b13a4a67b968cb9055d2 (patch) | |
tree | bf0de1aee8ec9c9270c7018e19ef1a1d1cc68130 | |
parent | f567646b68e950f2ead933790574f77a87f9fe35 (diff) | |
download | gmrf-4acbc996634bd2292230b13a4a67b968cb9055d2.tar gmrf-4acbc996634bd2292230b13a4a67b968cb9055d2.zip |
Add random functions
-rw-r--r-- | include/gmrf/gmrf.h | 1 | ||||
-rw-r--r-- | mmss/mmss.c | 10 | ||||
-rw-r--r-- | mmss/mmss.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/gmrf/gmrf.h b/include/gmrf/gmrf.h index 06427fb..c0a36ea 100644 --- a/include/gmrf/gmrf.h +++ b/include/gmrf/gmrf.h @@ -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); +void gmrf_random_bytes(gmrf_t *gmrf, void *buffer, size_t len); 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); diff --git a/mmss/mmss.c b/mmss/mmss.c index ebfae1c..a046364 100644 --- a/mmss/mmss.c +++ b/mmss/mmss.c @@ -35,6 +35,14 @@ gmrf_time_t gmrf_now(gmrf_t *gmrf) { 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) { gmrf_t *node; @@ -72,7 +80,7 @@ int main(int argc, char *argv[]) { mmss_t mmss = { .now = 0 }; 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; gmrf_t *nodes = &node2; diff --git a/mmss/mmss.h b/mmss/mmss.h index 728bc3c..4b0e206 100644 --- a/mmss/mmss.h +++ b/mmss/mmss.h @@ -73,6 +73,8 @@ struct gmrf { gmrf_context_t *ctx; gmrf_iface_t *interfaces; + unsigned rand_seed; + const mmss_protocol_t *proto; }; |