Split out rand

This commit is contained in:
Ian Gulliver
2016-02-22 14:45:18 -08:00
parent f255170967
commit 16685b8d05
6 changed files with 37 additions and 28 deletions

View File

@@ -3,6 +3,10 @@ CFLAGS ?= -Wall -Werror -O4 -g --std=gnu11 --pedantic-errors -fPIE -pie -fstack-
LDFLAGS ?= $(CFLAGS) -Wl,-z,relro -Wl,-z,now
LIBS ?= -luuid -ljansson
OBJ_NETWORK = receive.o send.o incoming.o outgoing.o
OBJ_PROTOCOL = airspy_adsb.o beast.o json.o raw.o stats.o
OBJ_UTIL = rand.o wakeup.o opts.o common.o
all: adsbus
clean:
@@ -11,5 +15,5 @@ clean:
%.o: %.c *.h
$(CC) -c $(CFLAGS) $< -o $@
adsbus: adsbus.o receive.o send.o incoming.o outgoing.o airspy_adsb.o beast.o json.o raw.o stats.o wakeup.o opts.o common.o
$(CC) $(LDFLAGS) -o adsbus adsbus.o receive.o send.o incoming.o outgoing.o airspy_adsb.o beast.o json.o raw.o stats.o wakeup.o opts.o common.o $(LIBS)
adsbus: adsbus.o $(OBJ_NETWORK) $(OBJ_PROTOCOL) $(OBJ_UTIL)
$(CC) $(LDFLAGS) -o adsbus adsbus.o $(OBJ_NETWORK) $(OBJ_PROTOCOL) $(OBJ_UTIL) $(LIBS)

View File

@@ -5,9 +5,6 @@
#include <unistd.h>
#include <assert.h>
#include "common.h"
#include "wakeup.h"
#include "incoming.h"
#include "outgoing.h"
@@ -18,7 +15,10 @@
#include "json.h"
#include "stats.h"
#include "rand.h"
#include "opts.h"
#include "common.h"
#include "wakeup.h"
static void print_usage(const char *name) {
fprintf(stderr,

View File

@@ -12,6 +12,7 @@
#include <uuid/uuid.h>
#include "common.h"
#include "rand.h"
#include "wakeup.h"
static char server_id[UUID_LEN];
@@ -220,22 +221,6 @@ void uuid_gen(char *out) {
}
static int rand_fd;
void rand_init() {
rand_fd = open("/dev/urandom", O_RDONLY);
assert(rand_fd >= 0);
}
void rand_cleanup() {
assert(!close(rand_fd));
}
void rand_fill(void *value, size_t size) {
assert(read(rand_fd, value, size) == size);
}
#define RETRY_MIN_MS 2000
#define RETRY_MAX_MS 60000
uint32_t retry_get_delay_ms(uint32_t attempt) {

View File

@@ -93,13 +93,6 @@ void hex_from_int(char *, uint64_t, size_t);
void uuid_gen(char *);
///////// rand
void rand_init();
void rand_cleanup();
void rand_fill(void *, size_t);
///////// retry timing
void retry_init();

22
adsbus/rand.c Normal file
View File

@@ -0,0 +1,22 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <assert.h>
#include <unistd.h>
#include "rand.h"
static int rand_fd;
void rand_init() {
rand_fd = open("/dev/urandom", O_RDONLY);
assert(rand_fd >= 0);
}
void rand_cleanup() {
assert(!close(rand_fd));
}
void rand_fill(void *value, size_t size) {
assert(read(rand_fd, value, size) == size);
}

5
adsbus/rand.h Normal file
View File

@@ -0,0 +1,5 @@
#pragma once
void rand_init();
void rand_cleanup();
void rand_fill(void *, size_t);