summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-03-01 21:33:36 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-03-01 21:33:36 +0000
commitf56230eaa511dbfa02759b1b1e4e85769cd80aae (patch)
tree8cc07bd88ba6cd33991b3467c04380934dd839d1 /qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
parent7dd86708f3542c03118ded5b8db74328cef71c84 (diff)
downloadqpid-python-f56230eaa511dbfa02759b1b1e4e85769cd80aae.tar.gz
QPID-6424 : Implement Connection.Redirect in 0-8/9/9-1
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1663170 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java')
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index 0847a49e07..cb145aac88 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -1544,7 +1544,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
virtualHostStr = virtualHostName == null ? null : virtualHostName.toString();
}
- VirtualHostImpl virtualHost = ((AmqpPort)getPort()).getVirtualHost(virtualHostStr);
+ VirtualHostImpl<?,?,?> virtualHost = ((AmqpPort)getPort()).getVirtualHost(virtualHostStr);
if (virtualHost == null)
{
@@ -1557,8 +1557,16 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
// Check virtualhost access
if (virtualHost.getState() != State.ACTIVE)
{
- closeConnection(AMQConstant.CONNECTION_FORCED,
- "Virtual host '" + virtualHost.getName() + "' is not active",0);
+ String redirectHost = virtualHost.getRedirectHost(getPort());
+ if(redirectHost != null)
+ {
+ closeConnection(0, new AMQFrame(0,new ConnectionRedirectBody(getProtocolVersion(),AMQShortString.valueOf(redirectHost), null)));
+ }
+ else
+ {
+ closeConnection(AMQConstant.CONNECTION_FORCED,
+ "Virtual host '" + virtualHost.getName() + "' is not active", 0);
+ }
}
else
@@ -1754,7 +1762,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
_logger.info("Locale selected: " + locale);
SubjectCreator subjectCreator = getSubjectCreator();
- SaslServer ss = null;
+ SaslServer ss;
try
{
ss = subjectCreator.createSaslServer(String.valueOf(mechanism),