diff options
Diffstat (limited to 'src/analysis/scan/core.c')
| -rw-r--r-- | src/analysis/scan/core.c | 96 | 
1 files changed, 83 insertions, 13 deletions
diff --git a/src/analysis/scan/core.c b/src/analysis/scan/core.c index aef9abd..d940ab5 100644 --- a/src/analysis/scan/core.c +++ b/src/analysis/scan/core.c @@ -24,8 +24,20 @@  #include "core.h" +#include <config.h> + + +#include "items/count.h"  #include "items/datasize.h"  #include "items/uint.h" +#include "items/console/log.h" +#ifdef HAVE_MAGIC_SUPPORT +#   include "items/magic/type.h" +#   include "items/magic/mime-encoding.h" +#   include "items/magic/mime-type.h" +#endif +#include "items/time/make.h" +#include "items/time/now.h" @@ -43,25 +55,83 @@  bool populate_main_scan_namespace(GScanNamespace *space)  { -    bool result; +    bool result;                            /* Bilan à retourner           */ +    GScanNamespace *ns;                     /* Nouvel espace de noms       */      result = true; -#define REGISTER_FUNC(s, f)                                                 \ -    ({                                                                      \ -        bool __result;                                                      \ -        __result = g_scan_namespace_register_item(s, G_REGISTERED_ITEM(f)); \ -        g_object_unref(G_OBJECT(f));                                        \ -        __result;                                                           \ +#define REGISTER_FUNC(s, f)                                 \ +    ({                                                      \ +        bool __result;                                      \ +        __result = g_scan_namespace_register_item(s, f);    \ +        g_object_unref(G_OBJECT(f));                        \ +        __result;                                           \      }) -    if (result) result = REGISTER_FUNC(space, g_datasize_function_new()); -    //if (result) result = REGISTER_FUNC(space, g_datasize_function_new(), "filesize"); /* Alias */ +    if (result) result = REGISTER_FUNC(space, g_scan_count_function_new()); +    if (result) result = REGISTER_FUNC(space, g_scan_datasize_function_new()); + +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_8_BITS_SIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_8_BITS_UNSIGNED, SRE_LITTLE)); + +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_16_BITS_SIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_16_BITS_SIGNED, SRE_BIG)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_16_BITS_UNSIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_16_BITS_UNSIGNED, SRE_BIG)); + +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_32_BITS_SIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_32_BITS_SIGNED, SRE_BIG)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_32_BITS_UNSIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_32_BITS_UNSIGNED, SRE_BIG)); + +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_64_BITS_SIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_64_BITS_SIGNED, SRE_BIG)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_64_BITS_UNSIGNED, SRE_LITTLE)); +    if (result) result = REGISTER_FUNC(space, g_scan_uint_function_new(MDS_64_BITS_UNSIGNED, SRE_BIG)); + +    /* Console */ + +    if (result) +    { +        ns = g_scan_namespace_new("console"); +        result = g_scan_namespace_register_item(space, G_REGISTERED_ITEM(ns)); + +        if (result) result = REGISTER_FUNC(ns, g_scan_console_log_function_new()); + +        g_object_unref(G_OBJECT(ns)); + +    } + +    /* Magic */ + +#ifdef HAVE_MAGIC_SUPPORT +    if (result) +    { +        ns = g_scan_namespace_new("magic"); +        result = g_scan_namespace_register_item(space, G_REGISTERED_ITEM(ns)); + +        if (result) result = REGISTER_FUNC(ns, g_scan_magic_type_function_new()); +        if (result) result = REGISTER_FUNC(ns, g_scan_mime_encoding_function_new()); +        if (result) result = REGISTER_FUNC(ns, g_scan_mime_type_function_new()); + +        g_object_unref(G_OBJECT(ns)); + +    } +#endif + +    /* Time */ + +    if (result) +    { +        ns = g_scan_namespace_new("time"); +        result = g_scan_namespace_register_item(space, G_REGISTERED_ITEM(ns)); + +        if (result) result = REGISTER_FUNC(ns, g_scan_time_make_function_new()); +        if (result) result = REGISTER_FUNC(ns, g_scan_time_now_function_new()); + +        g_object_unref(G_OBJECT(ns)); -    if (result) result = REGISTER_FUNC(space, g_uint_function_new(MDS_8_BITS_UNSIGNED)); -    if (result) result = REGISTER_FUNC(space, g_uint_function_new(MDS_16_BITS_UNSIGNED)); -    if (result) result = REGISTER_FUNC(space, g_uint_function_new(MDS_32_BITS_UNSIGNED)); -    if (result) result = REGISTER_FUNC(space, g_uint_function_new(MDS_64_BITS_UNSIGNED)); +    }      return result;  | 
