summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2013-03-18 23:38:04 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2013-03-18 23:38:04 +0100
commit4acbc996634bd2292230b13a4a67b968cb9055d2 (patch)
treebf0de1aee8ec9c9270c7018e19ef1a1d1cc68130
parentf567646b68e950f2ead933790574f77a87f9fe35 (diff)
downloadgmrf-4acbc996634bd2292230b13a4a67b968cb9055d2.tar
gmrf-4acbc996634bd2292230b13a4a67b968cb9055d2.zip
Add random functions
-rw-r--r--include/gmrf/gmrf.h1
-rw-r--r--mmss/mmss.c10
-rw-r--r--mmss/mmss.h2
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;
};