Skip to content

Commit 3d9252b

Browse files
khanayan123claude
andcommitted
fix: revert unrelated formatting, deduplicate session headers, fix Windows setenv
- Revert whitespace-only changes (const char * style) in environment.cpp and environment.h to keep the diff focused on the feature. - Extract set_session_headers() helper in telemetry_impl.cpp to avoid duplicating session header logic in app_started() and send_payload(). - Fix Windows _putenv_s path to check getenv() first, matching the POSIX setenv(..., 0) "don't overwrite" semantics. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d323be4 commit 3d9252b

3 files changed

Lines changed: 19 additions & 15 deletions

File tree

include/datadog/environment.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ enum Variable { DD_LIST_ENVIRONMENT_VARIABLES(WITH_COMMA) };
9696
#define QUOTED_WITH_COMMA(ARG, TYPE, DEFAULT_VALUE) \
9797
WITH_COMMA(QUOTED(ARG), TYPE, DEFAULT_VALUE)
9898

99-
inline const char* const variable_names[] = {
99+
inline const char *const variable_names[] = {
100100
DD_LIST_ENVIRONMENT_VARIABLES(QUOTED_WITH_COMMA)};
101101

102102
#undef QUOTED

src/datadog/environment.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,20 @@ namespace environment {
1111
StringView name(Variable variable) { return variable_names[variable]; }
1212

1313
Optional<StringView> lookup(Variable variable) {
14-
const char* name = variable_names[variable];
15-
const char* value = std::getenv(name);
14+
const char *name = variable_names[variable];
15+
const char *value = std::getenv(name);
1616
if (!value) {
1717
return nullopt;
1818
}
1919
return StringView{value};
2020
}
2121

2222
void set(Variable variable, StringView value) {
23-
const char* name = variable_names[variable];
23+
const char *name = variable_names[variable];
2424
#ifdef _WIN32
25-
_putenv_s(name, value.data());
25+
if (!std::getenv(name)) {
26+
_putenv_s(name, value.data());
27+
}
2628
#else
2729
setenv(name, value.data(), /*overwrite=*/0);
2830
#endif
@@ -31,8 +33,8 @@ void set(Variable variable, StringView value) {
3133
std::string to_json() {
3234
auto result = nlohmann::json::object({});
3335

34-
for (const char* name : variable_names) {
35-
if (const char* value = std::getenv(name)) {
36+
for (const char *name : variable_names) {
37+
if (const char *value = std::getenv(name)) {
3638
result[name] = value;
3739
}
3840
}

src/datadog/telemetry/telemetry_impl.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ HTTPClient::URL make_telemetry_endpoint(HTTPClient::URL url) {
6060
return url;
6161
}
6262

63+
void set_session_headers(DictWriter& headers,
64+
const tracing::TracerSignature& sig) {
65+
headers.set("DD-Session-ID", sig.runtime_id.string());
66+
if (sig.root_session_id != sig.runtime_id.string()) {
67+
headers.set("DD-Root-Session-ID", sig.root_session_id);
68+
}
69+
}
70+
6371
void cancel_tasks(std::vector<tracing::EventScheduler::Cancel>& tasks) {
6472
for (auto& cancel_task : tasks) {
6573
cancel_task();
@@ -310,10 +318,7 @@ void Telemetry::app_started() {
310318
headers.set("DD-Client-Library-Language", "cpp");
311319
headers.set("DD-Client-Library-Version", tracer_version);
312320
headers.set("DD-Telemetry-Request-Type", "app-started");
313-
headers.set("DD-Session-ID", sig.runtime_id.string());
314-
if (sig.root_session_id != sig.runtime_id.string()) {
315-
headers.set("DD-Root-Session-ID", sig.root_session_id);
316-
}
321+
set_session_headers(headers, sig);
317322
if (debug_enabled) {
318323
headers.set("DD-Telemetry-Debug-Enabled", "true");
319324
}
@@ -369,10 +374,7 @@ void Telemetry::send_payload(StringView request_type, std::string payload) {
369374
headers.set("DD-Client-Library-Language", "cpp");
370375
headers.set("DD-Client-Library-Version", tracer_version);
371376
headers.set("DD-Telemetry-Request-Type", request_type);
372-
headers.set("DD-Session-ID", sig.runtime_id.string());
373-
if (sig.root_session_id != sig.runtime_id.string()) {
374-
headers.set("DD-Root-Session-ID", sig.root_session_id);
375-
}
377+
set_session_headers(headers, sig);
376378
if (debug_enabled) {
377379
headers.set("DD-Telemetry-Debug-Enabled", "true");
378380
}

0 commit comments

Comments
 (0)