Author: gsim
Date: Mon Mar 31 03:44:10 2008
New Revision: 642959
URL: http://svn.apache.org/viewvc?rev=642959&view=rev
Log:
Prevent broker exit on receiving connection with invalid protocol version.
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp?rev=642959&r1=642958&r2=642959&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp Mon Mar 31
03:44:10 2008
@@ -27,6 +27,7 @@
#include "Thread.h"
#include "qpid/sys/ConnectionOutputHandler.h"
+#include "qpid/framing/AMQP_HighestVersion.h"
#include "qpid/framing/reply_exceptions.h"
#include "qpid/framing/ProtocolInitiation.h"
#include "qpid/log/Statement.h"
@@ -247,10 +248,11 @@
QPID_LOG(debug, "RECV [" << identifier << "] INIT(" <<
protocolInit << ")");
codec = factory->create(protocolInit.getVersion(), *this,
identifier);
if (!codec) {
- // FIXME aconway 2008-03-18: send valid version header & close
connection.
- // FIXME aconway 2008-03-18: exception type
- throw Exception(
- QPID_MSG("Protocol version not supported: " <<
protocolInit));
+ //TODO: may still want to revise this...
+ //send valid version header & close connection.
+
write(framing::ProtocolInitiation(framing::highestProtocolVersion));
+ readError = true;
+ aio->queueWriteClose();
}
}
}