From 219f85716b79dc81dc5c8b28285c9a91d1eb76c4 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sun, 4 Jul 2021 23:05:15 +0200 Subject: Delete the XML storage for loading binary contents. --- src/analysis/content-int.h | 5 -- src/analysis/content.c | 61 ----------------- src/analysis/content.h | 7 -- src/analysis/contents/encapsulated.c | 127 ----------------------------------- src/analysis/contents/encapsulated.h | 3 - src/analysis/contents/file.c | 58 ---------------- src/analysis/contents/file.h | 3 - src/analysis/contents/memory.c | 124 ---------------------------------- src/analysis/contents/memory.h | 3 - 9 files changed, 391 deletions(-) diff --git a/src/analysis/content-int.h b/src/analysis/content-int.h index 886c196..4ef64f9 100644 --- a/src/analysis/content-int.h +++ b/src/analysis/content-int.h @@ -41,9 +41,6 @@ typedef GBinContent * (* get_content_root_fc) (GBinContent *); /* Fournit le nom associé au contenu binaire. */ typedef char * (* describe_content_fc) (const GBinContent *, bool); -/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */ -typedef bool (* save_content_fc) (const GBinContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *); - /* Calcule une empreinte unique (SHA256) pour les données. */ typedef void (* compute_checksum_fc) (GBinContent *, GChecksum *); @@ -99,8 +96,6 @@ struct _GBinContentIface describe_content_fc describe; /* Fournit une description */ - save_content_fc save; /* Sauvegarde du contenu */ - compute_checksum_fc compute_checksum; /* Calcul de l'empreinte */ compute_size_fc compute_size; /* Calcul de la taille totale */ diff --git a/src/analysis/content.c b/src/analysis/content.c index d16619a..626497e 100644 --- a/src/analysis/content.c +++ b/src/analysis/content.c @@ -32,7 +32,6 @@ #include "content-int.h" -#include "contents/file.h" // REMME @@ -65,39 +64,6 @@ static void g_binary_content_default_init(GBinContentInterface *iface) /****************************************************************************** * * -* Paramètres : context = contexte pour les recherches XPath. * -* path = chemin d'accès au noeud XML à lire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Charge en mémoire un contenu binaire à partir d'XML. * -* * -* Retour : Adresse de la représentation ou NULL en cas d'échec. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GBinContent *g_binary_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base) -{ - GBinContent *result; /* Contenu en place à renvoyer */ - char *type; /* Type de binaire à charger */ - - result = NULL; - - type = get_node_prop_value(context, path, "type"); - - if (strcmp(type, "file") == 0) - result = g_file_content_new_from_xml(context, path, base); - - free(type); - - return result; - -} - - -/****************************************************************************** -* * * Paramètres : content = contenu binaire à actualiser. * * attribs = jeu d'attributs à lier au contenu courant. * * * @@ -213,33 +179,6 @@ char *g_binary_content_describe(const GBinContent *content, bool full) /****************************************************************************** * * -* Paramètres : content = contenu binaire à traiter. * -* xdoc = structure XML en cours d'édition. * -* context = contexte à utiliser pour les recherches. * -* path = chemin d'accès réservé au binaire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. * -* * -* Retour : true si l'opération a bien tourné, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool g_binary_content_save(const GBinContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base) -{ - GBinContentIface *iface; /* Interface utilisée */ - - iface = G_BIN_CONTENT_GET_IFACE(content); - - return iface->save(content, xdoc, context, path, base); - -} - - -/****************************************************************************** -* * * Paramètres : content = contenu binaire à venir lire. * * * * Description : Fournit une empreinte unique (SHA256) pour les données. * diff --git a/src/analysis/content.h b/src/analysis/content.h index d7f5536..58bd9b9 100644 --- a/src/analysis/content.h +++ b/src/analysis/content.h @@ -33,7 +33,6 @@ #include "../arch/vmpa.h" #include "../common/endianness.h" #include "../common/leb128.h" -#include "../common/xml.h" @@ -55,9 +54,6 @@ typedef struct _GBinContentIface GBinContentIface; /* Détermine le type d'une interface pour la lecture de binaire. */ GType g_binary_content_get_type(void) G_GNUC_CONST; -/* Charge en mémoire un contenu binaire à partir d'XML. */ -GBinContent *g_binary_content_new_from_xml(xmlXPathContextPtr, const char *, const char *); - /* Associe un ensemble d'attributs au contenu binaire. */ void g_binary_content_set_attributes(GBinContent *, GContentAttributes *); @@ -70,9 +66,6 @@ GBinContent *g_binary_content_get_root(GBinContent *); /* Fournit le nom associé au contenu binaire. */ char *g_binary_content_describe(const GBinContent *, bool); -/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */ -bool g_binary_content_save(const GBinContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *); - /* Fournit une empreinte unique (SHA256) pour les données. */ const gchar *g_binary_content_get_checksum(GBinContent *); diff --git a/src/analysis/contents/encapsulated.c b/src/analysis/contents/encapsulated.c index fa31aa4..7fb7e0c 100644 --- a/src/analysis/contents/encapsulated.c +++ b/src/analysis/contents/encapsulated.c @@ -87,9 +87,6 @@ static GBinContent *g_encaps_content_get_root(GEncapsContent *); /* Fournit le nom associé au contenu binaire. */ static char *g_encaps_content_describe(const GEncapsContent *, bool); -/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */ -static bool g_encaps_content_save(const GEncapsContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *); - /* Fournit une empreinte unique (SHA256) pour les données. */ static void g_encaps_content_compute_checksum(GEncapsContent *, GChecksum *); @@ -226,8 +223,6 @@ static void g_encaps_content_interface_init(GBinContentInterface *iface) iface->describe = (describe_content_fc)g_encaps_content_describe; - iface->save = (save_content_fc)g_encaps_content_save; - iface->compute_checksum = (compute_checksum_fc)g_encaps_content_compute_checksum; iface->compute_size = (compute_size_fc)g_encaps_content_compute_size; @@ -345,75 +340,6 @@ GBinContent *g_encaps_content_new(GBinContent *base, const char *path, GBinConte /****************************************************************************** * * -* Paramètres : context = contexte pour les recherches XPath. * -* path = chemin d'accès au noeud XML à lire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Charge en mémoire un contenu encapsulé à partir d'XML. * -* * -* Retour : Adresse de la représentation ou NULL en cas d'échec. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GBinContent *g_encaps_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base) -{ - GBinContent *result; /* Adresse à retourner */ - char *access; /* Chemin d'accès à un élément */ - GBinContent *original; /* Base offrant une extraction */ - char *target; /* Chemin vers le contenu ciblé*/ - GBinContent *endpoint; /* Contenu ciblé */ - - result = NULL; - - /* Base de l'extraction */ - - access = strdup(path); - access = stradd(access, "/Base"); - - original = g_binary_content_new_from_xml(context, access, base); - - free(access); - - /* Référence au contenu encapsulé */ - - if (original != NULL) - { - access = strdup(path); - access = stradd(access, "/Path"); - - target = get_node_text_value(context, access); - - if (target != NULL) - { - endpoint = NULL;/// TODO - - if (endpoint != NULL) - { - result = g_encaps_content_new(original, target, endpoint); - g_object_unref(G_OBJECT(endpoint)); - } - - g_object_unref(G_OBJECT(original)); - - } - else - g_object_unref(G_OBJECT(original)); - - - free(target); - free(access); - - } - - return result; - -} - - -/****************************************************************************** -* * * Paramètres : content = élément GLib à constuire. * * storage = conservateur de données à manipuler ou NULL. * * pbuf = zone tampon à lire. * @@ -600,59 +526,6 @@ static char *g_encaps_content_describe(const GEncapsContent *content, bool full) /****************************************************************************** * * -* Paramètres : content = contenu binaire à traiter. * -* xdoc = structure XML en cours d'édition. * -* context = contexte à utiliser pour les recherches. * -* path = chemin d'accès réservé au binaire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. * -* * -* Retour : true si l'opération a bien tourné, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static bool g_encaps_content_save(const GEncapsContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base) -{ - bool result; /* Bilan à faire remonter */ - char *access; /* Chemin d'accès à un élément */ - - /* Type */ - - result = add_string_attribute_to_node(xdoc, context, path, "type", "encaps"); - if (!result) goto gecs_exit; - - /* Base de l'extraction */ - - access = strdup(path); - access = stradd(access, "/Base"); - - result = g_binary_content_save(content->base, xdoc, context, access, base); - - free(access); - - if (!result) goto gecs_exit; - - /* Référence au contenu encapsulé */ - - access = strdup(path); - access = stradd(access, "/Path"); - - result = add_content_to_node(xdoc, context, access, content->path); - - free(access); - - gecs_exit: - - return result; - -} - - -/****************************************************************************** -* * * Paramètres : content = contenu binaire à venir lire. * * checksum = empreinte de zone mémoire à compléter. * * * diff --git a/src/analysis/contents/encapsulated.h b/src/analysis/contents/encapsulated.h index 2fac768..9b74eac 100644 --- a/src/analysis/contents/encapsulated.h +++ b/src/analysis/contents/encapsulated.h @@ -53,9 +53,6 @@ GType g_encaps_content_get_type(void); /* Charge en mémoire un contenu binaire encapsulé. */ GBinContent *g_encaps_content_new(GBinContent *, const char *, GBinContent *); -/* Charge en mémoire un contenu encapsulé à partir d'XML. */ -GBinContent *g_encaps_content_new_from_xml(xmlXPathContextPtr, const char *, const char *); - /* Indique la base d'un contenu binaire encapsulé. */ GBinContent *g_encaps_content_get_base(const GEncapsContent *); diff --git a/src/analysis/contents/file.c b/src/analysis/contents/file.c index 69bf510..78bd981 100644 --- a/src/analysis/contents/file.c +++ b/src/analysis/contents/file.c @@ -261,64 +261,6 @@ GBinContent *g_file_content_new(const char *filename) /****************************************************************************** * * -* Paramètres : context = contexte pour les recherches XPath. * -* path = chemin d'accès au noeud XML à lire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Charge en mémoire le contenu d'un fichier à partir d'XML. * -* * -* Retour : Adresse de la représentation ou NULL en cas d'échec. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base) -{ - return NULL; - -#if 0 - - - GBinContent *result; /* Adresse à retourner */ - char *access; /* Chemin pour une sous-config.*/ - char *filename; /* Chemin du binaire à charger */ - char *absolute; /* Chemin absolu final */ - - result = NULL; - - /* Chemin du fichier à retrouver */ - - access = strdup(path); - access = stradd(access, "/Filename"); - - filename = get_node_text_value(context, access); - - free(access); - - /* Chargement */ - - if (filename != NULL) - { - absolute = build_absolute_filename(base, filename); - - free(filename); - - if (absolute != NULL) - { - result = g_file_content_new(absolute); - free(absolute); - } - - } - - return result; -#endif -} - - -/****************************************************************************** -* * * Paramètres : content = élément GLib à constuire. * * storage = conservateur de données à manipuler ou NULL. * * pbuf = zone tampon à lire. * diff --git a/src/analysis/contents/file.h b/src/analysis/contents/file.h index 98de045..5039f81 100644 --- a/src/analysis/contents/file.h +++ b/src/analysis/contents/file.h @@ -53,9 +53,6 @@ GType g_file_content_get_type(void); /* Charge en mémoire le contenu d'un fichier donné. */ GBinContent *g_file_content_new(const char *); -/* Charge en mémoire le contenu d'un fichier à partir d'XML. */ -GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr, const char *, const char *); - /* Fournit le nom de fichier associé au contenu binaire. */ const char *g_file_content_get_filename(const GFileContent *); diff --git a/src/analysis/contents/memory.c b/src/analysis/contents/memory.c index 5d90694..7938562 100644 --- a/src/analysis/contents/memory.c +++ b/src/analysis/contents/memory.c @@ -78,9 +78,6 @@ static GBinContent *g_memory_content_get_root(GMemoryContent *); /* Fournit le nom associé au contenu binaire. */ static char *g_memory_content_describe(const GMemoryContent *, bool); -/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */ -static bool g_memory_content_save(const GMemoryContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *); - /* Fournit une empreinte unique (SHA256) pour les données. */ static void g_memory_content_compute_checksum(GMemoryContent *, GChecksum *); @@ -227,8 +224,6 @@ static void g_memory_content_interface_init(GBinContentInterface *iface) iface->describe = (describe_content_fc)g_memory_content_describe; - iface->save = (save_content_fc)g_memory_content_save; - iface->compute_checksum = (compute_checksum_fc)g_memory_content_compute_checksum; iface->compute_size = (compute_size_fc)g_memory_content_compute_size; @@ -340,64 +335,6 @@ GBinContent *g_memory_content_new(const bin_t *data, phys_t size) /****************************************************************************** * * -* Paramètres : context = contexte pour les recherches XPath. * -* path = chemin d'accès au noeud XML à lire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Charge des données à laisser en mémoire à partir d'XML. * -* * -* Retour : Adresse de la représentation ou NULL en cas d'échec. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GBinContent *g_memory_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base) -{ - return NULL; - -#if 0 - - GBinContent *result; /* Adresse à retourner */ - char *access; /* Chemin pour une sous-config.*/ - char *encoded; /* Données encodées à charger */ - guchar *data; /* Données brutes à charger */ - gsize size; /* Quantité de ces données */ - - result = NULL; - - /* Chemin du fichier à retrouver */ - - access = strdup(path); - access = stradd(access, "/Data"); - - encoded = get_node_text_value(context, access); - - free(access); - - /* Chargement */ - - if (encoded != NULL) - { - data = g_base64_decode(encoded, &size); - - free(encoded); - - if (data != NULL) - { - result = g_memory_content_new(data, size); - g_free(data); - } - - } - - return result; -#endif -} - - -/****************************************************************************** -* * * Paramètres : content = élément GLib à constuire. * * storage = conservateur de données à manipuler ou NULL. * * pbuf = zone tampon à lire. * @@ -609,67 +546,6 @@ static char *g_memory_content_describe(const GMemoryContent *content, bool full) /****************************************************************************** * * -* Paramètres : content = contenu binaire à traiter. * -* xdoc = structure XML en cours d'édition. * -* context = contexte à utiliser pour les recherches. * -* path = chemin d'accès réservé au binaire. * -* base = référence au lieu d'enregistrement du projet. * -* * -* Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. * -* * -* Retour : true si l'opération a bien tourné, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static bool g_memory_content_save(const GMemoryContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base) -{ - return false; - -#if 0 - - bool result; /* Bilan à faire remonter */ - char *access; /* Chemin d'accès à un élément */ - vmpa2t start; /* Tête de lecture initiale */ - phys_t length; /* Nombre d'octets disponibles */ - const bin_t *data; /* Données brutes à sauvegarder*/ - gchar *encoded; /* Données encodées à écrire */ - - /* Type */ - - result = add_string_attribute_to_node(xdoc, context, path, "type", "memory"); - if (!result) goto gmcs_exit; - - /* Données en mémoire associées */ - - access = strdup(path); - access = stradd(access, "/Data"); - - init_vmpa(&start, 0, VMPA_NO_VIRTUAL); - - length = g_binary_content_compute_size(content->backend); - - data = g_binary_content_get_raw_access(content->backend, &start, length); - assert(data != NULL); - - encoded = g_base64_encode((const guchar *)data, length); - assert(encoded != NULL); - - result = add_content_to_node(xdoc, context, access, encoded); - - g_free(encoded); - free(access); - - gmcs_exit: - - return result; -#endif -} - - -/****************************************************************************** -* * * Paramètres : content = contenu binaire à venir lire. * * checksum = empreinte de zone mémoire à compléter. * * * diff --git a/src/analysis/contents/memory.h b/src/analysis/contents/memory.h index 434d586..1759e69 100644 --- a/src/analysis/contents/memory.h +++ b/src/analysis/contents/memory.h @@ -53,9 +53,6 @@ GType g_memory_content_get_type(void); /* Charge en mémoire le contenu de données brutes. */ GBinContent *g_memory_content_new(const bin_t *, phys_t); -/* Charge des données à laisser en mémoire à partir d'XML. */ -GBinContent *g_memory_content_new_from_xml(xmlXPathContextPtr, const char *, const char *); - #endif /* _ANALYSIS_CONTENTS_MEMORY_H */ -- cgit v0.11.2-87-g4458