* This file contains misc utility functions and wrappers to standard
* functions, which throw exceptions upon failure.
*/
+#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/file.h>
#include <ctype.h>
#include <fcntl.h>
#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "uci.h"
+#include "uci_internal.h"
__plugin void *uci_malloc(struct uci_context *ctx, size_t size)
{
return ptr;
}
-/* Based on an efficient hash function published by D. J. Bernstein */
-static unsigned int djbhash(unsigned int hash, char *str)
-{
- int len = strlen(str);
- int i;
-
- /* initial value */
- if (hash == ~0)
- hash = 5381;
-
- for(i = 0; i < len; i++) {
- hash = ((hash << 5) + hash) + str[i];
- }
- return (hash & 0x7FFFFFFF);
-}
-
/*
* validate strings for names and types, reject special characters
* for names, only alphanum and _ is allowed (shell compatibility)