@@ -15,10 +15,7 @@ typedef enum {
15
15
ERROR ,
16
16
} log_level ;
17
17
18
- #define LOG (level , format , ...) ddloader_logf(level, format, ##__VA_ARGS__);
19
-
20
- void ddloader_logv (log_level level , const char * format , va_list va );
21
- void ddloader_logf (log_level level , const char * format , ...);
18
+ #define LOG (config , level , format , ...) ddloader_logf(config, level, format, ##__VA_ARGS__);
22
19
23
20
typedef enum {
24
21
REASON_START ,
@@ -29,31 +26,52 @@ typedef enum {
29
26
REASON_COMPLETE ,
30
27
} telemetry_reason ;
31
28
29
+ typedef enum {
30
+ EXT_DDTRACE ,
31
+ EXT_DATADOG_PROFILING ,
32
+ EXT_DDAPPSEC ,
33
+
34
+ EXT_COUNT ,
35
+ } dd_injected_ext ;
36
+
32
37
#define TELEMETRY (reason , config , error , format , ...) ddloader_telemetryf(reason, config, error, format, ##__VA_ARGS__);
33
38
34
39
#define DECLARE_INJECTED_EXT (name , dir , min_version , _pre_load_hook , _pre_minit_hook , deps ) \
35
40
{ \
36
41
.ext_name = name, .ext_dir = dir, .ext_min_version = min_version, .tmp_name = name "_injected", .tmp_deps = deps, \
37
42
.pre_load_hook = _pre_load_hook, .pre_minit_hook = _pre_minit_hook, \
38
43
.orig_module_startup_func = NULL, .orig_module_deps = NULL, .orig_module_functions = NULL, \
39
- .module_number = -1, .version = NULL \
44
+ .module_number = -1, .version = NULL, \
45
+ .injection_success = false, .injection_error = NULL, .extra_config = {0}, .logs = {0} \
40
46
}
41
47
48
+ #define MAX_EXTRA_CONFIG_SIZE 1024
49
+ #define MAX_LOGS_SIZE 2048
50
+
42
51
typedef struct _injected_ext {
43
52
const char * ext_name ;
44
53
const char * ext_dir ;
45
54
unsigned int ext_min_version ;
46
55
47
56
const char * tmp_name ;
48
57
const zend_module_dep * tmp_deps ;
49
- char * (* pre_load_hook )(void );
50
- void (* pre_minit_hook )(void );
58
+ char * (* pre_load_hook )(struct _injected_ext * config );
59
+ void (* pre_minit_hook )(struct _injected_ext * config );
51
60
52
61
zend_result (* orig_module_startup_func )(INIT_FUNC_ARGS );
53
62
const zend_module_dep * orig_module_deps ;
54
63
const zend_function_entry * orig_module_functions ;
55
64
int module_number ;
56
65
char * version ;
66
+
67
+ // phpinfo data
68
+ bool injection_success ;
69
+ const char * injection_error ;
70
+ char extra_config [MAX_EXTRA_CONFIG_SIZE ];
71
+ char logs [MAX_LOGS_SIZE ];
57
72
} injected_ext ;
58
73
74
+ void ddloader_logv (injected_ext * config , log_level level , const char * format , va_list va );
75
+ void ddloader_logf (injected_ext * config , log_level level , const char * format , ...);
76
+
59
77
#endif /* PHP_DD_LIBRARY_LOADER_H */
0 commit comments