From 04ca20e9f1999d2c780043152cf233bcb1836d18 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Thu, 18 Jun 2020 18:15:25 +0200 Subject: #971 split into smaller file Split ogAdmServer into several files: * sources/rest.c that implements the server REST API. * sources/client.c that implements the client REST API. * sources/json.c that provides a few JSON helpers. --- sources/json.h | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 sources/json.h (limited to 'sources/json.h') diff --git a/sources/json.h b/sources/json.h new file mode 100644 index 0000000..7c6c61c --- /dev/null +++ b/sources/json.h @@ -0,0 +1,77 @@ +#ifndef _OG_JSON_H +#define _OG_JSON_H + +#include +#include "schedule.h" + +int og_json_parse_string(json_t *element, const char **str); +int og_json_parse_uint(json_t *element, uint32_t *integer); +int og_json_parse_bool(json_t *element, bool *value); + +#define OG_PARAM_PART_NUMBER (1UL << 0) +#define OG_PARAM_PART_CODE (1UL << 1) +#define OG_PARAM_PART_FILESYSTEM (1UL << 2) +#define OG_PARAM_PART_SIZE (1UL << 3) +#define OG_PARAM_PART_FORMAT (1UL << 4) +#define OG_PARAM_PART_DISK (1UL << 5) +#define OG_PARAM_PART_OS (1UL << 6) +#define OG_PARAM_PART_USED_SIZE (1UL << 7) + +struct og_partition { + const char *disk; + const char *number; + const char *code; + const char *size; + const char *filesystem; + const char *format; + const char *os; + const char *used_size; +}; + +#define OG_PARTITION_MAX 4 + +int og_json_parse_partition(json_t *element, struct og_partition *part, + uint64_t required_flags); + +#define OG_CLIENTS_MAX 4096 + +struct og_sync_params { + const char *sync; + const char *diff; + const char *remove; + const char *compress; + const char *cleanup; + const char *cache; + const char *cleanup_cache; + const char *remove_dst; + const char *diff_id; + const char *diff_name; + const char *path; + const char *method; +}; + +struct og_msg_params { + const char *ips_array[OG_CLIENTS_MAX]; + const char *mac_array[OG_CLIENTS_MAX]; + unsigned int ips_array_len; + const char *wol_type; + char run_cmd[4096]; + const char *disk; + const char *partition; + const char *repository; + const char *name; + const char *id; + const char *code; + const char *type; + const char *profile; + const char *cache; + const char *cache_size; + bool echo; + struct og_partition partition_setup[OG_PARTITION_MAX]; + struct og_sync_params sync_setup; + struct og_schedule_time time; + const char *task_id; + uint64_t flags; +}; + +#endif -- cgit v1.2.3-18-g5258