@@ -474,46 +474,41 @@ static PHP_FUNCTION(datadog_appsec_testing_request_exec)
474474 RETURN_TRUE ;
475475}
476476
477- static PHP_FUNCTION (datadog_appsec_push_address )
477+ static PHP_FUNCTION (datadog_appsec_push_addresses )
478478{
479479 struct timespec start ;
480480 struct timespec end ;
481481 clock_gettime (CLOCK_MONOTONIC_RAW , & start );
482482 long elapsed = 0 ;
483483 UNUSED (return_value );
484484 if (!DDAPPSEC_G (active )) {
485- mlog (dd_log_debug , "Trying to access to push_address "
485+ mlog (dd_log_debug , "Trying to access to push_addresses "
486486 "function while appsec is disabled" );
487487 return ;
488488 }
489489
490- zend_string * key = NULL ;
491- zval * value = NULL ;
490+ zval * addresses = NULL ;
492491 bool rasp = false;
493- if (zend_parse_parameters (ZEND_NUM_ARGS (), "Sz |b" , & key , & value , & rasp ) ==
492+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "z |b" , & addresses , & rasp ) ==
494493 FAILURE ) {
495494 RETURN_FALSE ;
496495 }
497496
497+ if (Z_TYPE_P (addresses ) != IS_ARRAY ) {
498+ RETURN_FALSE ;
499+ }
500+
498501 if (rasp && !get_global_DD_APPSEC_RASP_ENABLED ()) {
499502 return ;
500503 }
501504
502- zval parameters_zv ;
503- zend_array * parameters_arr = zend_new_array (1 );
504- ZVAL_ARR (& parameters_zv , parameters_arr );
505- zend_hash_add (Z_ARRVAL (parameters_zv ), key , value );
506- Z_TRY_ADDREF_P (value );
507-
508505 dd_conn * conn = dd_helper_mgr_cur_conn ();
509506 if (conn == NULL ) {
510- zval_ptr_dtor (& parameters_zv );
511- mlog_g (dd_log_debug , "No connection; skipping push_address" );
507+ mlog_g (dd_log_debug , "No connection; skipping push_addresses" );
512508 return ;
513509 }
514510
515- dd_result res = dd_request_exec (conn , & parameters_zv , rasp );
516- zval_ptr_dtor (& parameters_zv );
511+ dd_result res = dd_request_exec (conn , addresses , rasp );
517512
518513 if (rasp ) {
519514 clock_gettime (CLOCK_MONOTONIC_RAW , & end );
@@ -549,16 +544,16 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(request_exec_arginfo, 0, 1, _IS_BOOL, 0)
549544ZEND_ARG_INFO (0 , "data" )
550545ZEND_END_ARG_INFO ()
551546
552- ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX (push_address_arginfo , 0 , 0 , IS_VOID , 1 )
553- ZEND_ARG_INFO ( 0 , key )
554- ZEND_ARG_INFO (0 , value )
547+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX (
548+ push_addresses_arginfo , 0 , 0 , IS_VOID , 1 )
549+ ZEND_ARG_INFO (0 , addresses )
555550ZEND_ARG_INFO (0 , rasp )
556551ZEND_END_ARG_INFO ()
557552
558553// clang-format off
559554static const zend_function_entry functions [] = {
560555 ZEND_RAW_FENTRY (DD_APPSEC_NS "is_enabled" , PHP_FN (datadog_appsec_is_enabled ), void_ret_bool_arginfo , 0 , NULL , NULL )
561- ZEND_RAW_FENTRY (DD_APPSEC_NS "push_address " , PHP_FN (datadog_appsec_push_address ), push_address_arginfo , 0 , NULL , NULL )
556+ ZEND_RAW_FENTRY (DD_APPSEC_NS "push_addresses " , PHP_FN (datadog_appsec_push_addresses ), push_addresses_arginfo , 0 , NULL , NULL )
562557 PHP_FE_END
563558};
564559static const zend_function_entry testing_functions [] = {
0 commit comments