Index: bindings/libprelude_python.i =================================================================== --- bindings/libprelude_python.i (révision 10121) +++ bindings/libprelude_python.i (copie de travail) @@ -93,6 +93,39 @@ }; +/* the following typemaps are used to allow NULL pointers to be passed + * to _get_next_* functions + */ +%typemap(in) idmef_reference_t *object { + if ( $input == Py_None ) { + $1 = NULL; + } else { + if ( SWIG_ConvertPtr($input, (void **)&$1, $1_descriptor, SWIG_POINTER_EXCEPTION|0) ) + return NULL; + } +}; + +%apply idmef_reference_t *object { idmef_user_id_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { idmef_address_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { idmef_file_access_t *object }; +%apply idmef_reference_t *object { idmef_linkage_t *object }; +%apply idmef_reference_t *object { idmef_checksum_t *object }; +%apply idmef_reference_t *object { idmef_file_t *object }; +%apply idmef_reference_t *object { idmef_action_t *object }; +%apply idmef_reference_t *object { idmef_alertident_t *object }; +%apply idmef_reference_t *object { idmef_alertident_t *object }; +%apply idmef_reference_t *object { idmef_analyzer_t *object }; +%apply idmef_reference_t *object { idmef_source_t *object }; +%apply idmef_reference_t *object { idmef_target_t *object }; +%apply idmef_reference_t *object { idmef_additional_data_t *object }; +%apply idmef_reference_t *object { idmef_analyzer_t *object }; +%apply idmef_reference_t *object { idmef_additional_data_t *object }; + + %typemap(in) const char * { if ( $input == Py_None ) $1 = NULL; Index: bindings/libprelude_perl.i =================================================================== --- bindings/libprelude_perl.i (révision 10121) +++ bindings/libprelude_perl.i (copie de travail) @@ -74,6 +74,42 @@ %} + +/* the following typemaps are used to allow NULL pointers to be passed + * to _get_next_* functions + */ +%typemap(in) idmef_reference_t *object { + if ( ! SvOK($input) ) { + $1 = NULL; + } else { + if ( SWIG_ConvertPtr($input, (void **)&$1, $1_descriptor, 0) ) { + croak("Expected type $1_type for argument $argnum."); + return; + } + } +} + +%apply idmef_reference_t *object { idmef_user_id_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { idmef_address_t *object }; +%apply idmef_reference_t *object { prelude_string_t *object }; +%apply idmef_reference_t *object { idmef_file_access_t *object }; +%apply idmef_reference_t *object { idmef_linkage_t *object }; +%apply idmef_reference_t *object { idmef_checksum_t *object }; +%apply idmef_reference_t *object { idmef_file_t *object }; +%apply idmef_reference_t *object { idmef_action_t *object }; +%apply idmef_reference_t *object { idmef_alertident_t *object }; +%apply idmef_reference_t *object { idmef_alertident_t *object }; +%apply idmef_reference_t *object { idmef_analyzer_t *object }; +%apply idmef_reference_t *object { idmef_source_t *object }; +%apply idmef_reference_t *object { idmef_target_t *object }; +%apply idmef_reference_t *object { idmef_additional_data_t *object }; +%apply idmef_reference_t *object { idmef_analyzer_t *object }; +%apply idmef_reference_t *object { idmef_additional_data_t *object }; + + %typemap(in) char **argv { AV *tempav; I32 len;