aboutsummaryrefslogtreecommitdiff
path: root/src/test.cpp
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-02-15 14:28:41 +0000
committerLoic Blot <loic.blot@unix-experience.fr>2015-02-15 14:30:34 +0000
commit8aebc31a173fa3e6b80f25219b23131d9974a160 (patch)
tree8a0d27a221ec83fe450eb057f758e15a61fe231f /src/test.cpp
parenta3e2b3e40467e44ff068c5893bd6ccd3a695db61 (diff)
downloadminetest-8aebc31a173fa3e6b80f25219b23131d9974a160.tar.gz
minetest-8aebc31a173fa3e6b80f25219b23131d9974a160.tar.bz2
minetest-8aebc31a173fa3e6b80f25219b23131d9974a160.zip
Fix unit test if there isn't a localhost address (for example FreeBSD jails), second part
Diffstat (limited to 'src/test.cpp')
-rw-r--r--src/test.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/test.cpp b/src/test.cpp
index ed92ad43a..43955b86f 100644
--- a/src/test.cpp
+++ b/src/test.cpp
@@ -1865,9 +1865,24 @@ struct TestConnection: public TestBase
Handler hand_server("server");
Handler hand_client("client");
+ Address address(0, 0, 0, 0, 30001);
+ Address bind_addr(0, 0, 0, 0, 30001);
+ /*
+ * Try to use the bind_address for servers with no localhost address
+ * For example: FreeBSD jails
+ */
+ std::string bind_str = g_settings->get("bind_address");
+ try {
+ bind_addr.Resolve(bind_str.c_str());
+
+ if (!bind_addr.isIPv6()) {
+ address = bind_addr;
+ }
+ } catch (ResolveError &e) {
+ }
+
infostream<<"** Creating server Connection"<<std::endl;
con::Connection server(proto_id, 512, 5.0, false, &hand_server);
- Address address(0,0,0,0, 30001);
server.Serve(address);
infostream<<"** Creating client Connection"<<std::endl;
@@ -1878,7 +1893,11 @@ struct TestConnection: public TestBase
sleep_ms(50);
- Address server_address(127,0,0,1, 30001);
+ Address server_address(127, 0, 0, 1, 30001);
+ if (address != Address(0, 0, 0, 0, 30001)) {
+ server_address = bind_addr;
+ }
+
infostream<<"** running client.Connect()"<<std::endl;
client.Connect(server_address);