summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2010-12-23 17:10:46 +0000
committerAndrew Stitcher <astitcher@apache.org>2010-12-23 17:10:46 +0000
commit6f5316f95aa9b04312f175cc2abc8bf70655a3bf (patch)
tree91d76de22417a3b24fa21d7021140f3dac0754d2
parent8ffffbaf34737bcf30abcac585ec50145f815917 (diff)
downloadqpid-python-6f5316f95aa9b04312f175cc2abc8bf70655a3bf.tar.gz
Add in some useful rdma warnings when we reject a connection
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052321 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
index b356a48bf1..26f780726f 100644
--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
+++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
@@ -491,6 +491,7 @@ namespace Rdma {
case RDMA_CM_EVENT_CONNECT_REQUEST: {
// Make sure peer has sent params we can use
if (!conn_param.private_data || conn_param.private_data_len < sizeof(NConnectionParams)) {
+ QPID_LOG(warning, "Rdma: rejecting connection attempt: unusable connection parameters");
id->reject();
break;
}
@@ -499,7 +500,14 @@ namespace Rdma {
ConnectionParams cp = *rcp;
// Reject if requested msg size is bigger than we allow
- if (cp.maxRecvBufferSize > checkConnectionParams.maxRecvBufferSize) {
+ if (
+ cp.maxRecvBufferSize > checkConnectionParams.maxRecvBufferSize ||
+ cp.initialXmitCredit > checkConnectionParams.initialXmitCredit
+ ) {
+ QPID_LOG(warning, "Rdma: rejecting connection attempt: connection parameters out of range: ("
+ << cp.maxRecvBufferSize << ">" << checkConnectionParams.maxRecvBufferSize << " || "
+ << cp.initialXmitCredit << ">" << checkConnectionParams.initialXmitCredit
+ << ")");
id->reject(&checkConnectionParams);
break;
}
@@ -514,6 +522,7 @@ namespace Rdma {
id->accept(conn_param, rcp);
} else {
// Reject connection
+ QPID_LOG(warning, "Rdma: rejecting connection attempt: application policy");
id->reject();
}
break;