@@ -8,6 +8,7 @@ @implementation SentryTracePropagation
88
99+ (void )addBaggageHeader : (SentryBaggage *)baggage 
1010                traceHeader : (SentryTraceHeader *)traceHeader 
11+        propagateTraceparent : (BOOL )propagateTraceparent 
1112    tracePropagationTargets : (NSArray  *)tracePropagationTargets 
1213                  toRequest : (NSURLSessionTask  *)sessionTask 
1314{
@@ -33,14 +34,10 @@ + (void)addBaggageHeader:(SentryBaggage *)baggage
3334    //  header.
3435    if  ([sessionTask.currentRequest isKindOfClass: [NSMutableURLRequest  class ]]) {
3536        NSMutableURLRequest  *currentRequest = (NSMutableURLRequest  *)sessionTask.currentRequest ;
36- 
37-         if  ([currentRequest valueForHTTPHeaderField: SENTRY_TRACE_HEADER] == nil ) {
38-             [currentRequest setValue: traceHeader.value forHTTPHeaderField: SENTRY_TRACE_HEADER];
39-         }
40- 
41-         if  (baggageHeader.length  > 0 ) {
42-             [currentRequest setValue: baggageHeader forHTTPHeaderField: SENTRY_BAGGAGE_HEADER];
43-         }
37+         [SentryTracePropagation addHeaderFieldsToRequest: currentRequest
38+                                              traceHeader: traceHeader
39+                                            baggageHeader: baggageHeader
40+                                     propagateTraceparent: propagateTraceparent];
4441    } else  {
4542        //  Even though NSURLSessionTask doesn't have 'setCurrentRequest', some subclasses
4643        //  do. For those subclasses we replace the currentRequest with a mutable one with
@@ -49,14 +46,10 @@ + (void)addBaggageHeader:(SentryBaggage *)baggage
4946        SEL  setCurrentRequestSelector = NSSelectorFromString (@" setCurrentRequest:" 
5047        if  ([sessionTask respondsToSelector: setCurrentRequestSelector]) {
5148            NSMutableURLRequest  *newRequest = [sessionTask.currentRequest mutableCopy ];
52- 
53-             if  ([newRequest valueForHTTPHeaderField: SENTRY_TRACE_HEADER] == nil ) {
54-                 [newRequest setValue: traceHeader.value forHTTPHeaderField: SENTRY_TRACE_HEADER];
55-             }
56- 
57-             if  (baggageHeader.length  > 0 ) {
58-                 [newRequest setValue: baggageHeader forHTTPHeaderField: SENTRY_BAGGAGE_HEADER];
59-             }
49+             [SentryTracePropagation addHeaderFieldsToRequest: newRequest
50+                                                  traceHeader: traceHeader
51+                                                baggageHeader: baggageHeader
52+                                         propagateTraceparent: propagateTraceparent];
6053
6154            void  (*func)(id , SEL , id  param)
6255                = (void  *)[sessionTask methodForSelector: setCurrentRequestSelector];
@@ -73,6 +66,24 @@ + (BOOL)sessionTaskRequiresPropagation:(NSURLSessionTask *)sessionTask
7366                                  withTargets: tracePropagationTargets];
7467}
7568
69+ + (void )addHeaderFieldsToRequest : (NSMutableURLRequest  *)request 
70+                      traceHeader : (SentryTraceHeader *)traceHeader 
71+                    baggageHeader : (NSString  *)baggageHeader 
72+             propagateTraceparent : (BOOL )propagateTraceparent 
73+ {
74+     if  ([request valueForHTTPHeaderField: SENTRY_TRACE_HEADER] == nil ) {
75+         [request setValue: traceHeader.value forHTTPHeaderField: SENTRY_TRACE_HEADER];
76+     }
77+ 
78+     if  (propagateTraceparent && [request valueForHTTPHeaderField: SENTRY_TRACEPARENT] == nil ) {
79+         [request setValue: traceHeader.traceParentValue forHTTPHeaderField: SENTRY_TRACEPARENT];
80+     }
81+ 
82+     if  (baggageHeader.length  > 0 ) {
83+         [request setValue: baggageHeader forHTTPHeaderField: SENTRY_BAGGAGE_HEADER];
84+     }
85+ }
86+ 
7687+ (BOOL )isTargetMatch : (NSURL  *)URL  withTargets : (NSArray  *)targets 
7788{
7889    for  (id  targetCheck in targets) {
0 commit comments