diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2024-07-22 23:56:08 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2024-07-22 23:56:08 +0000 |
commit | 8d5a23bf7fe6bda50bab13f12725f3b7c8976d29 (patch) | |
tree | 261fb68fe46d0fc7553b4bab72204e1ec7d1c6d0 /src/config/node.c | |
parent | e5cc55570c2c986c71fc75bcde93620598db7be4 (diff) | |
download | shibari-8d5a23bf7fe6bda50bab13f12725f3b7c8976d29.tar.xz |
Revamp and improve config system
Now features:
- keys can be binary blobs (useful for accept and server)
- values can be unique or accumulators
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/config/node.c')
-rw-r--r-- | src/config/node.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/src/config/node.c b/src/config/node.c deleted file mode 100644 index 7e6cd4b..0000000 --- a/src/config/node.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ISC license. */ - -#include <stdint.h> -#include <string.h> - -#include <skalibs/stralloc.h> -#include <skalibs/strerr.h> - -#include "shibari-cache-config-internal.h" - -#define diestorage() strerr_diefu2x(100, "add node to configuration tree", ": too much data") -#define diefilepos() strerr_diefu2x(100, "add node to configuration tree", ": file too large") - -void node_start (stralloc *storage, node *node, char const *key, size_t filepos, uint32_t line) -{ - size_t l = strlen(key) ; - size_t k = storage->len ; - if (!stralloc_catb(storage, key, l + 1)) dienomem() ; - if (storage->len >= UINT32_MAX) diestorage() ; - if (filepos > UINT32_MAX) diefilepos() ; - node->key = k ; - node->keylen = l ; - node->data = storage->len ; - node->datalen = 0 ; - node->filepos = filepos ; - node->line = line ; -} - -void node_add (stralloc *storage, node *node, char const *s, size_t len) -{ - if (!stralloc_catb(storage, s, len)) dienomem() ; - if (storage->len >= UINT32_MAX) diestorage() ; - node->datalen += len ; -} |