aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmdsserver/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmdsserver/util.h')
-rw-r--r--src/libmdsserver/util.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/libmdsserver/util.h b/src/libmdsserver/util.h
index accf038..c84156d 100644
--- a/src/libmdsserver/util.h
+++ b/src/libmdsserver/util.h
@@ -110,6 +110,28 @@ size_t send_message(int socket, const char* message, size_t length);
int strict_atoi(const char* str, int* value, int min, int max);
/**
+ * A version of `atoj` that is strict about the syntax and bounds
+ *
+ * @param str The text to parse
+ * @param value Slot in which to store the value
+ * @param min The minimum accepted value
+ * @param max The maximum accepted value
+ * @return Zero on success, -1 on syntax error
+ */
+int strict_atoj(const char* str, intmax_t* value, intmax_t min, intmax_t max);
+
+/**
+ * A version of `atouj` that is strict about the syntax and bounds
+ *
+ * @param str The text to parse
+ * @param value Slot in which to store the value
+ * @param min The minimum accepted value
+ * @param max The maximum accepted value
+ * @return Zero on success, -1 on syntax error
+ */
+int strict_atouj(const char* str, uintmax_t* value, uintmax_t min, uintmax_t max);
+
+/**
* Send a buffer into a file and ignore interruptions
*
* @param fd The file descriptor
@@ -128,7 +150,6 @@ int full_write(int fd, const char* buffer, size_t length);
*/
char* full_read(int fd, size_t* length);
-
/**
* Send a full message even if interrupted
*
@@ -139,7 +160,6 @@ char* full_read(int fd, size_t* length);
*/
int full_send(int socket, const char* message, size_t length);
-
/**
* Check whether a string begins with a specific string,
* where neither of the strings are necessarily NUL-terminated