diff --git a/Net/include/Poco/Net/NetException.h b/Net/include/Poco/Net/NetException.h index a8e22bf65..40e5a2802 100644 --- a/Net/include/Poco/Net/NetException.h +++ b/Net/include/Poco/Net/NetException.h @@ -53,6 +53,7 @@ POCO_DECLARE_EXCEPTION(Net_API, NTPException, NetException) POCO_DECLARE_EXCEPTION(Net_API, HTMLFormException, NetException) POCO_DECLARE_EXCEPTION(Net_API, WebSocketException, NetException) POCO_DECLARE_EXCEPTION(Net_API, UnsupportedFamilyException, NetException) +POCO_DECLARE_EXCEPTION(Net_API, AddressFamilyMismatchException, NetException) } } // namespace Poco::Net diff --git a/Net/include/Poco/Net/SocketAddress.h b/Net/include/Poco/Net/SocketAddress.h index 19a87c337..72f7cf837 100644 --- a/Net/include/Poco/Net/SocketAddress.h +++ b/Net/include/Poco/Net/SocketAddress.h @@ -58,6 +58,10 @@ public: SocketAddress(); /// Creates a wildcard (all zero) IPv4 SocketAddress. + explicit SocketAddress(Family family); + /// Creates a SocketAddress with unspecified (wildcard) IP address + /// of the given family. + SocketAddress(const IPAddress& hostAddress, Poco::UInt16 portNumber); /// Creates a SocketAddress from an IP address and given port number. @@ -65,12 +69,27 @@ public: /// Creates a SocketAddress with unspecified (wildcard) IP address /// and given port number. + SocketAddress(Family family, Poco::UInt16 port); + /// Creates a SocketAddress with unspecified (wildcard) IP address + /// of the given family, and given port number. + SocketAddress(const std::string& hostAddress, Poco::UInt16 portNumber); /// Creates a SocketAddress from an IP address and given port number. /// /// The IP address must either be a domain name, or it must /// be in dotted decimal (IPv4) or hex string (IPv6) format. + SocketAddress(Family family, const std::string& hostAddress, Poco::UInt16 portNumber); + /// Creates a SocketAddress from an IP address and given port number. + /// + /// The IP address must either be a domain name, or it must + /// be in dotted decimal (IPv4) or hex string (IPv6) format. + /// + /// If a domain name is given in hostAddress, it is resolved and the address + /// matching the given family is used. If no address matching the given family + /// is found, or the IP address given in hostAddress does not match the given + /// family, an AddressFamilyMismatchException is thrown. + SocketAddress(const std::string& hostAddress, const std::string& portNumber); /// Creates a SocketAddress from an IP address and the /// service name or port number. @@ -81,6 +100,21 @@ public: /// The given port must either be a decimal port number, or /// a service name. + SocketAddress(Family family, const std::string& hostAddress, const std::string& portNumber); + /// Creates a SocketAddress from an IP address and the + /// service name or port number. + /// + /// The IP address must either be a domain name, or it must + /// be in dotted decimal (IPv4) or hex string (IPv6) format. + /// + /// The given port must either be a decimal port number, or + /// a service name. + /// + /// If a domain name is given in hostAddress, it is resolved and the address + /// matching the given family is used. If no address matching the given family + /// is found, or the IP address given in hostAddress does not match the given + /// family, an AddressFamilyMismatchException is thrown. + explicit SocketAddress(const std::string& hostAndPort); /// Creates a SocketAddress from an IP address or host name and the /// port number/service name. Host name/address and port number must @@ -156,6 +190,7 @@ public: protected: void init(const IPAddress& hostAddress, Poco::UInt16 portNumber); void init(const std::string& hostAddress, Poco::UInt16 portNumber); + void init(Family family, const std::string& hostAddress, Poco::UInt16 portNumber); void init(Family family, const std::string& address); void init(const std::string& hostAndPort); Poco::UInt16 resolveService(const std::string& service); diff --git a/Net/src/NetException.cpp b/Net/src/NetException.cpp index 1c76342e1..a57423de6 100644 --- a/Net/src/NetException.cpp +++ b/Net/src/NetException.cpp @@ -49,7 +49,8 @@ POCO_IMPLEMENT_EXCEPTION(ICMPException, NetException, "ICMP Exception") POCO_IMPLEMENT_EXCEPTION(NTPException, NetException, "NTP Exception") POCO_IMPLEMENT_EXCEPTION(HTMLFormException, NetException, "HTML Form Exception") POCO_IMPLEMENT_EXCEPTION(WebSocketException, NetException, "WebSocket Exception") -POCO_IMPLEMENT_EXCEPTION(UnsupportedFamilyException, NetException, "Unknown or unsupported socket family.") +POCO_IMPLEMENT_EXCEPTION(UnsupportedFamilyException, NetException, "Unknown or unsupported socket family") +POCO_IMPLEMENT_EXCEPTION(AddressFamilyMismatchException, NetException, "Address family mismatch") } } // namespace Poco::Net diff --git a/Net/src/ServerSocket.cpp b/Net/src/ServerSocket.cpp index ca86fce36..54ac6ae30 100644 --- a/Net/src/ServerSocket.cpp +++ b/Net/src/ServerSocket.cpp @@ -101,6 +101,7 @@ void ServerSocket::bind(Poco::UInt16 port, bool reuseAddress, bool reusePort) impl()->bind(address, reuseAddress, reusePort); } + void ServerSocket::bind6(const SocketAddress& address, bool reuseAddress, bool ipV6Only) { impl()->bind6(address, reuseAddress, ipV6Only); @@ -112,6 +113,7 @@ void ServerSocket::bind6(const SocketAddress& address, bool reuseAddress, bool r impl()->bind6(address, reuseAddress, reusePort, ipV6Only); } + void ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) { #if defined(POCO_HAVE_IPv6) @@ -135,6 +137,7 @@ void ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool reusePort, b #endif // POCO_HAVE_IPv6 } + void ServerSocket::listen(int backlog) { impl()->listen(backlog); diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp index 6c3aec0a8..5354ace75 100644 --- a/Net/src/SocketAddress.cpp +++ b/Net/src/SocketAddress.cpp @@ -77,6 +77,12 @@ SocketAddress::SocketAddress() } +SocketAddress::SocketAddress(Family fam) +{ + init(IPAddress(fam), 0); +} + + SocketAddress::SocketAddress(const IPAddress& hostAddress, Poco::UInt16 portNumber) { init(hostAddress, portNumber); @@ -89,21 +95,39 @@ SocketAddress::SocketAddress(Poco::UInt16 portNumber) } +SocketAddress::SocketAddress(Family fam, Poco::UInt16 portNumber) +{ + init(IPAddress(fam), portNumber); +} + + SocketAddress::SocketAddress(const std::string& hostAddress, Poco::UInt16 portNumber) { init(hostAddress, portNumber); } +SocketAddress::SocketAddress(Family fam, const std::string& hostAddress, Poco::UInt16 portNumber) +{ + init(fam, hostAddress, portNumber); +} + + SocketAddress::SocketAddress(const std::string& hostAddress, const std::string& portNumber) { init(hostAddress, resolveService(portNumber)); } -SocketAddress::SocketAddress(Family family, const std::string& addr) +SocketAddress::SocketAddress(Family fam, const std::string& hostAddress, const std::string& portNumber) { - init(family, addr); + init(fam, hostAddress, resolveService(portNumber)); +} + + +SocketAddress::SocketAddress(Family fam, const std::string& addr) +{ + init(fam, addr); } @@ -261,6 +285,35 @@ void SocketAddress::init(const std::string& hostAddress, Poco::UInt16 portNumber } +void SocketAddress::init(Family fam, const std::string& hostAddress, Poco::UInt16 portNumber) +{ + IPAddress ip; + if (IPAddress::tryParse(hostAddress, ip)) + { + if (ip.family() != fam) throw AddressFamilyMismatchException(hostAddress); + init(ip, portNumber); + } + else + { + HostEntry he = DNS::hostByName(hostAddress); + HostEntry::AddressList addresses = he.addresses(); + if (addresses.size() > 0) + { + for (HostEntry::AddressList::const_iterator it = addresses.begin(); it != addresses.end(); ++it) + { + if (it->family() == fam) + { + init(*it, portNumber); + return; + } + } + throw AddressFamilyMismatchException(hostAddress); + } + else throw HostNotFoundException("No address found for host", hostAddress); + } +} + + void SocketAddress::init(Family fam, const std::string& address) { #if defined(POCO_OS_FAMILY_UNIX) @@ -271,8 +324,29 @@ void SocketAddress::init(Family fam, const std::string& address) else #endif { - init(address); - if (fam != family()) throw Poco::InvalidArgumentException("address does not fit family"); + std::string host; + std::string port; + std::string::const_iterator it = address.begin(); + std::string::const_iterator end = address.end(); + + if (*it == '[') + { + ++it; + while (it != end && *it != ']') host += *it++; + if (it == end) throw InvalidArgumentException("Malformed IPv6 address"); + ++it; + } + else + { + while (it != end && *it != ':') host += *it++; + } + if (it != end && *it == ':') + { + ++it; + while (it != end) port += *it++; + } + else throw InvalidArgumentException("Missing port number"); + init(fam, host, resolveService(port)); } } diff --git a/Net/src/WebSocketImpl.cpp b/Net/src/WebSocketImpl.cpp index d1c72d843..0e5ac6075 100644 --- a/Net/src/WebSocketImpl.cpp +++ b/Net/src/WebSocketImpl.cpp @@ -274,6 +274,7 @@ void WebSocketImpl::bind6(const SocketAddress& address, bool reuseAddress, bool throw Poco::InvalidAccessException("Cannot bind6() a WebSocketImpl"); } + void WebSocketImpl::listen(int backlog) { throw Poco::InvalidAccessException("Cannot listen() on a WebSocketImpl"); diff --git a/Net/testsuite/src/DNSTest.cpp b/Net/testsuite/src/DNSTest.cpp index 559cad4e0..6316fb79e 100644 --- a/Net/testsuite/src/DNSTest.cpp +++ b/Net/testsuite/src/DNSTest.cpp @@ -39,20 +39,20 @@ DNSTest::~DNSTest() void DNSTest::testHostByName() { - HostEntry he1 = DNS::hostByName("aliastest.appinf.com"); + HostEntry he1 = DNS::hostByName("aliastest.pocoproject.org"); // different systems report different canonical names, unfortunately. - assert (he1.name() == "dnstest.appinf.com" || he1.name() == "aliastest.appinf.com"); + assert (he1.name() == "dnstest.pocoproject.org" || he1.name() == "aliastest.pocoproject.org"); #if !defined(POCO_HAVE_ADDRINFO) // getaddrinfo() does not report any aliases assert (!he1.aliases().empty()); - assert (he1.aliases()[0] == "aliastest.appinf.com"); + assert (he1.aliases()[0] == "aliastest.pocoproject.org"); #endif assert (he1.addresses().size() >= 1); assert (he1.addresses()[0].toString() == "1.2.3.4"); try { - HostEntry he1 = DNS::hostByName("nohost.appinf.com"); + HostEntry he1 = DNS::hostByName("nohost.pocoproject.org"); fail("host not found - must throw"); } catch (HostNotFoundException&) diff --git a/Net/testsuite/src/DatagramSocketTest.cpp b/Net/testsuite/src/DatagramSocketTest.cpp index b5d7a54d5..1b3efd9f1 100644 --- a/Net/testsuite/src/DatagramSocketTest.cpp +++ b/Net/testsuite/src/DatagramSocketTest.cpp @@ -51,7 +51,7 @@ void DatagramSocketTest::testEcho() UDPEchoServer echoServer; DatagramSocket ss; char buffer[256]; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); int n = ss.sendBytes("hello", 5); assert (n == 5); n = ss.receiveBytes(buffer, sizeof(buffer)); @@ -63,9 +63,9 @@ void DatagramSocketTest::testEcho() void DatagramSocketTest::testSendToReceiveFrom() { - UDPEchoServer echoServer(SocketAddress("localhost", 0)); + UDPEchoServer echoServer(SocketAddress("127.0.0.1", 0)); DatagramSocket ss(SocketAddress::IPv4); - int n = ss.sendTo("hello", 5, SocketAddress("localhost", echoServer.port())); + int n = ss.sendTo("hello", 5, SocketAddress("127.0.0.1", echoServer.port())); assert (n == 5); char buffer[256]; SocketAddress sa; @@ -83,7 +83,7 @@ void DatagramSocketTest::testUnbound() UDPEchoServer echoServer; DatagramSocket ss; char buffer[256]; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); int n = ss.sendBytes("hello", 5); assert (n == 5); n = ss.receiveBytes(buffer, sizeof(buffer)); diff --git a/Net/testsuite/src/DialogSocketTest.cpp b/Net/testsuite/src/DialogSocketTest.cpp index f9c895d12..fcb4b00d2 100644 --- a/Net/testsuite/src/DialogSocketTest.cpp +++ b/Net/testsuite/src/DialogSocketTest.cpp @@ -37,7 +37,7 @@ void DialogSocketTest::testDialogSocket() { EchoServer echoServer; DialogSocket ds; - ds.connect(SocketAddress("localhost", echoServer.port())); + ds.connect(SocketAddress("127.0.0.1", echoServer.port())); ds.sendMessage("Hello, world!"); std::string str; diff --git a/Net/testsuite/src/FTPClientSessionTest.cpp b/Net/testsuite/src/FTPClientSessionTest.cpp index 062104265..e7e4a340a 100644 --- a/Net/testsuite/src/FTPClientSessionTest.cpp +++ b/Net/testsuite/src/FTPClientSessionTest.cpp @@ -94,7 +94,7 @@ void FTPClientSessionTest::testLogin1() { DialogServer server; server.addResponse("220 localhost FTP ready"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); assert (session.isOpen()); assert (!session.isLoggedIn()); login(server, session); @@ -125,7 +125,7 @@ void FTPClientSessionTest::testLogin2() server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); Poco::UInt16 serverPort = server.port(); - FTPClientSession session("localhost", serverPort, "user", "password"); + FTPClientSession session("127.0.0.1", serverPort, "user", "password"); assert (session.isOpen()); assert (session.isLoggedIn()); server.addResponse("221 Good Bye"); @@ -139,7 +139,7 @@ void FTPClientSessionTest::testLogin2() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - session.open("localhost", serverPort, "user", "password"); + session.open("127.0.0.1", serverPort, "user", "password"); assert (session.isOpen()); assert (session.isLoggedIn()); server.addResponse("221 Good Bye"); @@ -159,7 +159,7 @@ void FTPClientSessionTest::testLogin3() FTPClientSession session; assert (!session.isOpen()); assert (!session.isLoggedIn()); - session.open("localhost", server.port(), "user", "password"); + session.open("127.0.0.1", server.port(), "user", "password"); server.addResponse("221 Good Bye"); session.close(); assert (!session.isOpen()); @@ -172,7 +172,7 @@ void FTPClientSessionTest::testLoginFailed1() { DialogServer server; server.addResponse("421 localhost FTP not ready"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); try { session.login("user", "password"); @@ -192,7 +192,7 @@ void FTPClientSessionTest::testLoginFailed2() server.addResponse("220 localhost FTP ready"); server.addResponse("331 Password required"); server.addResponse("530 Login incorrect"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); try { session.login("user", "password"); @@ -213,7 +213,7 @@ void FTPClientSessionTest::testCommands() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.login("user", "password"); std::string cmd = server.popCommand(); assert (cmd == "USER user"); @@ -342,7 +342,7 @@ void FTPClientSessionTest::testDownloadPORT() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.setPassive(false); session.login("user", "password"); server.clearCommands(); @@ -373,7 +373,7 @@ void FTPClientSessionTest::testDownloadPORT() cmd = server.popCommandWait(); assert (cmd == "RETR test.txt"); - SocketAddress sa("localhost", (Poco::UInt16) port); + SocketAddress sa("127.0.0.1", (Poco::UInt16) port); DialogSocket dataSock; dataSock.connect(sa); @@ -397,7 +397,7 @@ void FTPClientSessionTest::testDownloadEPRT() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.setPassive(false); session.login("user", "password"); server.clearCommands(); @@ -421,7 +421,7 @@ void FTPClientSessionTest::testDownloadEPRT() cmd = server.popCommandWait(); assert (cmd == "RETR test.txt"); - SocketAddress sa("localhost", (Poco::UInt16) port); + SocketAddress sa("127.0.0.1", (Poco::UInt16) port); DialogSocket dataSock; dataSock.connect(sa); @@ -445,7 +445,7 @@ void FTPClientSessionTest::testDownloadPASV() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.login("user", "password"); server.clearCommands(); @@ -478,7 +478,7 @@ void FTPClientSessionTest::testDownloadEPSV() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.login("user", "password"); server.clearCommands(); @@ -513,7 +513,7 @@ void FTPClientSessionTest::testUpload() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.login("user", "password"); server.clearCommands(); @@ -546,7 +546,7 @@ void FTPClientSessionTest::testList() server.addResponse("331 Password required"); server.addResponse("230 Welcome"); server.addResponse("200 Type set to I"); - FTPClientSession session("localhost", server.port()); + FTPClientSession session("127.0.0.1", server.port()); session.login("user", "password"); server.clearCommands(); diff --git a/Net/testsuite/src/FTPStreamFactoryTest.cpp b/Net/testsuite/src/FTPStreamFactoryTest.cpp index 1a7e78d94..ef1c887a9 100644 --- a/Net/testsuite/src/FTPStreamFactoryTest.cpp +++ b/Net/testsuite/src/FTPStreamFactoryTest.cpp @@ -77,7 +77,7 @@ void FTPStreamFactoryTest::testDownload() URI uri; uri.setScheme("ftp"); - uri.setHost("localhost"); + uri.setHost("127.0.0.1"); uri.setPort(server.port()); uri.setPath("/test.txt;type=a"); FTPStreamFactory sf; @@ -115,7 +115,7 @@ void FTPStreamFactoryTest::testList() URI uri; uri.setScheme("ftp"); - uri.setHost("localhost"); + uri.setHost("127.0.0.1"); uri.setPort(server.port()); uri.setPath("/usr/guest/data;type=d"); FTPStreamFactory sf; @@ -152,7 +152,7 @@ void FTPStreamFactoryTest::testUserInfo() URI uri; uri.setScheme("ftp"); - uri.setHost("localhost"); + uri.setHost("127.0.0.1"); uri.setPort(server.port()); uri.setPath("/test.txt;type=a"); uri.setUserInfo("user:secret"); @@ -191,7 +191,7 @@ void FTPStreamFactoryTest::testPasswordProvider() URI uri; uri.setScheme("ftp"); - uri.setHost("localhost"); + uri.setHost("127.0.0.1"); uri.setPort(server.port()); uri.setPath("/test.txt;type=a"); uri.setUserInfo("user"); @@ -218,7 +218,7 @@ void FTPStreamFactoryTest::testMissingPasswordProvider() URI uri; uri.setScheme("ftp"); - uri.setHost("localhost"); + uri.setHost("127.0.0.1"); uri.setPort(server.port()); uri.setPath("/test.txt;type=a"); uri.setUserInfo("user"); diff --git a/Net/testsuite/src/HTTPClientSessionTest.cpp b/Net/testsuite/src/HTTPClientSessionTest.cpp index 87a31d697..2999c12ce 100644 --- a/Net/testsuite/src/HTTPClientSessionTest.cpp +++ b/Net/testsuite/src/HTTPClientSessionTest.cpp @@ -43,7 +43,7 @@ HTTPClientSessionTest::~HTTPClientSessionTest() void HTTPClientSessionTest::testGetSmall() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/small"); s.sendRequest(request); HTTPResponse response; @@ -59,7 +59,7 @@ void HTTPClientSessionTest::testGetSmall() void HTTPClientSessionTest::testGetLarge() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); s.sendRequest(request); HTTPResponse response; @@ -75,7 +75,7 @@ void HTTPClientSessionTest::testGetLarge() void HTTPClientSessionTest::testHead() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_HEAD, "/large"); s.sendRequest(request); HTTPResponse response; @@ -90,7 +90,7 @@ void HTTPClientSessionTest::testHead() void HTTPClientSessionTest::testPostSmallIdentity() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body("this is a random request body\r\n0\r\n"); request.setContentLength((int) body.length()); @@ -107,7 +107,7 @@ void HTTPClientSessionTest::testPostSmallIdentity() void HTTPClientSessionTest::testPostLargeIdentity() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body(8000, 'x'); body.append("\r\n0\r\n"); @@ -125,7 +125,7 @@ void HTTPClientSessionTest::testPostLargeIdentity() void HTTPClientSessionTest::testPostSmallChunked() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body("this is a random request body"); request.setChunkedTransferEncoding(true); @@ -143,7 +143,7 @@ void HTTPClientSessionTest::testPostSmallChunked() void HTTPClientSessionTest::testPostLargeChunked() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body(16000, 'x'); request.setChunkedTransferEncoding(true); @@ -163,7 +163,7 @@ void HTTPClientSessionTest::testPostLargeChunked() void HTTPClientSessionTest::testPostSmallClose() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body("this is a random request body"); s.sendRequest(request) << body; @@ -180,7 +180,7 @@ void HTTPClientSessionTest::testPostSmallClose() void HTTPClientSessionTest::testPostLargeClose() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); std::string body(8000, 'x'); s.sendRequest(request) << body; @@ -197,7 +197,7 @@ void HTTPClientSessionTest::testPostLargeClose() void HTTPClientSessionTest::testKeepAlive() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); s.setKeepAlive(true); HTTPRequest request(HTTPRequest::HTTP_HEAD, "/keepAlive", HTTPMessage::HTTP_1_1); s.sendRequest(request); @@ -246,7 +246,7 @@ void HTTPClientSessionTest::testProxy() { HTTPTestServer srv; HTTPClientSession s("www.somehost.com"); - s.setProxy("localhost", srv.port()); + s.setProxy("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); s.sendRequest(request); HTTPResponse response; @@ -263,7 +263,7 @@ void HTTPClientSessionTest::testProxyAuth() { HTTPTestServer srv; HTTPClientSession s("www.somehost.com"); - s.setProxy("localhost", srv.port()); + s.setProxy("127.0.0.1", srv.port()); s.setProxyCredentials("user", "pass"); HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); s.sendRequest(request); @@ -286,7 +286,7 @@ void HTTPClientSessionTest::testBypassProxy() proxyConfig.port = 80; proxyConfig.nonProxyHosts = "localhost|127\\.0\\.0\\.1"; - HTTPClientSession s1("localhost", 80); + HTTPClientSession s1("127.0.0.1", 80); s1.setProxyConfig(proxyConfig); assert (s1.bypassProxy()); @@ -303,7 +303,7 @@ void HTTPClientSessionTest::testBypassProxy() void HTTPClientSessionTest::testExpectContinue() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/expect"); std::string body("this is a random request body\r\n0\r\n"); request.setContentLength((int) body.length()); @@ -324,7 +324,7 @@ void HTTPClientSessionTest::testExpectContinue() void HTTPClientSessionTest::testExpectContinueFail() { HTTPTestServer srv; - HTTPClientSession s("localhost", srv.port()); + HTTPClientSession s("127.0.0.1", srv.port()); HTTPRequest request(HTTPRequest::HTTP_POST, "/fail"); std::string body("this is a random request body\r\n0\r\n"); request.setContentLength((int) body.length()); diff --git a/Net/testsuite/src/HTTPServerTest.cpp b/Net/testsuite/src/HTTPServerTest.cpp index 7dc31b554..e4900b4e3 100644 --- a/Net/testsuite/src/HTTPServerTest.cpp +++ b/Net/testsuite/src/HTTPServerTest.cpp @@ -146,7 +146,7 @@ void HTTPServerTest::testIdentityRequest() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody"); request.setContentLength((int) body.length()); @@ -169,7 +169,7 @@ void HTTPServerTest::testPutIdentityRequest() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); std::string body(5000, 'x'); HTTPRequest request("PUT", "/echoBody"); request.setContentLength((int) body.length()); @@ -192,7 +192,7 @@ void HTTPServerTest::testChunkedRequest() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody"); request.setContentType("text/plain"); @@ -216,7 +216,7 @@ void HTTPServerTest::testClosedRequest() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody"); request.setContentType("text/plain"); @@ -236,7 +236,7 @@ void HTTPServerTest::testIdentityRequestKeepAlive() HTTPServer srv(new RequestHandlerFactory, 8008); srv.start(); - HTTPClientSession cs("localhost", srv.socket().address().port()); + HTTPClientSession cs("127.0.0.1", srv.socket().address().port()); cs.setKeepAlive(true); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); @@ -267,7 +267,7 @@ void HTTPServerTest::testChunkedRequestKeepAlive() HTTPServer srv(new RequestHandlerFactory, 8009); srv.start(); - HTTPClientSession cs("localhost", srv.socket().address().port()); + HTTPClientSession cs("127.0.0.1", srv.socket().address().port()); cs.setKeepAlive(true); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); @@ -299,7 +299,7 @@ void HTTPServerTest::testClosedRequestKeepAlive() HTTPServer srv(new RequestHandlerFactory, 8010); srv.start(); - HTTPClientSession cs("localhost", srv.socket().address().port()); + HTTPClientSession cs("127.0.0.1", srv.socket().address().port()); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody"); request.setContentType("text/plain"); @@ -324,7 +324,7 @@ void HTTPServerTest::testMaxKeepAlive() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); cs.setKeepAlive(true); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); request.setContentType("text/plain"); @@ -380,7 +380,7 @@ void HTTPServerTest::testKeepAliveTimeout() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); cs.setKeepAlive(true); cs.setKeepAliveTimeout(Poco::Timespan(2, 0)); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); @@ -424,7 +424,7 @@ void HTTPServerTest::test100Continue() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); std::string body(5000, 'x'); HTTPRequest request("POST", "/echoBody"); request.setContentLength((int) body.length()); @@ -448,7 +448,7 @@ void HTTPServerTest::testRedirect() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); HTTPRequest request("GET", "/redirect"); cs.sendRequest(request); HTTPResponse response; @@ -468,7 +468,7 @@ void HTTPServerTest::testAuth() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); HTTPRequest request("GET", "/auth"); cs.sendRequest(request); HTTPResponse response; @@ -488,7 +488,7 @@ void HTTPServerTest::testNotImpl() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); HTTPRequest request("GET", "/notImpl"); cs.sendRequest(request); HTTPResponse response; @@ -507,7 +507,7 @@ void HTTPServerTest::testBuffer() HTTPServer srv(new RequestHandlerFactory, svs, pParams); srv.start(); - HTTPClientSession cs("localhost", svs.address().port()); + HTTPClientSession cs("127.0.0.1", svs.address().port()); HTTPRequest request("GET", "/buffer"); cs.sendRequest(request); HTTPResponse response; diff --git a/Net/testsuite/src/ICMPClientTest.cpp b/Net/testsuite/src/ICMPClientTest.cpp index 1ac1923a8..2304b9d84 100644 --- a/Net/testsuite/src/ICMPClientTest.cpp +++ b/Net/testsuite/src/ICMPClientTest.cpp @@ -48,9 +48,9 @@ ICMPClientTest::~ICMPClientTest() void ICMPClientTest::testPing() { - assert(ICMPClient::pingIPv4("localhost") > 0); + assert(ICMPClient::pingIPv4("127.0.0.1") > 0); - assert(_icmpClient.ping("localhost") > 0); + assert(_icmpClient.ping("127.0.0.1") > 0); assert(_icmpClient.ping("www.appinf.com", 4) > 0); // warning: may fail depending on the existence of the addresses at test site diff --git a/Net/testsuite/src/POP3ClientSessionTest.cpp b/Net/testsuite/src/POP3ClientSessionTest.cpp index b9b0b23a3..3e8c6d846 100644 --- a/Net/testsuite/src/POP3ClientSessionTest.cpp +++ b/Net/testsuite/src/POP3ClientSessionTest.cpp @@ -42,7 +42,7 @@ void POP3ClientSessionTest::testLogin() server.addResponse("+OK USER"); server.addResponse("+OK PASS"); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); std::string cmd = server.popCommand(); assert (cmd == "USER user"); @@ -61,7 +61,7 @@ void POP3ClientSessionTest::testLoginFail() server.addResponse("+OK USER"); server.addResponse("-ERR PASS"); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); try { session.login("user", "secret"); @@ -82,7 +82,7 @@ void POP3ClientSessionTest::testMessageCount() server.addResponse("+OK PASS"); server.addResponse("+OK 42 12345"); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); int n = session.messageCount(); @@ -107,7 +107,7 @@ void POP3ClientSessionTest::testList() ".\r\n" ); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); std::vector infos; @@ -146,7 +146,7 @@ void POP3ClientSessionTest::testRetrieveMessage() ".\r\n" ); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); MailMessage message; @@ -182,7 +182,7 @@ void POP3ClientSessionTest::testRetrieveHeader() "." ); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); MessageHeader header; @@ -225,7 +225,7 @@ void POP3ClientSessionTest::testRetrieveMessages() "." ); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); MessageHeader header; @@ -261,7 +261,7 @@ void POP3ClientSessionTest::testDeleteMessage() server.addResponse("+OK PASS"); server.addResponse("+OK DELETED"); server.addResponse("+OK QUIT"); - POP3ClientSession session("localhost", server.port()); + POP3ClientSession session("127.0.0.1", server.port()); session.login("user", "secret"); server.clearCommands(); session.deleteMessage(42); diff --git a/Net/testsuite/src/RawSocketTest.cpp b/Net/testsuite/src/RawSocketTest.cpp index b043066af..973562c32 100644 --- a/Net/testsuite/src/RawSocketTest.cpp +++ b/Net/testsuite/src/RawSocketTest.cpp @@ -45,7 +45,7 @@ RawSocketTest::~RawSocketTest() void RawSocketTest::testEchoIPv4() { - SocketAddress sa("localhost", 0); + SocketAddress sa("127.0.0.1", 0); RawSocket rs(IPAddress::IPv4); rs.connect(sa); @@ -70,7 +70,7 @@ void RawSocketTest::testSendToReceiveFromIPv4() { RawSocket rs(IPAddress::IPv4); - int n = rs.sendTo("hello", 5, SocketAddress("localhost", 0)); + int n = rs.sendTo("hello", 5, SocketAddress("127.0.0.1", 0)); assert (n == 5); char buffer[256] = ""; diff --git a/Net/testsuite/src/SMTPClientSessionTest.cpp b/Net/testsuite/src/SMTPClientSessionTest.cpp index a36f75e91..ab800a55d 100644 --- a/Net/testsuite/src/SMTPClientSessionTest.cpp +++ b/Net/testsuite/src/SMTPClientSessionTest.cpp @@ -42,7 +42,7 @@ void SMTPClientSessionTest::testLoginEHLO() server.addResponse("220 localhost SMTP ready"); server.addResponse("250 Hello localhost"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); std::string cmd = server.popCommand(); assert (cmd == "EHLO localhost"); @@ -59,7 +59,7 @@ void SMTPClientSessionTest::testLoginHELO() server.addResponse("500 EHLO not understood"); server.addResponse("250 Hello localhost"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); std::string cmd = server.popCommand(); assert (cmd == "EHLO localhost"); @@ -76,7 +76,7 @@ void SMTPClientSessionTest::testLoginFailed() DialogServer server; server.addResponse("500 No SMTP service here"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); try { session.login("localhost"); @@ -99,7 +99,7 @@ void SMTPClientSessionTest::testSend() server.addResponse("354 Send data"); server.addResponse("250 OK"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); MailMessage message; @@ -153,7 +153,7 @@ void SMTPClientSessionTest::testSendMultiRecipient() server.addResponse("250 OK"); server.addResponse("250 OK"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); MailMessage message; @@ -218,7 +218,7 @@ void SMTPClientSessionTest::testMultiSeparateRecipient() server.addResponse("250 OK"); server.addResponse("250 OK"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); MailMessage message; @@ -285,7 +285,7 @@ void SMTPClientSessionTest::testSendFailed() server.addResponse("354 Send data"); server.addResponse("500 Error"); server.addResponse("221 Bye"); - SMTPClientSession session("localhost", server.port()); + SMTPClientSession session("127.0.0.1", server.port()); session.login("localhost"); MailMessage message; diff --git a/Net/testsuite/src/SocketAddressTest.cpp b/Net/testsuite/src/SocketAddressTest.cpp index fabf0b251..df51a909a 100644 --- a/Net/testsuite/src/SocketAddressTest.cpp +++ b/Net/testsuite/src/SocketAddressTest.cpp @@ -23,6 +23,7 @@ using Poco::Net::InvalidAddressException; using Poco::Net::HostNotFoundException; using Poco::Net::ServiceNotFoundException; using Poco::Net::NoAddressFoundException; +using Poco::Net::AddressFamilyMismatchException; using Poco::InvalidArgumentException; @@ -68,10 +69,10 @@ void SocketAddressTest::testSocketAddress() { } - SocketAddress sa4("www.appinf.com", 80); + SocketAddress sa4("pocoproject.org", 80); assert (sa4.host().toString() == "162.209.7.4"); assert (sa4.port() == 80); - + try { SocketAddress sa5("192.168.2.260", 80); @@ -118,6 +119,24 @@ void SocketAddressTest::testSocketAddress() catch (InvalidArgumentException&) { } + + SocketAddress sa10("www6.pocoproject.org", 80); + assert (sa10.host().toString() == "162.209.7.4" || sa10.host().toString() == "[2001:4801:7819:74:be76:4eff:fe10:6b73]"); + + SocketAddress sa11(SocketAddress::IPv4, "www6.pocoproject.org", 80); + assert (sa11.host().toString() == "162.209.7.4"); + +#ifdef POCO_HAVE_IPv6 + try + { + SocketAddress sa12(SocketAddress::IPv6, "www6.pocoproject.org", 80); + assert (sa12.host().toString() == "[2001:4801:7819:74:be76:4eff:fe10:6b73]"); + } + catch (AddressFamilyMismatchException&) + { + // may happen if no IPv6 address is configured on the system + } +#endif } diff --git a/Net/testsuite/src/SocketReactorTest.cpp b/Net/testsuite/src/SocketReactorTest.cpp index 938d900b1..79fb0e1c6 100644 --- a/Net/testsuite/src/SocketReactorTest.cpp +++ b/Net/testsuite/src/SocketReactorTest.cpp @@ -314,7 +314,7 @@ void SocketReactorTest::testSocketReactor() ServerSocket ss(ssa); SocketReactor reactor; SocketAcceptor acceptor(ss, reactor); - SocketAddress sa("localhost", ss.address().port()); + SocketAddress sa("127.0.0.1", ss.address().port()); SocketConnector connector(sa, reactor); ClientServiceHandler::setOnce(true); ClientServiceHandler::resetData(); @@ -334,7 +334,7 @@ void SocketReactorTest::testSetSocketReactor() SocketReactor reactor; SocketAcceptor acceptor(ss); acceptor.setReactor(reactor); - SocketAddress sa("localhost", ss.address().port()); + SocketAddress sa("127.0.0.1", ss.address().port()); SocketConnector connector(sa, reactor); ClientServiceHandler::setOnce(true); ClientServiceHandler::resetData(); @@ -353,7 +353,7 @@ void SocketReactorTest::testParallelSocketReactor() ServerSocket ss(ssa); SocketReactor reactor; ParallelSocketAcceptor acceptor(ss, reactor); - SocketAddress sa("localhost", ss.address().port()); + SocketAddress sa("127.0.0.1", ss.address().port()); SocketConnector connector1(sa, reactor); SocketConnector connector2(sa, reactor); SocketConnector connector3(sa, reactor); @@ -390,7 +390,7 @@ void SocketReactorTest::testSocketConnectorTimeout() SocketAddress ssa; ServerSocket ss(ssa); SocketReactor reactor; - SocketAddress sa("localhost", ss.address().port()); + SocketAddress sa("127.0.0.1", ss.address().port()); SocketConnector connector(sa, reactor); reactor.run(); assert (ClientServiceHandler::timeout()); diff --git a/Net/testsuite/src/SocketStreamTest.cpp b/Net/testsuite/src/SocketStreamTest.cpp index 8c9d15338..b2b5c95be 100644 --- a/Net/testsuite/src/SocketStreamTest.cpp +++ b/Net/testsuite/src/SocketStreamTest.cpp @@ -49,7 +49,7 @@ void SocketStreamTest::testStreamEcho() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); SocketStream str(ss); str << "hello"; assert (str.good()); @@ -72,7 +72,7 @@ void SocketStreamTest::testLargeStreamEcho() const int msgSize = 64000; EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); SocketStream str(ss); ss.setSendBufferSize(msgSize); ss.setReceiveBufferSize(msgSize); @@ -100,7 +100,7 @@ void SocketStreamTest::testEOF() { EchoServer echoServer; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); str << "hello"; assert (str.good()); str.flush(); diff --git a/Net/testsuite/src/SocketTest.cpp b/Net/testsuite/src/SocketTest.cpp index c0030e9c2..a52c01f88 100644 --- a/Net/testsuite/src/SocketTest.cpp +++ b/Net/testsuite/src/SocketTest.cpp @@ -55,7 +55,7 @@ void SocketTest::testEcho() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); int n = ss.sendBytes("hello", 5); assert (n == 5); char buffer[256]; @@ -70,7 +70,7 @@ void SocketTest::testPoll() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); Stopwatch sw; sw.start(); Timespan timeout(1000000); @@ -95,7 +95,7 @@ void SocketTest::testAvailable() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); Timespan timeout(1000000); ss.sendBytes("hello", 5); char buffer[256]; @@ -135,7 +135,7 @@ void SocketTest::testFIFOBuffer() EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); int n = ss.sendBytes(f); assert (n == 5); assert(1 == _notToReadable); @@ -172,7 +172,7 @@ void SocketTest::testConnect() serv.listen(); StreamSocket ss; Timespan timeout(250000); - ss.connect(SocketAddress("localhost", serv.address().port()), timeout); + ss.connect(SocketAddress("127.0.0.1", serv.address().port()), timeout); } @@ -187,7 +187,7 @@ void SocketTest::testConnectRefused() Timespan timeout(250000); try { - ss.connect(SocketAddress("localhost", port)); + ss.connect(SocketAddress("127.0.0.1", port)); fail("connection refused - must throw"); } catch (ConnectionRefusedException&) @@ -207,7 +207,7 @@ void SocketTest::testConnectRefusedNB() Timespan timeout(2, 0); try { - ss.connect(SocketAddress("localhost", port), timeout); + ss.connect(SocketAddress("127.0.0.1", port), timeout); fail("connection refused - must throw"); } catch (TimeoutException&) @@ -223,7 +223,7 @@ void SocketTest::testNonBlocking() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); ss.setBlocking(false); Timespan timeout(1000000); @@ -247,7 +247,7 @@ void SocketTest::testAddress() serv.bind(SocketAddress()); serv.listen(); StreamSocket ss; - ss.connect(SocketAddress("localhost", serv.address().port())); + ss.connect(SocketAddress("127.0.0.1", serv.address().port())); StreamSocket css = serv.acceptConnection(); assert (css.peerAddress().host() == ss.address().host()); assert (css.peerAddress().port() == ss.address().port()); @@ -309,7 +309,7 @@ void SocketTest::testTimeout() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); Timespan timeout0 = ss.getReceiveTimeout(); Timespan timeout(250000); @@ -347,7 +347,7 @@ void SocketTest::testTimeout() void SocketTest::testBufferSize() { EchoServer echoServer; - SocketAddress sa("localhost", 1234); + SocketAddress sa("127.0.0.1", 1234); StreamSocket ss(sa.family()); int osz = ss.getSendBufferSize(); @@ -371,7 +371,7 @@ void SocketTest::testOptions() { EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); ss.setLinger(true, 20); bool f; @@ -405,7 +405,7 @@ void SocketTest::testSelect() EchoServer echoServer; StreamSocket ss; - ss.connect(SocketAddress("localhost", echoServer.port())); + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); Socket::SocketList readList; Socket::SocketList writeList; @@ -442,8 +442,8 @@ void SocketTest::testSelect2() EchoServer echoServer1; EchoServer echoServer2; - StreamSocket ss1(SocketAddress("localhost", echoServer1.port())); - StreamSocket ss2(SocketAddress("localhost", echoServer2.port())); + StreamSocket ss1(SocketAddress("127.0.0.1", echoServer1.port())); + StreamSocket ss2(SocketAddress("127.0.0.1", echoServer2.port())); Socket::SocketList readList; Socket::SocketList writeList; diff --git a/Net/testsuite/src/TCPServerTest.cpp b/Net/testsuite/src/TCPServerTest.cpp index 9f11d461e..86375779e 100644 --- a/Net/testsuite/src/TCPServerTest.cpp +++ b/Net/testsuite/src/TCPServerTest.cpp @@ -84,7 +84,7 @@ void TCPServerTest::testOneConnection() assert (srv.queuedConnections() == 0); assert (srv.totalConnections() == 0); - SocketAddress sa("localhost", srv.socket().address().port()); + SocketAddress sa("127.0.0.1", srv.socket().address().port()); StreamSocket ss1(sa); std::string data("hello, world"); ss1.sendBytes(data.data(), (int) data.size()); @@ -111,7 +111,7 @@ void TCPServerTest::testTwoConnections() assert (srv.queuedConnections() == 0); assert (srv.totalConnections() == 0); - SocketAddress sa("localhost", srv.socket().address().port()); + SocketAddress sa("127.0.0.1", srv.socket().address().port()); StreamSocket ss1(sa); StreamSocket ss2(sa); std::string data("hello, world"); @@ -159,7 +159,7 @@ void TCPServerTest::testMultiConnections() assert (srv.queuedConnections() == 0); assert (srv.totalConnections() == 0); - SocketAddress sa("localhost", svs.address().port()); + SocketAddress sa("127.0.0.1", svs.address().port()); StreamSocket ss1(sa); StreamSocket ss2(sa); StreamSocket ss3(sa); diff --git a/Net/testsuite/src/WebSocketTest.cpp b/Net/testsuite/src/WebSocketTest.cpp index 72f6dcaf3..501cf9897 100644 --- a/Net/testsuite/src/WebSocketTest.cpp +++ b/Net/testsuite/src/WebSocketTest.cpp @@ -119,7 +119,7 @@ void WebSocketTest::testWebSocket() Poco::Thread::sleep(200); - HTTPClientSession cs("localhost", ss.address().port()); + HTTPClientSession cs("127.0.0.1", ss.address().port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1); HTTPResponse response; WebSocket ws(cs, request, response); @@ -200,7 +200,7 @@ void WebSocketTest::testWebSocketLarge() Poco::Thread::sleep(200); - HTTPClientSession cs("localhost", ss.address().port()); + HTTPClientSession cs("127.0.0.1", ss.address().port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1); HTTPResponse response; WebSocket ws(cs, request, response); @@ -232,7 +232,7 @@ void WebSocketTest::testOneLargeFrame(int msgSize) Poco::Thread::sleep(200); - HTTPClientSession cs("localhost", ss.address().port()); + HTTPClientSession cs("127.0.0.1", ss.address().port()); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1); HTTPResponse response; WebSocket ws(cs, request, response);