From a2e393d27f9b8245b39ad2e38c82986b05cebf6a Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Mon, 8 May 2023 18:40:53 +0200 Subject: add ip and username to sentry reports if allowed in settings (#276) * add ip and username to sentry reports if allowed in settings * add --sentry-allow-personal-info command line options to zenserver --- src/zenserver/zenserver.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/zenserver/zenserver.cpp') diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp index 03c44c0ca..75a49367c 100644 --- a/src/zenserver/zenserver.cpp +++ b/src/zenserver/zenserver.cpp @@ -25,6 +25,14 @@ # include #endif +#if ZEN_PLATFORM_LINUX +# include +#endif + +#if ZEN_PLATFORM_MAC +# include +#endif + #if ZEN_USE_MIMALLOC ZEN_THIRD_PARTY_INCLUDES_START # include @@ -986,6 +994,31 @@ ZenEntryPoint::Run() } sentry_options_add_attachment(SentryOptions, SentryAttachmentPath.c_str()); sentry_options_set_release(SentryOptions, ZEN_CFG_VERSION); + + if (m_ServerOptions.SentryAllowPII) + { + sentry_value_t user = sentry_value_new_object(); + +# if ZEN_PLATFORM_WINDOWS + CHAR UserNameBuffer[511 + 1]; + DWORD UserNameLength = sizeof(UserNameBuffer) / sizeof(CHAR); + BOOL OK = GetUserNameA(UserNameBuffer, &UserNameLength); + if (OK) + { + sentry_value_set_by_key(user, "username", sentry_value_new_string(UserNameBuffer)); + } +# endif // ZEN_PLATFORM_WINDOWS +# if (ZEN_PLATFORM_LINUX || ZEN_PLATFORM_MAC) + uid_t uid = geteuid(); + struct passwd* pw = getpwuid(uid); + if (pw) + { + sentry_value_set_by_key(user, "username", sentry_value_new_string(pw->pw_name)); + } +# endif + sentry_value_set_by_key(user, "ip_address", sentry_value_new_string("{{auto}}")); + sentry_set_user(user); + } // sentry_options_set_debug(SentryOptions, 1); SentryErrorCode = sentry_init(SentryOptions); -- cgit v1.2.3