@@ -89,16 +89,6 @@ class HttpTraceContext : public context::propagation::TextMapPropagator
89
89
static constexpr uint8_t kInvalidVersion = 0xFF ;
90
90
static constexpr uint8_t kDefaultAssumedVersion = 0x00 ;
91
91
92
- static bool IsValidVersion (uint8_t version_binary)
93
- {
94
- return version_binary != kInvalidVersion ;
95
- }
96
-
97
- static bool IsHigherVersion (uint8_t version_binary)
98
- {
99
- return version_binary > kDefaultAssumedVersion ;
100
- }
101
-
102
92
static void InjectImpl (context::propagation::TextMapCarrier &carrier,
103
93
const SpanContext &span_context)
104
94
{
@@ -152,19 +142,28 @@ class HttpTraceContext : public context::propagation::TextMapPropagator
152
142
// hex is valid, convert it to binary
153
143
uint8_t version_binary;
154
144
detail::HexToBinary (version_hex, &version_binary, sizeof (version_binary));
155
- if (! IsValidVersion ( version_binary) )
145
+ if (version_binary == kInvalidVersion )
156
146
{
147
+ // invalid version encountered
157
148
return SpanContext::GetInvalid ();
158
149
}
159
150
160
- if (IsHigherVersion (version_binary) && trace_parent.size () < kTraceParentSize )
151
+ // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent
152
+ if (version_binary > kDefaultAssumedVersion )
161
153
{
162
- return SpanContext::GetInvalid ();
154
+ // higher than default version detected
155
+ if (trace_parent.size () < kTraceParentSize )
156
+ {
157
+ return SpanContext::GetInvalid ();
158
+ }
163
159
}
164
-
165
- if (!IsHigherVersion (version_binary) && trace_parent.size () != kTraceParentSize )
160
+ else
166
161
{
167
- return SpanContext::GetInvalid ();
162
+ // version is either lower or same as the default version
163
+ if (trace_parent.size () != kTraceParentSize )
164
+ {
165
+ return SpanContext::GetInvalid ();
166
+ }
168
167
}
169
168
170
169
TraceId trace_id = TraceIdFromHex (trace_id_hex);
0 commit comments