@@ -135,6 +135,28 @@ static inline void ddtrace_inject_distributed_headers_config(zend_array *array,
135
135
bool send_b3single = zend_hash_str_exists (inject , ZEND_STRL ("b3 single header" ));
136
136
137
137
zend_long sampling_priority = ddtrace_fetch_priority_sampling_from_root ();
138
+ ddtrace_trace_id trace_id = ddtrace_peek_trace_id ();
139
+ uint64_t span_id = ddtrace_peek_span_id ();
140
+
141
+ if (get_DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED () && !ddtrace_has_asm_avent ()) {
142
+ if (sampling_priority != DDTRACE_PRIORITY_SAMPLING_UNKNOWN ) {
143
+ if (send_datadog ) {
144
+ ADD_HEADER ("x-datadog-sampling-priority" , ZEND_LONG_FMT , sampling_priority );
145
+ }
146
+ if (trace_id .low || trace_id .high ) {
147
+ if (send_datadog ) {
148
+ ADD_HEADER ("x-datadog-trace-id" , "%" PRIu64 , trace_id .low );
149
+ }
150
+ if (span_id ) {
151
+ if (send_datadog ) {
152
+ ADD_HEADER ("x-datadog-parent-id" , "%" PRIu64 , span_id );
153
+ }
154
+ }
155
+ }
156
+ }
157
+ goto injection_finished ;
158
+ }
159
+
138
160
if (sampling_priority != DDTRACE_PRIORITY_SAMPLING_UNKNOWN ) {
139
161
if (send_datadog ) {
140
162
ADD_HEADER ("x-datadog-sampling-priority" , ZEND_LONG_FMT , sampling_priority );
@@ -158,8 +180,7 @@ static inline void ddtrace_inject_distributed_headers_config(zend_array *array,
158
180
ADD_HEADER ("x-datadog-origin" , "%s" , ZSTR_VAL (origin ));
159
181
}
160
182
}
161
- ddtrace_trace_id trace_id = ddtrace_peek_trace_id ();
162
- uint64_t span_id = ddtrace_peek_span_id ();
183
+
163
184
if (trace_id .low || trace_id .high ) {
164
185
if (send_datadog ) {
165
186
ADD_HEADER ("x-datadog-trace-id" , "%" PRIu64 , trace_id .low );
@@ -228,7 +249,7 @@ static inline void ddtrace_inject_distributed_headers_config(zend_array *array,
228
249
ADD_HEADER ("b3" , "%s" , b3_sampling_decision );
229
250
}
230
251
}
231
-
252
+ injection_finished :
232
253
if (propagated_tags ) {
233
254
zend_string_release (propagated_tags );
234
255
}
0 commit comments