summary refs log tree commit diff
path: root/src/CallManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CallManager.cpp')
-rw-r--r--src/CallManager.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/CallManager.cpp b/src/CallManager.cpp
index 67aabced..b2236290 100644
--- a/src/CallManager.cpp
+++ b/src/CallManager.cpp
@@ -274,7 +274,8 @@ CallManager::retrieveTurnServer()
 void
 CallManager::setTurnServers()
 {
-  // gstreamer expects (percent-encoded): turn(s)://username:password@host:port?transport=udp(tcp)
+  // gstreamer expects: turn(s)://username:password@host:port?transport=udp(tcp)
+  // where username and password are percent-encoded
   std::vector<std::string> uris;
   for (const auto &uri : turnServer_.uris) {
     if (auto c = uri.find(':'); c == std::string::npos) {
@@ -287,9 +288,11 @@ CallManager::setTurnServers()
         nhlog::ui()->error("Invalid TURN server uri: {}", uri);
         continue;
       }
-      std::string res = scheme + "://" + turnServer_.username + ":" + turnServer_.password
-        + "@" + std::string(uri, ++c);
-      QString encodedUri = QUrl::toPercentEncoding(QString::fromStdString(res));
+
+      QString encodedUri = QString::fromStdString(scheme) + "://" + 
+                           QUrl::toPercentEncoding(QString::fromStdString(turnServer_.username)) + ":" +
+                           QUrl::toPercentEncoding(QString::fromStdString(turnServer_.password)) + "@" +
+                           QString::fromStdString(std::string(uri, ++c));
       uris.push_back(encodedUri.toStdString());
     }
   }