From 390576c3839ee7abb845e27b7267de45495e6b2f Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Mon, 23 Dec 2019 15:44:19 +0100 Subject: Starting to turn relabsd into a proper daemon... --- src/util/string.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/util/string.c (limited to 'src/util') diff --git a/src/util/string.c b/src/util/string.c new file mode 100644 index 0000000..edb5eb6 --- /dev/null +++ b/src/util/string.c @@ -0,0 +1,36 @@ +/**** POSIX *******************************************************************/ +#include + +/******************************************************************************/ +/**** LOCAL FUNCTIONS *********************************************************/ +/******************************************************************************/ + +/******************************************************************************/ +/**** EXPORTED FUNCTIONS ******************************************************/ +/******************************************************************************/ +int relabsd_util_parse_int +( + const char string [const restrict static 1], + const int min, + const int max, + int output [const restrict static 1] +) +{ + char * invalid_char; /* may become an alias of string. */ + long int buffer; + + buffer = strtol(string, &invalid_char, 10); + + if ((invalid_char[0] != '\0') || (string[0] == '\0')) + { + return -1; + } + + if ((buffer < ((long int) min)) || (buffer > ((long int) max))) + { + return -2; + } + + *output = ((int) buffer); + return 0; +} -- cgit v1.2.3-70-g09d2