summaryrefslogtreecommitdiff
path: root/src/analysis/contents
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-04-21 22:00:00 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-04-21 22:00:00 (GMT)
commit8eb95d316f7b6fbad0ff798abfe7f70f89e812d2 (patch)
tree4f310c7ffdb94d48fff236e63c7e6f0ed9f1dee1 /src/analysis/contents
parent315146a49b5570294ca20beca720c4e3f74a86bd (diff)
Improved the way file formats are detected and loaded.
Diffstat (limited to 'src/analysis/contents')
-rw-r--r--src/analysis/contents/encapsulated.c28
-rw-r--r--src/analysis/contents/file.c28
-rw-r--r--src/analysis/contents/memory.c28
-rw-r--r--src/analysis/contents/restricted.c28
4 files changed, 112 insertions, 0 deletions
diff --git a/src/analysis/contents/encapsulated.c b/src/analysis/contents/encapsulated.c
index 1fd4203..e307e6b 100644
--- a/src/analysis/contents/encapsulated.c
+++ b/src/analysis/contents/encapsulated.c
@@ -70,6 +70,9 @@ static void g_encaps_content_dispose(GEncapsContent *);
/* Procède à la libération totale de la mémoire. */
static void g_encaps_content_finalize(GEncapsContent *);
+/* Donne l'origine d'un contenu binaire. */
+static GBinContent *g_encaps_content_get_root(GEncapsContent *);
+
/* Fournit le nom associé au contenu binaire. */
static const char *g_encaps_content_describe(const GEncapsContent *, bool);
@@ -181,6 +184,8 @@ static void g_encaps_content_init(GEncapsContent *content)
static void g_encaps_content_interface_init(GBinContentInterface *iface)
{
+ iface->get_root = (get_content_root_fc)g_encaps_content_get_root;
+
iface->describe = (describe_content_fc)g_encaps_content_describe;
iface->save = (save_content_fc)g_encaps_content_save;
@@ -367,6 +372,29 @@ GBinContent *g_encaps_content_new_from_xml(xmlXPathContextPtr context, const cha
/******************************************************************************
* *
* Paramètres : content = contenu binaire à consulter. *
+* *
+* Description : Donne l'origine d'un contenu binaire. *
+* *
+* Retour : Contenu à l'origine du contenu courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GBinContent *g_encaps_content_get_root(GEncapsContent *content)
+{
+ GBinContent *result; /* Contenu en place à renvoyer */
+
+ result = g_binary_content_get_root(content->base);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : content = contenu binaire à consulter. *
* full = précise s'il s'agit d'une version longue ou non. *
* *
* Description : Fournit le nom associé au contenu binaire. *
diff --git a/src/analysis/contents/file.c b/src/analysis/contents/file.c
index 31acb6f..901a848 100644
--- a/src/analysis/contents/file.c
+++ b/src/analysis/contents/file.c
@@ -73,6 +73,9 @@ static void g_file_content_dispose(GFileContent *);
/* Procède à la libération totale de la mémoire. */
static void g_file_content_finalize(GFileContent *);
+/* Donne l'origine d'un contenu binaire. */
+static GBinContent *g_file_content_get_root(GFileContent *);
+
/* Fournit le nom associé au contenu binaire. */
static const char *g_file_content_describe(const GFileContent *, bool);
@@ -181,6 +184,8 @@ static void g_file_content_init(GFileContent *content)
static void g_file_content_interface_init(GBinContentInterface *iface)
{
+ iface->get_root = (get_content_root_fc)g_file_content_get_root;
+
iface->describe = (describe_content_fc)g_file_content_describe;
iface->save = (save_content_fc)g_file_content_save;
@@ -376,6 +381,29 @@ GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr context, const char
/******************************************************************************
* *
* Paramètres : content = contenu binaire à consulter. *
+* *
+* Description : Donne l'origine d'un contenu binaire. *
+* *
+* Retour : Contenu à l'origine du contenu courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GBinContent *g_file_content_get_root(GFileContent *content)
+{
+ GBinContent *result; /* Contenu en place à renvoyer */
+
+ result = G_BIN_CONTENT(content);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : content = contenu binaire à consulter. *
* full = précise s'il s'agit d'une version longue ou non. *
* *
* Description : Fournit le nom associé au contenu binaire. *
diff --git a/src/analysis/contents/memory.c b/src/analysis/contents/memory.c
index a7bdbea..beefe89 100644
--- a/src/analysis/contents/memory.c
+++ b/src/analysis/contents/memory.c
@@ -73,6 +73,9 @@ static void g_memory_content_dispose(GMemoryContent *);
/* Procède à la libération totale de la mémoire. */
static void g_memory_content_finalize(GMemoryContent *);
+/* Donne l'origine d'un contenu binaire. */
+static GBinContent *g_memory_content_get_root(GMemoryContent *);
+
/* Fournit le nom associé au contenu binaire. */
static const char *g_memory_content_describe(const GMemoryContent *, bool);
@@ -183,6 +186,8 @@ static void g_memory_content_init(GMemoryContent *content)
static void g_memory_content_interface_init(GBinContentInterface *iface)
{
+ iface->get_root = (get_content_root_fc)g_memory_content_get_root;
+
iface->describe = (describe_content_fc)g_memory_content_describe;
iface->save = (save_content_fc)g_memory_content_save;
@@ -357,6 +362,29 @@ GBinContent *g_memory_content_new_from_xml(xmlXPathContextPtr context, const cha
/******************************************************************************
* *
* Paramètres : content = contenu binaire à consulter. *
+* *
+* Description : Donne l'origine d'un contenu binaire. *
+* *
+* Retour : Contenu à l'origine du contenu courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GBinContent *g_memory_content_get_root(GMemoryContent *content)
+{
+ GBinContent *result; /* Contenu en place à renvoyer */
+
+ result = G_BIN_CONTENT(content);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : content = contenu binaire à consulter. *
* full = précise s'il s'agit d'une version longue ou non. *
* *
* Description : Fournit le nom associé au contenu binaire. *
diff --git a/src/analysis/contents/restricted.c b/src/analysis/contents/restricted.c
index 711f963..d52e1c0 100644
--- a/src/analysis/contents/restricted.c
+++ b/src/analysis/contents/restricted.c
@@ -66,6 +66,9 @@ static void g_restricted_content_dispose(GRestrictedContent *);
/* Procède à la libération totale de la mémoire. */
static void g_restricted_content_finalize(GRestrictedContent *);
+/* Donne l'origine d'un contenu binaire. */
+static GBinContent *g_restricted_content_get_root(GRestrictedContent *);
+
/* Calcule une empreinte unique (SHA256) pour les données. */
static void g_restricted_content_compute_checksum(GRestrictedContent *, GChecksum *);
@@ -168,6 +171,8 @@ static void g_restricted_content_init(GRestrictedContent *content)
static void g_restricted_content_interface_init(GBinContentInterface *iface)
{
+ iface->get_root = (get_content_root_fc)g_restricted_content_get_root;
+
iface->compute_checksum = (compute_checksum_fc)g_restricted_content_compute_checksum;
iface->compute_size = (compute_size_fc)g_restricted_content_compute_size;
@@ -290,6 +295,29 @@ GBinContent *g_restricted_content_new_ro(const GBinContent *content, const mrang
/******************************************************************************
* *
+* Paramètres : content = contenu binaire à consulter. *
+* *
+* Description : Donne l'origine d'un contenu binaire. *
+* *
+* Retour : Contenu à l'origine du contenu courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GBinContent *g_restricted_content_get_root(GRestrictedContent *content)
+{
+ GBinContent *result; /* Contenu en place à renvoyer */
+
+ result = g_binary_content_get_root(content->internal);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : content = contenu binaire à venir lire. *
* checksum = empreinte de zone mémoire à compléter. *
* *