ovyalov updated this revision to Diff 38588.
ovyalov added a comment.

Addressed review comments - please take another look.


http://reviews.llvm.org/D14126

Files:
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
  tools/lldb-server/Acceptor.cpp
  tools/lldb-server/Acceptor.h
  tools/lldb-server/lldb-platform.cpp

Index: tools/lldb-server/lldb-platform.cpp
===================================================================
--- tools/lldb-server/lldb-platform.cpp
+++ tools/lldb-server/lldb-platform.cpp
@@ -315,7 +315,8 @@
     }
 
     do {
-        GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol());
+        GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol(),
+                                                      acceptor_up->GetSocketScheme());
         
         if (port_offset > 0)
             platform.SetPortOffset(port_offset);
Index: tools/lldb-server/Acceptor.h
===================================================================
--- tools/lldb-server/Acceptor.h
+++ tools/lldb-server/Acceptor.h
@@ -42,6 +42,9 @@
     Socket::SocketProtocol
     GetSocketProtocol() const;
 
+    const char*
+    GetSocketScheme() const;
+
     // Returns either TCP port number as string or domain socket path.
     // Empty string is returned in case of error.
     std::string
Index: tools/lldb-server/Acceptor.cpp
===================================================================
--- tools/lldb-server/Acceptor.cpp
+++ tools/lldb-server/Acceptor.cpp
@@ -37,7 +37,8 @@
     {"unix-abstract", Socket::ProtocolUnixAbstract},
 };
 
-bool FindProtocolByScheme(const char* scheme, Socket::SocketProtocol& protocol)
+bool
+FindProtocolByScheme(const char* scheme, Socket::SocketProtocol& protocol)
 {
     for (auto s: socket_schemes)
     {
@@ -50,6 +51,17 @@
     return false;
 }
 
+const char*
+FindSchemeByProtocol(const Socket::SocketProtocol protocol)
+{
+    for (auto s: socket_schemes)
+    {
+        if (s.m_protocol == protocol)
+            return s.m_scheme;
+    }
+    return nullptr;
+}
+
 }
 
 Error
@@ -78,6 +90,12 @@
     return m_listener_socket_up->GetSocketProtocol();
 }
 
+const char*
+Acceptor::GetSocketScheme() const
+{
+    return FindSchemeByProtocol(GetSocketProtocol());
+}
+
 std::string
 Acceptor::GetLocalSocketId() const
 {
Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
@@ -29,7 +29,8 @@
 public:
     typedef std::map<uint16_t, lldb::pid_t> PortMap;
 
-    GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol);
+    GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol,
+                                         const char* socket_scheme);
 
     ~GDBRemoteCommunicationServerPlatform() override;
 
@@ -67,6 +68,7 @@
 
 protected:
     const Socket::SocketProtocol m_socket_protocol;
+    const std::string m_socket_scheme;
     Mutex m_spawned_pids_mutex;
     std::set<lldb::pid_t> m_spawned_pids;
     lldb::PlatformSP m_platform_sp;
Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
@@ -46,9 +46,11 @@
 //----------------------------------------------------------------------
 // GDBRemoteCommunicationServerPlatform constructor
 //----------------------------------------------------------------------
-GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol) :
+GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol,
+                                                                           const char* socket_scheme) :
     GDBRemoteCommunicationServerCommon ("gdb-remote.server", "gdb-remote.server.rx_packet"),
     m_socket_protocol(socket_protocol),
+    m_socket_scheme(socket_scheme),
     m_spawned_pids_mutex (Mutex::eMutexTypeRecursive),
     m_platform_sp (Platform::GetHostPlatform ()),
     m_port_map (),
@@ -150,6 +152,7 @@
     std::ostringstream url;
 
     uint16_t* port_ptr = &port;
+    url << m_socket_scheme << "://";
     if (m_socket_protocol == Socket::ProtocolTcp)
         url << platform_ip << ":" << port;
     else
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to