summaryrefslogtreecommitdiff
path: root/src/analysis/scan/context.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2023-08-18 00:07:39 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2023-08-18 00:07:39 (GMT)
commit2424c52c4f3bc44ce5f36348442cfa103e0989c2 (patch)
treef68aea488f403b234d4fcc6fd6e0f7b88a628ac8 /src/analysis/scan/context.c
parent1c5a0e67186def152536d9c506e2e6c3a3a265c5 (diff)
Create some modifiers and handle match properties inside ROST.
Diffstat (limited to 'src/analysis/scan/context.c')
-rw-r--r--src/analysis/scan/context.c93
1 files changed, 48 insertions, 45 deletions
diff --git a/src/analysis/scan/context.c b/src/analysis/scan/context.c
index f108e93..a3be86b 100644
--- a/src/analysis/scan/context.c
+++ b/src/analysis/scan/context.c
@@ -55,7 +55,7 @@ static void add_match_to_full_match_tracker(full_match_tracker_t *, GScanMatch *
-
+/* --------------------- MEMORISATION DE PROGRESSIONS D'ANALYSE --------------------- */
/* Initialise la classe des contextes de suivi d'analyses. */
@@ -72,10 +72,6 @@ static void g_scan_context_finalize(GScanContext *);
-
-
-
-
/* ---------------------------------------------------------------------------------- */
/* ADMINISTRATION DES CORRESPONDANCES TOTALES */
/* ---------------------------------------------------------------------------------- */
@@ -191,10 +187,9 @@ static void add_match_to_full_match_tracker(full_match_tracker_t *tracker, GScan
-
-
-
-
+/* ---------------------------------------------------------------------------------- */
+/* MEMORISATION DE PROGRESSIONS D'ANALYSE */
+/* ---------------------------------------------------------------------------------- */
/* Indique le type défini pour un contexte de suivi d'analyse. */
@@ -242,6 +237,7 @@ static void g_scan_context_init(GScanContext *context)
context->options = NULL;
context->content = NULL;
+ context->scan_done = false;
context->next_patid = 0;
@@ -378,7 +374,7 @@ GScanContext *g_scan_context_new(GScanOptions *options)
* *
******************************************************************************/
-GScanOptions *g_scan_context_get_options(GScanContext *context)
+GScanOptions *g_scan_context_get_options(const GScanContext *context)
{
GScanOptions *result; /* Ensemble à retourner */
@@ -467,6 +463,48 @@ GBinContent *g_scan_context_get_content(const GScanContext *context)
/******************************************************************************
* *
+* Paramètres : context = instance à consulter. *
+* *
+* Description : Indique si la phase d'analyse de contenu est terminée. *
+* *
+* Retour : true si la phase de scan est terminée, false sinon. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool g_scan_context_is_scan_done(const GScanContext *context)
+{
+ bool result; /* Statut à retourner */
+
+ result = context->scan_done;
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : context = instance à mettre à jour. *
+* *
+* Description : Note que la phase d'analyse de contenu est terminée. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_scan_context_mark_scan_as_done(GScanContext *context)
+{
+ context->scan_done = true;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : context = instance à mettre à jour. *
* id = identifiant du motif trouvé. *
* offset = localisation du motif au sein d'un contenu. *
@@ -615,41 +653,6 @@ const GScanMatch **g_scan_context_get_full_matches(const GScanContext *context,
/******************************************************************************
* *
-* Paramètres : context = mémoire de résultats d'analyse à consulter. *
-* *
-* Description : Affiche les correspondances identifiées. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_scan_context_display(GScanContext *context)
-{
- size_t i; /* Boucle de parcours */
- const rule_condition_t *cond; /* Conditions de orrespondance */
-
- /*
- FIXME : ordre
- for (i = 0; i < context->full_used; i++)
- g_scan_match_display(context->full_matches[i]);
- */
-
- for (i = 0; i < context->cond_count; i++)
- {
- cond = &context->conditions[i];
-
- if (g_scan_context_has_match_for_rule(context, cond->name))
- fprintf(stderr, "Rule '%s' has matched!\n", cond->name);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : context = mémoire de résultats d'analyse à compléter. *
* name = désignation de la règle ciblée. *
* expr = expression de condition à réduire. *