Author: gclayton Date: Fri Jul 24 11:55:00 2015 New Revision: 243118 URL: http://llvm.org/viewvc/llvm-project?rev=243118&view=rev Log: Bind to the loopback when we are expecting a connection from 127.0.0.1 so we don't set off firewall protections.
<rdar://problem/17897318> Modified: lldb/trunk/source/Host/common/Socket.cpp Modified: lldb/trunk/source/Host/common/Socket.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Socket.cpp?rev=243118&r1=243117&r2=243118&view=diff ============================================================================== --- lldb/trunk/source/Host/common/Socket.cpp (original) +++ lldb/trunk/source/Host/common/Socket.cpp Fri Jul 24 11:55:00 2015 @@ -201,12 +201,12 @@ Error Socket::TcpConnect(llvm::StringRef return error; } -Error Socket::TcpListen( - llvm::StringRef host_and_port, - bool child_processes_inherit, - Socket *&socket, - Predicate<uint16_t>* predicate, - int backlog) +Error +Socket::TcpListen (llvm::StringRef host_and_port, + bool child_processes_inherit, + Socket *&socket, + Predicate<uint16_t>* predicate, + int backlog) { std::unique_ptr<Socket> listen_socket; NativeSocket listen_sock = kInvalidSocketValue; @@ -237,10 +237,19 @@ Error Socket::TcpListen( if (!DecodeHostAndPort (host_and_port, host_str, port_str, port, &error)) return error; - SocketAddress anyaddr; - if (anyaddr.SetToAnyAddress (family, port)) + SocketAddress bind_addr; + bool bind_addr_success = false; + + // Only bind to the loopback address if we are expecting a connection from + // localhost to avoid any firewall issues. + if (host_str == "127.0.0.1") + bind_addr_success = bind_addr.SetToLocalhost (family, port); + else + bind_addr_success = bind_addr.SetToAnyAddress (family, port); + + if (bind_addr_success) { - int err = ::bind (listen_sock, anyaddr, anyaddr.GetLength()); + int err = ::bind (listen_sock, bind_addr, bind_addr.GetLength()); if (err == -1) { SetLastError (error); _______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits