From e364ccdf018915fcf8d6da36aa9e2906d2d42628 Mon Sep 17 00:00:00 2001 From: netanelc305 Date: Thu, 21 Dec 2023 10:02:48 +0200 Subject: [PATCH] libvmi: libvmi_cdef: Add `JSON` and `FILE_PATH` config options --- libvmi/libvmi.py | 6 ++++-- libvmi/libvmi_cdef.h | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libvmi/libvmi.py b/libvmi/libvmi.py index b71c215..6d02da5 100644 --- a/libvmi/libvmi.py +++ b/libvmi/libvmi.py @@ -150,6 +150,8 @@ class VMIConfig(Enum): GLOBAL_FILE_ENTRY = lib.VMI_CONFIG_GLOBAL_FILE_ENTRY STRING = lib.VMI_CONFIG_STRING DICT = lib.VMI_CONFIG_GHASHTABLE + JSON_PATH = lib.VMI_CONFIG_JSON_PATH + FILE_PATH = lib.VMI_CONFIG_FILE_PATH class VMIStatus(Enum): @@ -318,8 +320,8 @@ def __init__(self, domain, init_flags=INIT_DOMAINNAME, init_data=None, # from str to bytes if init_flags & INIT_DOMAINNAME or init_flags & INIT_DOMAINID: domain = domain.encode() - # same for VMI_CONFIG_STRING - if config_mode == VMIConfig.STRING: + # same for VMI_CONFIG_STRING | VMI_CONFIG_FILE_PATH | VMI_CONFIG_JSON_PATH + if config_mode in [VMIConfig.STRING, VMIConfig.FILE_PATH, VMIConfig.JSON_PATH]: config = config.encode() elif config_mode == VMIConfig.DICT: # need to convert config to a GHashTable diff --git a/libvmi/libvmi_cdef.h b/libvmi/libvmi_cdef.h index 0dba2d2..102d693 100644 --- a/libvmi/libvmi_cdef.h +++ b/libvmi/libvmi_cdef.h @@ -122,6 +122,10 @@ typedef enum vmi_config { VMI_CONFIG_STRING, /**< config string provided */ VMI_CONFIG_GHASHTABLE, /**< config GHashTable provided */ + + VMI_CONFIG_JSON_PATH, /**< config in json file at the location provided */ + + VMI_CONFIG_FILE_PATH, /**< config file path provided */ } vmi_config_t; // vmi_mode