GH #1481, GH #1449: fix broken tests due to changed dns resolution

This commit is contained in:
Guenter Obiltschnig
2016-11-09 12:22:49 +01:00
parent 2c35d50889
commit 696a9de502
23 changed files with 246 additions and 112 deletions

View File

@@ -53,6 +53,7 @@ POCO_DECLARE_EXCEPTION(Net_API, NTPException, NetException)
POCO_DECLARE_EXCEPTION(Net_API, HTMLFormException, NetException) POCO_DECLARE_EXCEPTION(Net_API, HTMLFormException, NetException)
POCO_DECLARE_EXCEPTION(Net_API, WebSocketException, NetException) POCO_DECLARE_EXCEPTION(Net_API, WebSocketException, NetException)
POCO_DECLARE_EXCEPTION(Net_API, UnsupportedFamilyException, NetException) POCO_DECLARE_EXCEPTION(Net_API, UnsupportedFamilyException, NetException)
POCO_DECLARE_EXCEPTION(Net_API, AddressFamilyMismatchException, NetException)
} } // namespace Poco::Net } } // namespace Poco::Net

View File

@@ -58,6 +58,10 @@ public:
SocketAddress(); SocketAddress();
/// Creates a wildcard (all zero) IPv4 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); SocketAddress(const IPAddress& hostAddress, Poco::UInt16 portNumber);
/// Creates a SocketAddress from an IP address and given port number. /// Creates a SocketAddress from an IP address and given port number.
@@ -65,12 +69,27 @@ public:
/// Creates a SocketAddress with unspecified (wildcard) IP address /// Creates a SocketAddress with unspecified (wildcard) IP address
/// and given port number. /// 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); SocketAddress(const std::string& hostAddress, Poco::UInt16 portNumber);
/// Creates a SocketAddress from an IP address and given port number. /// Creates a SocketAddress from an IP address and given port number.
/// ///
/// The IP address must either be a domain name, or it must /// The IP address must either be a domain name, or it must
/// be in dotted decimal (IPv4) or hex string (IPv6) format. /// 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); SocketAddress(const std::string& hostAddress, const std::string& portNumber);
/// Creates a SocketAddress from an IP address and the /// Creates a SocketAddress from an IP address and the
/// service name or port number. /// service name or port number.
@@ -81,6 +100,21 @@ public:
/// The given port must either be a decimal port number, or /// The given port must either be a decimal port number, or
/// a service name. /// 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); explicit SocketAddress(const std::string& hostAndPort);
/// Creates a SocketAddress from an IP address or host name and the /// Creates a SocketAddress from an IP address or host name and the
/// port number/service name. Host name/address and port number must /// port number/service name. Host name/address and port number must
@@ -156,6 +190,7 @@ public:
protected: protected:
void init(const IPAddress& hostAddress, Poco::UInt16 portNumber); void init(const IPAddress& hostAddress, Poco::UInt16 portNumber);
void init(const std::string& 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(Family family, const std::string& address);
void init(const std::string& hostAndPort); void init(const std::string& hostAndPort);
Poco::UInt16 resolveService(const std::string& service); Poco::UInt16 resolveService(const std::string& service);

View File

@@ -49,7 +49,8 @@ POCO_IMPLEMENT_EXCEPTION(ICMPException, NetException, "ICMP Exception")
POCO_IMPLEMENT_EXCEPTION(NTPException, NetException, "NTP Exception") POCO_IMPLEMENT_EXCEPTION(NTPException, NetException, "NTP Exception")
POCO_IMPLEMENT_EXCEPTION(HTMLFormException, NetException, "HTML Form Exception") POCO_IMPLEMENT_EXCEPTION(HTMLFormException, NetException, "HTML Form Exception")
POCO_IMPLEMENT_EXCEPTION(WebSocketException, NetException, "WebSocket 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 } } // namespace Poco::Net

View File

@@ -101,6 +101,7 @@ void ServerSocket::bind(Poco::UInt16 port, bool reuseAddress, bool reusePort)
impl()->bind(address, reuseAddress, reusePort); impl()->bind(address, reuseAddress, reusePort);
} }
void ServerSocket::bind6(const SocketAddress& address, bool reuseAddress, bool ipV6Only) void ServerSocket::bind6(const SocketAddress& address, bool reuseAddress, bool ipV6Only)
{ {
impl()->bind6(address, reuseAddress, 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); impl()->bind6(address, reuseAddress, reusePort, ipV6Only);
} }
void ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) void ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only)
{ {
#if defined(POCO_HAVE_IPv6) #if defined(POCO_HAVE_IPv6)
@@ -135,6 +137,7 @@ void ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool reusePort, b
#endif // POCO_HAVE_IPv6 #endif // POCO_HAVE_IPv6
} }
void ServerSocket::listen(int backlog) void ServerSocket::listen(int backlog)
{ {
impl()->listen(backlog); impl()->listen(backlog);

View File

@@ -77,6 +77,12 @@ SocketAddress::SocketAddress()
} }
SocketAddress::SocketAddress(Family fam)
{
init(IPAddress(fam), 0);
}
SocketAddress::SocketAddress(const IPAddress& hostAddress, Poco::UInt16 portNumber) SocketAddress::SocketAddress(const IPAddress& hostAddress, Poco::UInt16 portNumber)
{ {
init(hostAddress, 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) SocketAddress::SocketAddress(const std::string& hostAddress, Poco::UInt16 portNumber)
{ {
init(hostAddress, 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) SocketAddress::SocketAddress(const std::string& hostAddress, const std::string& portNumber)
{ {
init(hostAddress, resolveService(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) void SocketAddress::init(Family fam, const std::string& address)
{ {
#if defined(POCO_OS_FAMILY_UNIX) #if defined(POCO_OS_FAMILY_UNIX)
@@ -271,8 +324,29 @@ void SocketAddress::init(Family fam, const std::string& address)
else else
#endif #endif
{ {
init(address); std::string host;
if (fam != family()) throw Poco::InvalidArgumentException("address does not fit family"); 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));
} }
} }

View File

@@ -274,6 +274,7 @@ void WebSocketImpl::bind6(const SocketAddress& address, bool reuseAddress, bool
throw Poco::InvalidAccessException("Cannot bind6() a WebSocketImpl"); throw Poco::InvalidAccessException("Cannot bind6() a WebSocketImpl");
} }
void WebSocketImpl::listen(int backlog) void WebSocketImpl::listen(int backlog)
{ {
throw Poco::InvalidAccessException("Cannot listen() on a WebSocketImpl"); throw Poco::InvalidAccessException("Cannot listen() on a WebSocketImpl");

View File

@@ -39,20 +39,20 @@ DNSTest::~DNSTest()
void DNSTest::testHostByName() void DNSTest::testHostByName()
{ {
HostEntry he1 = DNS::hostByName("aliastest.appinf.com"); HostEntry he1 = DNS::hostByName("aliastest.pocoproject.org");
// different systems report different canonical names, unfortunately. // 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) #if !defined(POCO_HAVE_ADDRINFO)
// getaddrinfo() does not report any aliases // getaddrinfo() does not report any aliases
assert (!he1.aliases().empty()); assert (!he1.aliases().empty());
assert (he1.aliases()[0] == "aliastest.appinf.com"); assert (he1.aliases()[0] == "aliastest.pocoproject.org");
#endif #endif
assert (he1.addresses().size() >= 1); assert (he1.addresses().size() >= 1);
assert (he1.addresses()[0].toString() == "1.2.3.4"); assert (he1.addresses()[0].toString() == "1.2.3.4");
try try
{ {
HostEntry he1 = DNS::hostByName("nohost.appinf.com"); HostEntry he1 = DNS::hostByName("nohost.pocoproject.org");
fail("host not found - must throw"); fail("host not found - must throw");
} }
catch (HostNotFoundException&) catch (HostNotFoundException&)

View File

@@ -51,7 +51,7 @@ void DatagramSocketTest::testEcho()
UDPEchoServer echoServer; UDPEchoServer echoServer;
DatagramSocket ss; DatagramSocket ss;
char buffer[256]; char buffer[256];
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
int n = ss.sendBytes("hello", 5); int n = ss.sendBytes("hello", 5);
assert (n == 5); assert (n == 5);
n = ss.receiveBytes(buffer, sizeof(buffer)); n = ss.receiveBytes(buffer, sizeof(buffer));
@@ -63,9 +63,9 @@ void DatagramSocketTest::testEcho()
void DatagramSocketTest::testSendToReceiveFrom() void DatagramSocketTest::testSendToReceiveFrom()
{ {
UDPEchoServer echoServer(SocketAddress("localhost", 0)); UDPEchoServer echoServer(SocketAddress("127.0.0.1", 0));
DatagramSocket ss(SocketAddress::IPv4); 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); assert (n == 5);
char buffer[256]; char buffer[256];
SocketAddress sa; SocketAddress sa;
@@ -83,7 +83,7 @@ void DatagramSocketTest::testUnbound()
UDPEchoServer echoServer; UDPEchoServer echoServer;
DatagramSocket ss; DatagramSocket ss;
char buffer[256]; char buffer[256];
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
int n = ss.sendBytes("hello", 5); int n = ss.sendBytes("hello", 5);
assert (n == 5); assert (n == 5);
n = ss.receiveBytes(buffer, sizeof(buffer)); n = ss.receiveBytes(buffer, sizeof(buffer));

View File

@@ -37,7 +37,7 @@ void DialogSocketTest::testDialogSocket()
{ {
EchoServer echoServer; EchoServer echoServer;
DialogSocket ds; DialogSocket ds;
ds.connect(SocketAddress("localhost", echoServer.port())); ds.connect(SocketAddress("127.0.0.1", echoServer.port()));
ds.sendMessage("Hello, world!"); ds.sendMessage("Hello, world!");
std::string str; std::string str;

View File

@@ -94,7 +94,7 @@ void FTPClientSessionTest::testLogin1()
{ {
DialogServer server; DialogServer server;
server.addResponse("220 localhost FTP ready"); server.addResponse("220 localhost FTP ready");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
assert (session.isOpen()); assert (session.isOpen());
assert (!session.isLoggedIn()); assert (!session.isLoggedIn());
login(server, session); login(server, session);
@@ -125,7 +125,7 @@ void FTPClientSessionTest::testLogin2()
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
Poco::UInt16 serverPort = server.port(); 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.isOpen());
assert (session.isLoggedIn()); assert (session.isLoggedIn());
server.addResponse("221 Good Bye"); server.addResponse("221 Good Bye");
@@ -139,7 +139,7 @@ void FTPClientSessionTest::testLogin2()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); 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.isOpen());
assert (session.isLoggedIn()); assert (session.isLoggedIn());
server.addResponse("221 Good Bye"); server.addResponse("221 Good Bye");
@@ -159,7 +159,7 @@ void FTPClientSessionTest::testLogin3()
FTPClientSession session; FTPClientSession session;
assert (!session.isOpen()); assert (!session.isOpen());
assert (!session.isLoggedIn()); 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"); server.addResponse("221 Good Bye");
session.close(); session.close();
assert (!session.isOpen()); assert (!session.isOpen());
@@ -172,7 +172,7 @@ void FTPClientSessionTest::testLoginFailed1()
{ {
DialogServer server; DialogServer server;
server.addResponse("421 localhost FTP not ready"); server.addResponse("421 localhost FTP not ready");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
try try
{ {
session.login("user", "password"); session.login("user", "password");
@@ -192,7 +192,7 @@ void FTPClientSessionTest::testLoginFailed2()
server.addResponse("220 localhost FTP ready"); server.addResponse("220 localhost FTP ready");
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("530 Login incorrect"); server.addResponse("530 Login incorrect");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
try try
{ {
session.login("user", "password"); session.login("user", "password");
@@ -213,7 +213,7 @@ void FTPClientSessionTest::testCommands()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.login("user", "password"); session.login("user", "password");
std::string cmd = server.popCommand(); std::string cmd = server.popCommand();
assert (cmd == "USER user"); assert (cmd == "USER user");
@@ -342,7 +342,7 @@ void FTPClientSessionTest::testDownloadPORT()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.setPassive(false); session.setPassive(false);
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();
@@ -373,7 +373,7 @@ void FTPClientSessionTest::testDownloadPORT()
cmd = server.popCommandWait(); cmd = server.popCommandWait();
assert (cmd == "RETR test.txt"); assert (cmd == "RETR test.txt");
SocketAddress sa("localhost", (Poco::UInt16) port); SocketAddress sa("127.0.0.1", (Poco::UInt16) port);
DialogSocket dataSock; DialogSocket dataSock;
dataSock.connect(sa); dataSock.connect(sa);
@@ -397,7 +397,7 @@ void FTPClientSessionTest::testDownloadEPRT()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.setPassive(false); session.setPassive(false);
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();
@@ -421,7 +421,7 @@ void FTPClientSessionTest::testDownloadEPRT()
cmd = server.popCommandWait(); cmd = server.popCommandWait();
assert (cmd == "RETR test.txt"); assert (cmd == "RETR test.txt");
SocketAddress sa("localhost", (Poco::UInt16) port); SocketAddress sa("127.0.0.1", (Poco::UInt16) port);
DialogSocket dataSock; DialogSocket dataSock;
dataSock.connect(sa); dataSock.connect(sa);
@@ -445,7 +445,7 @@ void FTPClientSessionTest::testDownloadPASV()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();
@@ -478,7 +478,7 @@ void FTPClientSessionTest::testDownloadEPSV()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();
@@ -513,7 +513,7 @@ void FTPClientSessionTest::testUpload()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();
@@ -546,7 +546,7 @@ void FTPClientSessionTest::testList()
server.addResponse("331 Password required"); server.addResponse("331 Password required");
server.addResponse("230 Welcome"); server.addResponse("230 Welcome");
server.addResponse("200 Type set to I"); server.addResponse("200 Type set to I");
FTPClientSession session("localhost", server.port()); FTPClientSession session("127.0.0.1", server.port());
session.login("user", "password"); session.login("user", "password");
server.clearCommands(); server.clearCommands();

View File

@@ -77,7 +77,7 @@ void FTPStreamFactoryTest::testDownload()
URI uri; URI uri;
uri.setScheme("ftp"); uri.setScheme("ftp");
uri.setHost("localhost"); uri.setHost("127.0.0.1");
uri.setPort(server.port()); uri.setPort(server.port());
uri.setPath("/test.txt;type=a"); uri.setPath("/test.txt;type=a");
FTPStreamFactory sf; FTPStreamFactory sf;
@@ -115,7 +115,7 @@ void FTPStreamFactoryTest::testList()
URI uri; URI uri;
uri.setScheme("ftp"); uri.setScheme("ftp");
uri.setHost("localhost"); uri.setHost("127.0.0.1");
uri.setPort(server.port()); uri.setPort(server.port());
uri.setPath("/usr/guest/data;type=d"); uri.setPath("/usr/guest/data;type=d");
FTPStreamFactory sf; FTPStreamFactory sf;
@@ -152,7 +152,7 @@ void FTPStreamFactoryTest::testUserInfo()
URI uri; URI uri;
uri.setScheme("ftp"); uri.setScheme("ftp");
uri.setHost("localhost"); uri.setHost("127.0.0.1");
uri.setPort(server.port()); uri.setPort(server.port());
uri.setPath("/test.txt;type=a"); uri.setPath("/test.txt;type=a");
uri.setUserInfo("user:secret"); uri.setUserInfo("user:secret");
@@ -191,7 +191,7 @@ void FTPStreamFactoryTest::testPasswordProvider()
URI uri; URI uri;
uri.setScheme("ftp"); uri.setScheme("ftp");
uri.setHost("localhost"); uri.setHost("127.0.0.1");
uri.setPort(server.port()); uri.setPort(server.port());
uri.setPath("/test.txt;type=a"); uri.setPath("/test.txt;type=a");
uri.setUserInfo("user"); uri.setUserInfo("user");
@@ -218,7 +218,7 @@ void FTPStreamFactoryTest::testMissingPasswordProvider()
URI uri; URI uri;
uri.setScheme("ftp"); uri.setScheme("ftp");
uri.setHost("localhost"); uri.setHost("127.0.0.1");
uri.setPort(server.port()); uri.setPort(server.port());
uri.setPath("/test.txt;type=a"); uri.setPath("/test.txt;type=a");
uri.setUserInfo("user"); uri.setUserInfo("user");

View File

@@ -43,7 +43,7 @@ HTTPClientSessionTest::~HTTPClientSessionTest()
void HTTPClientSessionTest::testGetSmall() void HTTPClientSessionTest::testGetSmall()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_GET, "/small"); HTTPRequest request(HTTPRequest::HTTP_GET, "/small");
s.sendRequest(request); s.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -59,7 +59,7 @@ void HTTPClientSessionTest::testGetSmall()
void HTTPClientSessionTest::testGetLarge() void HTTPClientSessionTest::testGetLarge()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); HTTPRequest request(HTTPRequest::HTTP_GET, "/large");
s.sendRequest(request); s.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -75,7 +75,7 @@ void HTTPClientSessionTest::testGetLarge()
void HTTPClientSessionTest::testHead() void HTTPClientSessionTest::testHead()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_HEAD, "/large"); HTTPRequest request(HTTPRequest::HTTP_HEAD, "/large");
s.sendRequest(request); s.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -90,7 +90,7 @@ void HTTPClientSessionTest::testHead()
void HTTPClientSessionTest::testPostSmallIdentity() void HTTPClientSessionTest::testPostSmallIdentity()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body("this is a random request body\r\n0\r\n"); std::string body("this is a random request body\r\n0\r\n");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());
@@ -107,7 +107,7 @@ void HTTPClientSessionTest::testPostSmallIdentity()
void HTTPClientSessionTest::testPostLargeIdentity() void HTTPClientSessionTest::testPostLargeIdentity()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body(8000, 'x'); std::string body(8000, 'x');
body.append("\r\n0\r\n"); body.append("\r\n0\r\n");
@@ -125,7 +125,7 @@ void HTTPClientSessionTest::testPostLargeIdentity()
void HTTPClientSessionTest::testPostSmallChunked() void HTTPClientSessionTest::testPostSmallChunked()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body("this is a random request body"); std::string body("this is a random request body");
request.setChunkedTransferEncoding(true); request.setChunkedTransferEncoding(true);
@@ -143,7 +143,7 @@ void HTTPClientSessionTest::testPostSmallChunked()
void HTTPClientSessionTest::testPostLargeChunked() void HTTPClientSessionTest::testPostLargeChunked()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body(16000, 'x'); std::string body(16000, 'x');
request.setChunkedTransferEncoding(true); request.setChunkedTransferEncoding(true);
@@ -163,7 +163,7 @@ void HTTPClientSessionTest::testPostLargeChunked()
void HTTPClientSessionTest::testPostSmallClose() void HTTPClientSessionTest::testPostSmallClose()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body("this is a random request body"); std::string body("this is a random request body");
s.sendRequest(request) << body; s.sendRequest(request) << body;
@@ -180,7 +180,7 @@ void HTTPClientSessionTest::testPostSmallClose()
void HTTPClientSessionTest::testPostLargeClose() void HTTPClientSessionTest::testPostLargeClose()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); HTTPRequest request(HTTPRequest::HTTP_POST, "/echo");
std::string body(8000, 'x'); std::string body(8000, 'x');
s.sendRequest(request) << body; s.sendRequest(request) << body;
@@ -197,7 +197,7 @@ void HTTPClientSessionTest::testPostLargeClose()
void HTTPClientSessionTest::testKeepAlive() void HTTPClientSessionTest::testKeepAlive()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
s.setKeepAlive(true); s.setKeepAlive(true);
HTTPRequest request(HTTPRequest::HTTP_HEAD, "/keepAlive", HTTPMessage::HTTP_1_1); HTTPRequest request(HTTPRequest::HTTP_HEAD, "/keepAlive", HTTPMessage::HTTP_1_1);
s.sendRequest(request); s.sendRequest(request);
@@ -246,7 +246,7 @@ void HTTPClientSessionTest::testProxy()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("www.somehost.com"); HTTPClientSession s("www.somehost.com");
s.setProxy("localhost", srv.port()); s.setProxy("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); HTTPRequest request(HTTPRequest::HTTP_GET, "/large");
s.sendRequest(request); s.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -263,7 +263,7 @@ void HTTPClientSessionTest::testProxyAuth()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("www.somehost.com"); HTTPClientSession s("www.somehost.com");
s.setProxy("localhost", srv.port()); s.setProxy("127.0.0.1", srv.port());
s.setProxyCredentials("user", "pass"); s.setProxyCredentials("user", "pass");
HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); HTTPRequest request(HTTPRequest::HTTP_GET, "/large");
s.sendRequest(request); s.sendRequest(request);
@@ -286,7 +286,7 @@ void HTTPClientSessionTest::testBypassProxy()
proxyConfig.port = 80; proxyConfig.port = 80;
proxyConfig.nonProxyHosts = "localhost|127\\.0\\.0\\.1"; proxyConfig.nonProxyHosts = "localhost|127\\.0\\.0\\.1";
HTTPClientSession s1("localhost", 80); HTTPClientSession s1("127.0.0.1", 80);
s1.setProxyConfig(proxyConfig); s1.setProxyConfig(proxyConfig);
assert (s1.bypassProxy()); assert (s1.bypassProxy());
@@ -303,7 +303,7 @@ void HTTPClientSessionTest::testBypassProxy()
void HTTPClientSessionTest::testExpectContinue() void HTTPClientSessionTest::testExpectContinue()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/expect"); HTTPRequest request(HTTPRequest::HTTP_POST, "/expect");
std::string body("this is a random request body\r\n0\r\n"); std::string body("this is a random request body\r\n0\r\n");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());
@@ -324,7 +324,7 @@ void HTTPClientSessionTest::testExpectContinue()
void HTTPClientSessionTest::testExpectContinueFail() void HTTPClientSessionTest::testExpectContinueFail()
{ {
HTTPTestServer srv; HTTPTestServer srv;
HTTPClientSession s("localhost", srv.port()); HTTPClientSession s("127.0.0.1", srv.port());
HTTPRequest request(HTTPRequest::HTTP_POST, "/fail"); HTTPRequest request(HTTPRequest::HTTP_POST, "/fail");
std::string body("this is a random request body\r\n0\r\n"); std::string body("this is a random request body\r\n0\r\n");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());

View File

@@ -146,7 +146,7 @@ void HTTPServerTest::testIdentityRequest()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody"); HTTPRequest request("POST", "/echoBody");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());
@@ -169,7 +169,7 @@ void HTTPServerTest::testPutIdentityRequest()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("PUT", "/echoBody"); HTTPRequest request("PUT", "/echoBody");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());
@@ -192,7 +192,7 @@ void HTTPServerTest::testChunkedRequest()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody"); HTTPRequest request("POST", "/echoBody");
request.setContentType("text/plain"); request.setContentType("text/plain");
@@ -216,7 +216,7 @@ void HTTPServerTest::testClosedRequest()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody"); HTTPRequest request("POST", "/echoBody");
request.setContentType("text/plain"); request.setContentType("text/plain");
@@ -236,7 +236,7 @@ void HTTPServerTest::testIdentityRequestKeepAlive()
HTTPServer srv(new RequestHandlerFactory, 8008); HTTPServer srv(new RequestHandlerFactory, 8008);
srv.start(); srv.start();
HTTPClientSession cs("localhost", srv.socket().address().port()); HTTPClientSession cs("127.0.0.1", srv.socket().address().port());
cs.setKeepAlive(true); cs.setKeepAlive(true);
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1);
@@ -267,7 +267,7 @@ void HTTPServerTest::testChunkedRequestKeepAlive()
HTTPServer srv(new RequestHandlerFactory, 8009); HTTPServer srv(new RequestHandlerFactory, 8009);
srv.start(); srv.start();
HTTPClientSession cs("localhost", srv.socket().address().port()); HTTPClientSession cs("127.0.0.1", srv.socket().address().port());
cs.setKeepAlive(true); cs.setKeepAlive(true);
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1);
@@ -299,7 +299,7 @@ void HTTPServerTest::testClosedRequestKeepAlive()
HTTPServer srv(new RequestHandlerFactory, 8010); HTTPServer srv(new RequestHandlerFactory, 8010);
srv.start(); srv.start();
HTTPClientSession cs("localhost", srv.socket().address().port()); HTTPClientSession cs("127.0.0.1", srv.socket().address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody"); HTTPRequest request("POST", "/echoBody");
request.setContentType("text/plain"); request.setContentType("text/plain");
@@ -324,7 +324,7 @@ void HTTPServerTest::testMaxKeepAlive()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
cs.setKeepAlive(true); cs.setKeepAlive(true);
HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1);
request.setContentType("text/plain"); request.setContentType("text/plain");
@@ -380,7 +380,7 @@ void HTTPServerTest::testKeepAliveTimeout()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
cs.setKeepAlive(true); cs.setKeepAlive(true);
cs.setKeepAliveTimeout(Poco::Timespan(2, 0)); cs.setKeepAliveTimeout(Poco::Timespan(2, 0));
HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1);
@@ -424,7 +424,7 @@ void HTTPServerTest::test100Continue()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
std::string body(5000, 'x'); std::string body(5000, 'x');
HTTPRequest request("POST", "/echoBody"); HTTPRequest request("POST", "/echoBody");
request.setContentLength((int) body.length()); request.setContentLength((int) body.length());
@@ -448,7 +448,7 @@ void HTTPServerTest::testRedirect()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
HTTPRequest request("GET", "/redirect"); HTTPRequest request("GET", "/redirect");
cs.sendRequest(request); cs.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -468,7 +468,7 @@ void HTTPServerTest::testAuth()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
HTTPRequest request("GET", "/auth"); HTTPRequest request("GET", "/auth");
cs.sendRequest(request); cs.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -488,7 +488,7 @@ void HTTPServerTest::testNotImpl()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
HTTPRequest request("GET", "/notImpl"); HTTPRequest request("GET", "/notImpl");
cs.sendRequest(request); cs.sendRequest(request);
HTTPResponse response; HTTPResponse response;
@@ -507,7 +507,7 @@ void HTTPServerTest::testBuffer()
HTTPServer srv(new RequestHandlerFactory, svs, pParams); HTTPServer srv(new RequestHandlerFactory, svs, pParams);
srv.start(); srv.start();
HTTPClientSession cs("localhost", svs.address().port()); HTTPClientSession cs("127.0.0.1", svs.address().port());
HTTPRequest request("GET", "/buffer"); HTTPRequest request("GET", "/buffer");
cs.sendRequest(request); cs.sendRequest(request);
HTTPResponse response; HTTPResponse response;

View File

@@ -48,9 +48,9 @@ ICMPClientTest::~ICMPClientTest()
void ICMPClientTest::testPing() 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); assert(_icmpClient.ping("www.appinf.com", 4) > 0);
// warning: may fail depending on the existence of the addresses at test site // warning: may fail depending on the existence of the addresses at test site

View File

@@ -42,7 +42,7 @@ void POP3ClientSessionTest::testLogin()
server.addResponse("+OK USER"); server.addResponse("+OK USER");
server.addResponse("+OK PASS"); server.addResponse("+OK PASS");
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
std::string cmd = server.popCommand(); std::string cmd = server.popCommand();
assert (cmd == "USER user"); assert (cmd == "USER user");
@@ -61,7 +61,7 @@ void POP3ClientSessionTest::testLoginFail()
server.addResponse("+OK USER"); server.addResponse("+OK USER");
server.addResponse("-ERR PASS"); server.addResponse("-ERR PASS");
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
try try
{ {
session.login("user", "secret"); session.login("user", "secret");
@@ -82,7 +82,7 @@ void POP3ClientSessionTest::testMessageCount()
server.addResponse("+OK PASS"); server.addResponse("+OK PASS");
server.addResponse("+OK 42 12345"); server.addResponse("+OK 42 12345");
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
int n = session.messageCount(); int n = session.messageCount();
@@ -107,7 +107,7 @@ void POP3ClientSessionTest::testList()
".\r\n" ".\r\n"
); );
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
std::vector<POP3ClientSession::MessageInfo> infos; std::vector<POP3ClientSession::MessageInfo> infos;
@@ -146,7 +146,7 @@ void POP3ClientSessionTest::testRetrieveMessage()
".\r\n" ".\r\n"
); );
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
MailMessage message; MailMessage message;
@@ -182,7 +182,7 @@ void POP3ClientSessionTest::testRetrieveHeader()
"." "."
); );
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
MessageHeader header; MessageHeader header;
@@ -225,7 +225,7 @@ void POP3ClientSessionTest::testRetrieveMessages()
"." "."
); );
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
MessageHeader header; MessageHeader header;
@@ -261,7 +261,7 @@ void POP3ClientSessionTest::testDeleteMessage()
server.addResponse("+OK PASS"); server.addResponse("+OK PASS");
server.addResponse("+OK DELETED"); server.addResponse("+OK DELETED");
server.addResponse("+OK QUIT"); server.addResponse("+OK QUIT");
POP3ClientSession session("localhost", server.port()); POP3ClientSession session("127.0.0.1", server.port());
session.login("user", "secret"); session.login("user", "secret");
server.clearCommands(); server.clearCommands();
session.deleteMessage(42); session.deleteMessage(42);

View File

@@ -45,7 +45,7 @@ RawSocketTest::~RawSocketTest()
void RawSocketTest::testEchoIPv4() void RawSocketTest::testEchoIPv4()
{ {
SocketAddress sa("localhost", 0); SocketAddress sa("127.0.0.1", 0);
RawSocket rs(IPAddress::IPv4); RawSocket rs(IPAddress::IPv4);
rs.connect(sa); rs.connect(sa);
@@ -70,7 +70,7 @@ void RawSocketTest::testSendToReceiveFromIPv4()
{ {
RawSocket rs(IPAddress::IPv4); 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); assert (n == 5);
char buffer[256] = ""; char buffer[256] = "";

View File

@@ -42,7 +42,7 @@ void SMTPClientSessionTest::testLoginEHLO()
server.addResponse("220 localhost SMTP ready"); server.addResponse("220 localhost SMTP ready");
server.addResponse("250 Hello localhost"); server.addResponse("250 Hello localhost");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
std::string cmd = server.popCommand(); std::string cmd = server.popCommand();
assert (cmd == "EHLO localhost"); assert (cmd == "EHLO localhost");
@@ -59,7 +59,7 @@ void SMTPClientSessionTest::testLoginHELO()
server.addResponse("500 EHLO not understood"); server.addResponse("500 EHLO not understood");
server.addResponse("250 Hello localhost"); server.addResponse("250 Hello localhost");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
std::string cmd = server.popCommand(); std::string cmd = server.popCommand();
assert (cmd == "EHLO localhost"); assert (cmd == "EHLO localhost");
@@ -76,7 +76,7 @@ void SMTPClientSessionTest::testLoginFailed()
DialogServer server; DialogServer server;
server.addResponse("500 No SMTP service here"); server.addResponse("500 No SMTP service here");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
try try
{ {
session.login("localhost"); session.login("localhost");
@@ -99,7 +99,7 @@ void SMTPClientSessionTest::testSend()
server.addResponse("354 Send data"); server.addResponse("354 Send data");
server.addResponse("250 OK"); server.addResponse("250 OK");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
MailMessage message; MailMessage message;
@@ -153,7 +153,7 @@ void SMTPClientSessionTest::testSendMultiRecipient()
server.addResponse("250 OK"); server.addResponse("250 OK");
server.addResponse("250 OK"); server.addResponse("250 OK");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
MailMessage message; MailMessage message;
@@ -218,7 +218,7 @@ void SMTPClientSessionTest::testMultiSeparateRecipient()
server.addResponse("250 OK"); server.addResponse("250 OK");
server.addResponse("250 OK"); server.addResponse("250 OK");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
MailMessage message; MailMessage message;
@@ -285,7 +285,7 @@ void SMTPClientSessionTest::testSendFailed()
server.addResponse("354 Send data"); server.addResponse("354 Send data");
server.addResponse("500 Error"); server.addResponse("500 Error");
server.addResponse("221 Bye"); server.addResponse("221 Bye");
SMTPClientSession session("localhost", server.port()); SMTPClientSession session("127.0.0.1", server.port());
session.login("localhost"); session.login("localhost");
MailMessage message; MailMessage message;

View File

@@ -23,6 +23,7 @@ using Poco::Net::InvalidAddressException;
using Poco::Net::HostNotFoundException; using Poco::Net::HostNotFoundException;
using Poco::Net::ServiceNotFoundException; using Poco::Net::ServiceNotFoundException;
using Poco::Net::NoAddressFoundException; using Poco::Net::NoAddressFoundException;
using Poco::Net::AddressFamilyMismatchException;
using Poco::InvalidArgumentException; using Poco::InvalidArgumentException;
@@ -68,7 +69,7 @@ void SocketAddressTest::testSocketAddress()
{ {
} }
SocketAddress sa4("www.appinf.com", 80); SocketAddress sa4("pocoproject.org", 80);
assert (sa4.host().toString() == "162.209.7.4"); assert (sa4.host().toString() == "162.209.7.4");
assert (sa4.port() == 80); assert (sa4.port() == 80);
@@ -118,6 +119,24 @@ void SocketAddressTest::testSocketAddress()
catch (InvalidArgumentException&) 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
} }

View File

@@ -314,7 +314,7 @@ void SocketReactorTest::testSocketReactor()
ServerSocket ss(ssa); ServerSocket ss(ssa);
SocketReactor reactor; SocketReactor reactor;
SocketAcceptor<EchoServiceHandler> acceptor(ss, reactor); SocketAcceptor<EchoServiceHandler> acceptor(ss, reactor);
SocketAddress sa("localhost", ss.address().port()); SocketAddress sa("127.0.0.1", ss.address().port());
SocketConnector<ClientServiceHandler> connector(sa, reactor); SocketConnector<ClientServiceHandler> connector(sa, reactor);
ClientServiceHandler::setOnce(true); ClientServiceHandler::setOnce(true);
ClientServiceHandler::resetData(); ClientServiceHandler::resetData();
@@ -334,7 +334,7 @@ void SocketReactorTest::testSetSocketReactor()
SocketReactor reactor; SocketReactor reactor;
SocketAcceptor<EchoServiceHandler> acceptor(ss); SocketAcceptor<EchoServiceHandler> acceptor(ss);
acceptor.setReactor(reactor); acceptor.setReactor(reactor);
SocketAddress sa("localhost", ss.address().port()); SocketAddress sa("127.0.0.1", ss.address().port());
SocketConnector<ClientServiceHandler> connector(sa, reactor); SocketConnector<ClientServiceHandler> connector(sa, reactor);
ClientServiceHandler::setOnce(true); ClientServiceHandler::setOnce(true);
ClientServiceHandler::resetData(); ClientServiceHandler::resetData();
@@ -353,7 +353,7 @@ void SocketReactorTest::testParallelSocketReactor()
ServerSocket ss(ssa); ServerSocket ss(ssa);
SocketReactor reactor; SocketReactor reactor;
ParallelSocketAcceptor<EchoServiceHandler, SocketReactor> acceptor(ss, reactor); ParallelSocketAcceptor<EchoServiceHandler, SocketReactor> acceptor(ss, reactor);
SocketAddress sa("localhost", ss.address().port()); SocketAddress sa("127.0.0.1", ss.address().port());
SocketConnector<ClientServiceHandler> connector1(sa, reactor); SocketConnector<ClientServiceHandler> connector1(sa, reactor);
SocketConnector<ClientServiceHandler> connector2(sa, reactor); SocketConnector<ClientServiceHandler> connector2(sa, reactor);
SocketConnector<ClientServiceHandler> connector3(sa, reactor); SocketConnector<ClientServiceHandler> connector3(sa, reactor);
@@ -390,7 +390,7 @@ void SocketReactorTest::testSocketConnectorTimeout()
SocketAddress ssa; SocketAddress ssa;
ServerSocket ss(ssa); ServerSocket ss(ssa);
SocketReactor reactor; SocketReactor reactor;
SocketAddress sa("localhost", ss.address().port()); SocketAddress sa("127.0.0.1", ss.address().port());
SocketConnector<ClientServiceHandler> connector(sa, reactor); SocketConnector<ClientServiceHandler> connector(sa, reactor);
reactor.run(); reactor.run();
assert (ClientServiceHandler::timeout()); assert (ClientServiceHandler::timeout());

View File

@@ -49,7 +49,7 @@ void SocketStreamTest::testStreamEcho()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
SocketStream str(ss); SocketStream str(ss);
str << "hello"; str << "hello";
assert (str.good()); assert (str.good());
@@ -72,7 +72,7 @@ void SocketStreamTest::testLargeStreamEcho()
const int msgSize = 64000; const int msgSize = 64000;
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
SocketStream str(ss); SocketStream str(ss);
ss.setSendBufferSize(msgSize); ss.setSendBufferSize(msgSize);
ss.setReceiveBufferSize(msgSize); ss.setReceiveBufferSize(msgSize);
@@ -100,7 +100,7 @@ void SocketStreamTest::testEOF()
{ {
EchoServer echoServer; EchoServer echoServer;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
str << "hello"; str << "hello";
assert (str.good()); assert (str.good());
str.flush(); str.flush();

View File

@@ -55,7 +55,7 @@ void SocketTest::testEcho()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
int n = ss.sendBytes("hello", 5); int n = ss.sendBytes("hello", 5);
assert (n == 5); assert (n == 5);
char buffer[256]; char buffer[256];
@@ -70,7 +70,7 @@ void SocketTest::testPoll()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
Stopwatch sw; Stopwatch sw;
sw.start(); sw.start();
Timespan timeout(1000000); Timespan timeout(1000000);
@@ -95,7 +95,7 @@ void SocketTest::testAvailable()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
Timespan timeout(1000000); Timespan timeout(1000000);
ss.sendBytes("hello", 5); ss.sendBytes("hello", 5);
char buffer[256]; char buffer[256];
@@ -135,7 +135,7 @@ void SocketTest::testFIFOBuffer()
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
int n = ss.sendBytes(f); int n = ss.sendBytes(f);
assert (n == 5); assert (n == 5);
assert(1 == _notToReadable); assert(1 == _notToReadable);
@@ -172,7 +172,7 @@ void SocketTest::testConnect()
serv.listen(); serv.listen();
StreamSocket ss; StreamSocket ss;
Timespan timeout(250000); 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); Timespan timeout(250000);
try try
{ {
ss.connect(SocketAddress("localhost", port)); ss.connect(SocketAddress("127.0.0.1", port));
fail("connection refused - must throw"); fail("connection refused - must throw");
} }
catch (ConnectionRefusedException&) catch (ConnectionRefusedException&)
@@ -207,7 +207,7 @@ void SocketTest::testConnectRefusedNB()
Timespan timeout(2, 0); Timespan timeout(2, 0);
try try
{ {
ss.connect(SocketAddress("localhost", port), timeout); ss.connect(SocketAddress("127.0.0.1", port), timeout);
fail("connection refused - must throw"); fail("connection refused - must throw");
} }
catch (TimeoutException&) catch (TimeoutException&)
@@ -223,7 +223,7 @@ void SocketTest::testNonBlocking()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
ss.setBlocking(false); ss.setBlocking(false);
Timespan timeout(1000000); Timespan timeout(1000000);
@@ -247,7 +247,7 @@ void SocketTest::testAddress()
serv.bind(SocketAddress()); serv.bind(SocketAddress());
serv.listen(); serv.listen();
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", serv.address().port())); ss.connect(SocketAddress("127.0.0.1", serv.address().port()));
StreamSocket css = serv.acceptConnection(); StreamSocket css = serv.acceptConnection();
assert (css.peerAddress().host() == ss.address().host()); assert (css.peerAddress().host() == ss.address().host());
assert (css.peerAddress().port() == ss.address().port()); assert (css.peerAddress().port() == ss.address().port());
@@ -309,7 +309,7 @@ void SocketTest::testTimeout()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
Timespan timeout0 = ss.getReceiveTimeout(); Timespan timeout0 = ss.getReceiveTimeout();
Timespan timeout(250000); Timespan timeout(250000);
@@ -347,7 +347,7 @@ void SocketTest::testTimeout()
void SocketTest::testBufferSize() void SocketTest::testBufferSize()
{ {
EchoServer echoServer; EchoServer echoServer;
SocketAddress sa("localhost", 1234); SocketAddress sa("127.0.0.1", 1234);
StreamSocket ss(sa.family()); StreamSocket ss(sa.family());
int osz = ss.getSendBufferSize(); int osz = ss.getSendBufferSize();
@@ -371,7 +371,7 @@ void SocketTest::testOptions()
{ {
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
ss.setLinger(true, 20); ss.setLinger(true, 20);
bool f; bool f;
@@ -405,7 +405,7 @@ void SocketTest::testSelect()
EchoServer echoServer; EchoServer echoServer;
StreamSocket ss; StreamSocket ss;
ss.connect(SocketAddress("localhost", echoServer.port())); ss.connect(SocketAddress("127.0.0.1", echoServer.port()));
Socket::SocketList readList; Socket::SocketList readList;
Socket::SocketList writeList; Socket::SocketList writeList;
@@ -442,8 +442,8 @@ void SocketTest::testSelect2()
EchoServer echoServer1; EchoServer echoServer1;
EchoServer echoServer2; EchoServer echoServer2;
StreamSocket ss1(SocketAddress("localhost", echoServer1.port())); StreamSocket ss1(SocketAddress("127.0.0.1", echoServer1.port()));
StreamSocket ss2(SocketAddress("localhost", echoServer2.port())); StreamSocket ss2(SocketAddress("127.0.0.1", echoServer2.port()));
Socket::SocketList readList; Socket::SocketList readList;
Socket::SocketList writeList; Socket::SocketList writeList;

View File

@@ -84,7 +84,7 @@ void TCPServerTest::testOneConnection()
assert (srv.queuedConnections() == 0); assert (srv.queuedConnections() == 0);
assert (srv.totalConnections() == 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 ss1(sa);
std::string data("hello, world"); std::string data("hello, world");
ss1.sendBytes(data.data(), (int) data.size()); ss1.sendBytes(data.data(), (int) data.size());
@@ -111,7 +111,7 @@ void TCPServerTest::testTwoConnections()
assert (srv.queuedConnections() == 0); assert (srv.queuedConnections() == 0);
assert (srv.totalConnections() == 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 ss1(sa);
StreamSocket ss2(sa); StreamSocket ss2(sa);
std::string data("hello, world"); std::string data("hello, world");
@@ -159,7 +159,7 @@ void TCPServerTest::testMultiConnections()
assert (srv.queuedConnections() == 0); assert (srv.queuedConnections() == 0);
assert (srv.totalConnections() == 0); assert (srv.totalConnections() == 0);
SocketAddress sa("localhost", svs.address().port()); SocketAddress sa("127.0.0.1", svs.address().port());
StreamSocket ss1(sa); StreamSocket ss1(sa);
StreamSocket ss2(sa); StreamSocket ss2(sa);
StreamSocket ss3(sa); StreamSocket ss3(sa);

View File

@@ -119,7 +119,7 @@ void WebSocketTest::testWebSocket()
Poco::Thread::sleep(200); 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); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
HTTPResponse response; HTTPResponse response;
WebSocket ws(cs, request, response); WebSocket ws(cs, request, response);
@@ -200,7 +200,7 @@ void WebSocketTest::testWebSocketLarge()
Poco::Thread::sleep(200); 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); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
HTTPResponse response; HTTPResponse response;
WebSocket ws(cs, request, response); WebSocket ws(cs, request, response);
@@ -232,7 +232,7 @@ void WebSocketTest::testOneLargeFrame(int msgSize)
Poco::Thread::sleep(200); 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); HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
HTTPResponse response; HTTPResponse response;
WebSocket ws(cs, request, response); WebSocket ws(cs, request, response);