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();                
             }
         }
     }


Reply via email to