From 6cd50869c2e33044f424050c0ae08fdeafee56fe Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Mon, 6 Nov 2023 11:07:01 +0200 Subject: [PATCH] Allow emails as usernames --- common/network/GetAPIMessager.cxx | 2 +- common/rfb/VNCSConnectionST.cxx | 4 ++-- common/rfb/VNCServerST.cxx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common/network/GetAPIMessager.cxx b/common/network/GetAPIMessager.cxx index 17e53cd..dfc739e 100644 --- a/common/network/GetAPIMessager.cxx +++ b/common/network/GetAPIMessager.cxx @@ -550,7 +550,7 @@ void GetAPIMessager::netGetBottleneckStats(char *buf, uint32_t len) { const char *id = it->first.c_str(); const char *data = it->second.c_str(); - const char *at = strchr(id, '@'); + const char *at = strrchr(id, '@'); if (!at) continue; diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx index 3c0f3a9..c7eef87 100644 --- a/common/rfb/VNCSConnectionST.cxx +++ b/common/rfb/VNCSConnectionST.cxx @@ -88,7 +88,7 @@ VNCSConnectionST::VNCSConnectionST(VNCServerST* server_, network::Socket *s, wordfree(&wexp); user[0] = '\0'; - const char *at = strchr(peerEndpoint.buf, '@'); + const char *at = strrchr(peerEndpoint.buf, '@'); if (at && at - peerEndpoint.buf > 1 && at - peerEndpoint.buf < 32) { memcpy(user, peerEndpoint.buf, at - peerEndpoint.buf); user[at - peerEndpoint.buf] = '\0'; @@ -1635,7 +1635,7 @@ void VNCSConnectionST::sendStats(const bool toClient) { void VNCSConnectionST::handleFrameStats(rdr::U32 all, rdr::U32 render) { if (server->apimessager) { - const char *at = strchr(peerEndpoint.buf, '@'); + const char *at = strrchr(peerEndpoint.buf, '@'); if (!at) at = peerEndpoint.buf; else diff --git a/common/rfb/VNCServerST.cxx b/common/rfb/VNCServerST.cxx index 9c1d64e..ffd186a 100644 --- a/common/rfb/VNCServerST.cxx +++ b/common/rfb/VNCServerST.cxx @@ -814,7 +814,7 @@ static void upgradeClientToUdp(const network::GetAPIMessager::action_data &act, inet_ntop(AF_INET, &act.udp.ip, buf, 32); const char * const who = (*ci)->getPeerEndpoint(); - const char *start = strchr(who, '@'); + const char *start = strrchr(who, '@'); if (!start) continue; start++;