@@ -488,8 +488,8 @@ static PHP_FUNCTION(datadog_appsec_push_addresses)
488488 }
489489
490490 zval * addresses = NULL ;
491- bool rasp = false ;
492- if (zend_parse_parameters (ZEND_NUM_ARGS (), "z|b " , & addresses , & rasp ) ==
491+ long rasp_rule = dd_rasp_rule_none ;
492+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "z|l " , & addresses , & rasp_rule ) ==
493493 FAILURE ) {
494494 RETURN_FALSE ;
495495 }
@@ -498,7 +498,12 @@ static PHP_FUNCTION(datadog_appsec_push_addresses)
498498 RETURN_FALSE ;
499499 }
500500
501- if (rasp && !get_global_DD_APPSEC_RASP_ENABLED ()) {
501+ if (rasp_rule != dd_rasp_rule_lfi && rasp_rule != dd_rasp_rule_ssrf ) {
502+ rasp_rule = dd_rasp_rule_none ;
503+ }
504+
505+ if (rasp_rule != dd_rasp_rule_none &&
506+ !get_global_DD_APPSEC_RASP_ENABLED ()) {
502507 return ;
503508 }
504509
@@ -508,9 +513,9 @@ static PHP_FUNCTION(datadog_appsec_push_addresses)
508513 return ;
509514 }
510515
511- dd_result res = dd_request_exec (conn , addresses , rasp );
516+ dd_result res = dd_request_exec (conn , addresses , rasp_rule );
512517
513- if (rasp ) {
518+ if (rasp_rule > dd_rasp_rule_none ) {
514519 clock_gettime (CLOCK_MONOTONIC_RAW , & end );
515520 elapsed =
516521 ((int64_t )end .tv_sec - (int64_t )start .tv_sec ) *
@@ -570,6 +575,16 @@ static void _register_testing_objects()
570575{
571576 dd_phpobj_reg_funcs (functions );
572577
578+ # define _REG_RASP_CONST (php_name , value ) \
579+ do { \
580+ char v[] = "datadog\\appsec\\rasp\\" php_name; \
581+ dd_phpobj_reg_long_const( \
582+ v, sizeof(v) - 1, value, CONST_CS | CONST_PERSISTENT); \
583+ } while (0)
584+
585+ _REG_RASP_CONST ("LFI" , dd_rasp_rule_lfi );
586+ _REG_RASP_CONST ("SSRF" , dd_rasp_rule_ssrf );
587+
573588 if (!get_global_DD_APPSEC_TESTING ()) {
574589 return ;
575590 }
0 commit comments