From 00b0498362a4fcbd12ed0cf4b5b80bfd9510edd5 Mon Sep 17 00:00:00 2001
From: Robert Knop <prospero@lindenlab.com>
Date: Thu, 22 Jan 2009 23:53:36 +0000
Subject: [PATCH] Merging from production branch to trunk

svn merge -r108266:108604 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.25

One merge conflict, in indra/backbone/agent_linden_dollar.py, which was
very small, and resolved by Kartic & Prospero.
---
 indra/llmessage/message.cpp | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp
index d5f362d7800..4e6cda28806 100644
--- a/indra/llmessage/message.cpp
+++ b/indra/llmessage/message.cpp
@@ -2366,13 +2366,13 @@ void process_create_trusted_circuit(LLMessageSystem *msg, void **)
 	{
 		if( msg->getBlockUntrustedInterface() )
 		{
-			LL_WARNS("Messaging") << "Refusing trust on public interface from host: "
+			LL_WARNS("Messaging") << "Ignoring CreateTrustedCircuit on public interface from host: "
 				<< msg->getSender() << llendl;
 			return;
 		}
 		else
 		{
-			LL_WARNS("Messaging") << "Establishing trust on public interface from host: "
+			LL_WARNS("Messaging") << "Processing CreateTrustedCircuit on public interface from host: "
 				<< msg->getSender() << llendl;
 		}
 	}
@@ -2433,6 +2433,24 @@ void process_deny_trusted_circuit(LLMessageSystem *msg, void **)
 		//	Don't respond to requests that use the same end point ID
 		return;
 	}
+	
+	U32 untrusted_interface = msg->getUntrustedInterface().getAddress();
+	U32 last_interface = msg->getReceivingInterface().getAddress();
+	if ( ( untrusted_interface != INVALID_HOST_IP_ADDRESS ) && ( untrusted_interface == last_interface ) )
+	{
+		if( msg->getBlockUntrustedInterface() )
+		{
+			LL_WARNS("Messaging") << "Ignoring DenyTrustedCircuit on public interface from host: "
+				<< msg->getSender() << llendl;
+			return;
+		}
+		else
+		{
+			LL_WARNS("Messaging") << "Processing DenyTrustedCircuit on public interface from host: "
+				<< msg->getSender() << llendl;
+		}
+	}
+
 
 	// Assume that we require trust to proceed, so resend.
 	// This catches the case where a circuit that was trusted
-- 
GitLab