diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-06-25 06:46:04 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-06-25 06:46:04 (GMT) |
commit | 3bf12eda58a8d04ac3d2d6754a480de4c262570d (patch) | |
tree | 010fc97ad481adc00ac4722d77093f469096638b /plugins/pychrysa/analysis/binaries/module.c | |
parent | 11395d684736467fb010b93b0eaeefcc06bf0f5e (diff) |
Built the first steps to upgrade to Python3.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@379 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'plugins/pychrysa/analysis/binaries/module.c')
-rw-r--r-- | plugins/pychrysa/analysis/binaries/module.c | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/plugins/pychrysa/analysis/binaries/module.c b/plugins/pychrysa/analysis/binaries/module.c index aae0a33..c2adddf 100644 --- a/plugins/pychrysa/analysis/binaries/module.c +++ b/plugins/pychrysa/analysis/binaries/module.c @@ -41,25 +41,50 @@ * * ******************************************************************************/ -bool add_binaries_module_to_python_module(PyObject *super) +bool add_analysis_binaries_module_to_python_module(PyObject *super) { - bool result; - PyObject *module; + bool result; /* Bilan à retourner */ + PyObject *module; /* Sous-module mis en place */ int ret; /* Bilan d'un appel */ - static PyMethodDef py_format_methods[] = { - { NULL } + static PyModuleDef py_chrysalide_arch_module = { + + .m_base = PyModuleDef_HEAD_INIT, + + .m_name = "pychrysalide.analysis.binaries", + .m_doc = "Python module for Chrysalide.analysis.binaries", + + .m_size = -1, + }; - module = Py_InitModule("pychrysalide.analysis.binaries", py_format_methods); + result = false; + + module = PyModule_Create(&py_chrysalide_arch_module); if (module == NULL) return false; + ret = PyState_AddModule(super, &py_chrysalide_arch_module); + if (ret != 0) goto aabmtpm_exit; + + ret = _PyImport_FixupBuiltin(module, "pychrysalide.analysis.binaries"); + if (ret != 0) goto aabmtpm_exit; + Py_INCREF(module); - ret = PyModule_AddObject(super, "pychrysalide.analysis.binaries", module); + ret = PyModule_AddObject(super, "binaries", module); + if (ret != 0) goto aabmtpm_exit; + + result = true; + + result &= register_python_binary_file(module); + + aabmtpm_exit: - result = (ret == 0); + if (!result) + { + printf("something went wrong in %s...\n", __FUNCTION__); + /* ... */ - result &= register_python_file_binary(module); + } return result; |