From a1f11a1d0132ad45b5ec80063c9fc1e19b8095ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 7 Dec 2014 16:15:57 +0100 Subject: [PATCH] Fixed message relaying between multiple unconnected in server rack in internal mode. Again. --- src/main/scala/li/cil/oc/server/component/Server.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/server/component/Server.scala b/src/main/scala/li/cil/oc/server/component/Server.scala index 95798c707..d46cf5980 100644 --- a/src/main/scala/li/cil/oc/server/component/Server.scala +++ b/src/main/scala/li/cil/oc/server/component/Server.scala @@ -111,7 +111,9 @@ class Server(val rack: tileentity.ServerRack, val slot: Int) extends Environment // Ensure the message originated in our local network, to avoid infinite // recursion if two unconnected servers are in one server rack. if (rack.internalSwitch && message.name == "network.message" && - rack.sides(this.slot) == ForgeDirection.UNKNOWN && node.network.node(message.source.address) != null) { + rack.sides(this.slot) == ForgeDirection.UNKNOWN && // Only if we're in internal mode. + message.source != machine.node && // In this case it was relayed from another internal machine. + node.network.node(message.source.address) != null) { for (slot <- 0 until rack.servers.length) { rack.servers(slot) match { case Some(server) if server != this => server.machine.node.sendToNeighbors(message.name, message.data: _*)