@@ -242,6 +242,20 @@ static void dd_crasht_add_opcache_inis(ddog_Vec_Tag *tags) {
242242#endif
243243}
244244
245+ typedef struct {
246+ ddog_crasht_Config config ;
247+ ddog_crasht_Metadata metadata ;
248+ } dd_crasht_init_args ;
249+
250+ static void dd_crasht_do_init (ddog_crasht_EndpointConfig endpoint_config , void * userdata ) {
251+ dd_crasht_init_args * args = (dd_crasht_init_args * )userdata ;
252+ args -> config .endpoint = endpoint_config ;
253+ dd_crashtracker_check_result (
254+ ddog_crasht_init_without_receiver (args -> config , args -> metadata ),
255+ "Cannot initialize CrashTracker"
256+ );
257+ }
258+
245259static void dd_init_crashtracker () {
246260 ddog_CharSlice socket_path = ddog_sidecar_get_crashtracker_unix_socket_path ();
247261 if (socket_path .len > sizeof (crashtracker_socket_path ) - 1 ) {
@@ -256,32 +270,24 @@ static void dd_init_crashtracker() {
256270 free ((void * ) socket_path .ptr );
257271 socket_path .ptr = crashtracker_socket_path ;
258272
259- char * agent_url = ddtrace_agent_url ();
260- if (!agent_url ) {
273+ if (!ddtrace_endpoint ) {
261274 return ;
262275 }
263276
264- ddog_crasht_Config config = {
265- .endpoint = {.ptr = agent_url , .len = strlen (agent_url )},
266- .timeout_ms = 5000 ,
267- .resolve_frames = DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS ,
268- .optional_unix_socket_filename = socket_path ,
269- .additional_files = {0 },
270- };
271-
272277 ddog_Vec_Tag tags = ddog_Vec_Tag_new ();
273278 dd_crasht_add_opcache_inis (& tags );
274279
275- const ddog_crasht_Metadata metadata = ddtrace_setup_crashtracking_metadata (& tags );
280+ dd_crasht_init_args args = {
281+ .config = {
282+ .timeout_ms = 5000 ,
283+ .resolve_frames = DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS ,
284+ .optional_unix_socket_filename = socket_path ,
285+ .additional_files = {0 },
286+ },
287+ .metadata = ddtrace_setup_crashtracking_metadata (& tags ),
288+ };
276289
277- dd_crashtracker_check_result (
278- ddog_crasht_init_without_receiver (
279- config ,
280- metadata
281- ),
282- "Cannot initialize CrashTracker"
283- );
284- free (agent_url );
290+ ddtrace_endpoint_as_crashtracker_config (ddtrace_endpoint , dd_crasht_do_init , & args );
285291
286292 ddtrace_register_crashtracking_frames_collection ();
287293
0 commit comments