You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/07/27 07:52:41 UTC
[24/42] incubator-ignite git commit: Rename variable byte buffer.
Rename variable byte buffer.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/58c5a122
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/58c5a122
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/58c5a122
Branch: refs/heads/ignite-1139
Commit: 58c5a1222b3d2cec413801cb415bb45ffc290f3c
Parents: 65feef6
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jul 23 18:44:41 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jul 23 18:44:41 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/nio/GridNioServer.java | 30 +++++++++++++++-----
1 file changed, 23 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/58c5a122/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index d3f439a..b57bf22 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -70,6 +70,9 @@ public class GridNioServer<T> {
/** SSL system data buffer metadata key. */
private static final int BUF_SSL_SYSTEM_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
+ /** SSL write buf limit. */
+ private static final int WRITE_BUF_LIMIT = GridNioSessionMetaKey.nextUniqueKey();
+
/** Accept worker thread. */
@GridToStringExclude
private final IgniteThread acceptThread;
@@ -920,6 +923,10 @@ public class GridNioServer<T> {
}
ByteBuffer buf = ses.writeBuffer();
+
+ if (ses.meta(WRITE_BUF_LIMIT) != null)
+ buf.limit((int)ses.meta(WRITE_BUF_LIMIT));
+
NioOperationFuture<?> req = ses.removeMeta(NIO_OPERATION.ordinal());
List<NioOperationFuture<?>> doneFuts = null;
@@ -971,19 +978,24 @@ public class GridNioServer<T> {
writer.reset();
}
+ int sesBufLimit = buf.limit();
+ int sesCap = buf.capacity();
+
buf.flip();
+ buf = sslFilter.encrypt(ses, buf);
+
ByteBuffer sesBuf = ses.writeBuffer();
- buf = sslFilter.encrypt(ses, sesBuf);
+ sesBuf.clear();
- int expand = sesBuf.limit() - buf.limit();
+ if (sesCap - buf.limit() < 0) {
+ int limit = sesBufLimit + (sesCap - buf.limit()) - 100;
- sesBuf.clear();
+ ses.addMeta(WRITE_BUF_LIMIT, limit);
- // SSL data more then socket buffer size
- if (expand < 0)
- sesBuf.limit(sesBuf.limit() + expand - 100);
+ sesBuf.limit(limit);
+ }
assert buf.hasRemaining();
@@ -1022,8 +1034,12 @@ public class GridNioServer<T> {
break;
}
- else
+ else {
buf = ses.writeBuffer();
+
+ if (ses.meta(WRITE_BUF_LIMIT) != null)
+ buf.limit((int)ses.meta(WRITE_BUF_LIMIT));
+ }
}
}
finally {