Skip to content

Commit b6a70f7

Browse files
feat(data-pipeline-ffi): Add ffi bindings for session token
1 parent 1b64ca9 commit b6a70f7

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

data-pipeline-ffi/src/trace_exporter.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ pub struct TraceExporterConfig {
6666
output_format: TraceExporterOutputFormat,
6767
compute_stats: bool,
6868
telemetry_cfg: Option<TelemetryConfig>,
69+
test_session_token: Option<String>,
6970
}
7071

7172
#[no_mangle]
@@ -274,6 +275,23 @@ pub unsafe extern "C" fn ddog_trace_exporter_config_set_compute_stats(
274275
}
275276
}
276277

278+
/// Sets test session token to be included in the headers request.
279+
#[no_mangle]
280+
pub unsafe extern "C" fn ddog_trace_exporter_config_set_test_session_token(
281+
config: Option<&mut TraceExporterConfig>,
282+
token: CharSlice,
283+
) -> Option<Box<ExporterError>> {
284+
if let Option::Some(handle) = config {
285+
handle.test_session_token = match sanitize_string(lang) {
286+
Ok(s) => Some(s),
287+
Err(e) => return Some(e),
288+
};
289+
None
290+
} else {
291+
gen_error!(ErrorCode::InvalidArgument)
292+
}
293+
}
294+
277295
/// Create a new TraceExporter instance.
278296
///
279297
/// # Arguments
@@ -313,6 +331,10 @@ pub unsafe extern "C" fn ddog_trace_exporter_new(
313331
builder.enable_telemetry(Some(cfg.clone()));
314332
}
315333

334+
if let Some(token) = &config.test_session_token {
335+
builder.set_test_session_token(token);
336+
}
337+
316338
match builder.build() {
317339
Ok(exporter) => {
318340
out_handle.as_ptr().write(Box::new(exporter));
@@ -406,7 +428,8 @@ mod tests {
406428
assert_eq!(cfg.input_format, TraceExporterInputFormat::V04);
407429
assert_eq!(cfg.output_format, TraceExporterOutputFormat::V04);
408430
assert!(!cfg.compute_stats);
409-
assert!(cfg.telemetry_cfg.is_none());
431+
assert!(cfg.telemetry_cfg.is_none())
432+
assert!(cfg.test_session_token.is_none());
410433

411434
ddog_trace_exporter_config_free(cfg);
412435
}

0 commit comments

Comments
 (0)