aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsync
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2014-07-19 00:05:40 -0700
committerKoushik Dutta <koushd@gmail.com>2014-07-19 00:05:40 -0700
commit1d43efe595480565fce5389ebe90a6e961509c73 (patch)
tree699a1cfcb35ad95460c763350735a38eec62af90 /AndroidAsync
parent0ef3156bd76047a36d1235fe9bc164f690e55715 (diff)
downloadAndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.tar.gz
AndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.tar.bz2
AndroidAsync-1d43efe595480565fce5389ebe90a6e961509c73.zip
remove datasink.write(ByteBuffer).
Diffstat (limited to 'AndroidAsync')
-rw-r--r--AndroidAsync/AndroidAsync-AndroidAsync.iml6
-rw-r--r--AndroidAsync/build.gradle18
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java32
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java76
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java26
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/DataSink.java4
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java17
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/Util.java24
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/dns/Dns.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java14
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java6
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java17
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java9
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java21
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java10
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java17
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/util/Allocator.java4
-rw-r--r--AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java2
-rw-r--r--AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java2
21 files changed, 63 insertions, 248 deletions
diff --git a/AndroidAsync/AndroidAsync-AndroidAsync.iml b/AndroidAsync/AndroidAsync-AndroidAsync.iml
index 1cdbd09..f88736b 100644
--- a/AndroidAsync/AndroidAsync-AndroidAsync.iml
+++ b/AndroidAsync/AndroidAsync-AndroidAsync.iml
@@ -60,6 +60,12 @@
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
+ <content url="file://$MODULE_DIR$/../compat">
+ <sourceFolder url="file://$MODULE_DIR$/../compat" isTestSource="false" />
+ </content>
+ <content url="file://$MODULE_DIR$/../conscrypt">
+ <sourceFolder url="file://$MODULE_DIR$/../conscrypt" isTestSource="false" />
+ </content>
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
diff --git a/AndroidAsync/build.gradle b/AndroidAsync/build.gradle
index 5f19dba..e193153 100644
--- a/AndroidAsync/build.gradle
+++ b/AndroidAsync/build.gradle
@@ -16,8 +16,8 @@ android {
jniLibs.srcDirs = ['libs/']
java.srcDirs=['src/'
-// , '../conscrypt/'
-// , '../compat/'
+ , '../conscrypt/'
+ , '../compat/'
]
}
androidTest.java.srcDirs=['test/src/']
@@ -29,20 +29,6 @@ android {
abortOnError false
}
- defaultConfig {
- minSdkVersion 9
- targetSdkVersion 19
- }
-
- lintOptions {
- abortOnError false
- }
-
- defaultConfig {
- minSdkVersion 9
- targetSdkVersion 19
- }
-
compileSdkVersion 19
buildToolsVersion "20.0.0"
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
index 9a15cb2..3eb5a3c 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
@@ -102,38 +102,6 @@ public class AsyncNetworkSocket implements AsyncSocket {
mKey.interestOps(SelectionKey.OP_READ);
}
}
-
- @Override
- public void write(final ByteBuffer b) {
- if (mServer.getAffinity() != Thread.currentThread()) {
- mServer.run(new Runnable() {
- @Override
- public void run() {
- write(b);
- }
- });
- return;
- }
- try {
- if (!mChannel.isConnected()) {
- assert !mChannel.isChunked();
- return;
- }
-
- // keep writing until the the socket can't write any more, or the
- // data is exhausted.
- int before = b.remaining();
- mChannel.write(b);
- handleRemaining(b.remaining());
- mServer.onDataSent(before - b.remaining());
- }
- catch (IOException ex) {
- closeInternal();
- reportEndPending(ex);
- reportClose(ex);
- }
- }
-
private ByteBufferList pending = new ByteBufferList();
// private ByteBuffer[] buffers = new ByteBuffer[8];
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
index 36d087c..7f60999 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
@@ -244,7 +244,7 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
}
if (status == HandshakeStatus.NEED_WRAP) {
- write(ByteBufferList.EMPTY_BYTEBUFFER);
+ write(writeList);
}
if (status == HandshakeStatus.NEED_UNWRAP) {
@@ -315,65 +315,15 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
}
}
- private void writeTmp(ByteBuffer mWriteTmp) {
- mWriteTmp.flip();
- if (mWriteTmp.remaining() > 0)
- mSink.write(mWriteTmp);
- assert !mWriteTmp.hasRemaining();
- }
-
-
int calculateAlloc(int remaining) {
// alloc 50% more than we need for writing
int alloc = remaining * 3 / 2;
if (alloc == 0)
- alloc = 8182;
+ alloc = 8192;
return alloc;
}
- @Override
- public void write(ByteBuffer bb) {
- if (mWrapping)
- return;
- if (mSink.remaining() > 0)
- return;
- mWrapping = true;
- int remaining;
- SSLEngineResult res = null;
- ByteBuffer mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
- do {
- // if the handshake is finished, don't send
- // 0 bytes of data, since that makes the ssl connection die.
- // it wraps a 0 byte package, and craps out.
- if (finishedHandshake && bb.remaining() == 0) {
- mWrapping = false;
- return;
- }
- remaining = bb.remaining();
- try {
- res = engine.wrap(bb, mWriteTmp);
- writeTmp(mWriteTmp);
- int previousCapacity = mWriteTmp.capacity();
- ByteBufferList.reclaim(mWriteTmp);
- mWriteTmp = null;
- if (res.getStatus() == Status.BUFFER_OVERFLOW) {
- mWriteTmp = ByteBufferList.obtain(previousCapacity * 2);
- remaining = -1;
- }
- else {
- mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
- }
- handleHandshakeStatus(res.getHandshakeStatus());
- }
- catch (SSLException e) {
- report(e);
- }
- }
- while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0);
- ByteBufferList.reclaim(mWriteTmp);
- mWrapping = false;
- }
-
+ ByteBufferList writeList = new ByteBufferList();
@Override
public void write(ByteBufferList bb) {
if (mWrapping)
@@ -383,7 +333,7 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
mWrapping = true;
int remaining;
SSLEngineResult res = null;
- ByteBuffer mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
+ ByteBuffer writeBuf = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
do {
// if the handshake is finished, don't send
// 0 bytes of data, since that makes the ssl connection die.
@@ -395,18 +345,21 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
remaining = bb.remaining();
try {
ByteBuffer[] arr = bb.getAllArray();
- res = engine.wrap(arr, mWriteTmp);
+ res = engine.wrap(arr, writeBuf);
bb.addAll(arr);
- writeTmp(mWriteTmp);
- int previousCapacity = mWriteTmp.capacity();
- ByteBufferList.reclaim(mWriteTmp);
- mWriteTmp = null;
+ writeBuf.flip();
+ writeList.add(writeBuf);
+ assert !writeList.hasRemaining();
+ if (writeList.remaining() > 0)
+ mSink.write(writeList);
+ int previousCapacity = writeBuf.capacity();
+ writeBuf = null;
if (res.getStatus() == Status.BUFFER_OVERFLOW) {
- mWriteTmp = ByteBufferList.obtain(previousCapacity * 2);
+ writeBuf = ByteBufferList.obtain(previousCapacity * 2);
remaining = -1;
}
else {
- mWriteTmp = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
+ writeBuf = ByteBufferList.obtain(calculateAlloc(bb.remaining()));
handleHandshakeStatus(res.getHandshakeStatus());
}
}
@@ -415,7 +368,6 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
}
}
while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0);
- ByteBufferList.reclaim(mWriteTmp);
mWrapping = false;
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java b/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java
index ed4f87f..8daa836 100644
--- a/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java
+++ b/AndroidAsync/src/com/koushikdutta/async/BufferedDataSink.java
@@ -45,27 +45,6 @@ public class BufferedDataSink implements DataSink {
ByteBufferList mPendingWrites = new ByteBufferList();
@Override
- public void write(ByteBuffer bb) {
- if (remaining() >= getMaxBuffer())
- return;
-
- boolean needsWrite = true;
- if (!mPendingWrites.hasRemaining()) {
- needsWrite = false;
- mDataSink.write(bb);
- }
-
- if (bb.hasRemaining()) {
- ByteBuffer dup = ByteBufferList.obtain(bb.remaining());
- dup.put(bb);
- dup.flip();
- mPendingWrites.add(dup);
- if (needsWrite)
- mDataSink.write(mPendingWrites);
- }
- }
-
- @Override
public void write(ByteBufferList bb) {
write(bb, false);
}
@@ -114,11 +93,6 @@ public class BufferedDataSink implements DataSink {
return mDataSink.isOpen();
}
- @Override
- public void close() {
- mDataSink.close();
- }
-
boolean endPending;
@Override
public void end() {
diff --git a/AndroidAsync/src/com/koushikdutta/async/DataSink.java b/AndroidAsync/src/com/koushikdutta/async/DataSink.java
index 1866be1..7c6905c 100644
--- a/AndroidAsync/src/com/koushikdutta/async/DataSink.java
+++ b/AndroidAsync/src/com/koushikdutta/async/DataSink.java
@@ -1,18 +1,14 @@
package com.koushikdutta.async;
-import java.nio.ByteBuffer;
-
import com.koushikdutta.async.callback.CompletedCallback;
import com.koushikdutta.async.callback.WritableCallback;
public interface DataSink {
- public void write(ByteBuffer bb);
public void write(ByteBufferList bb);
public void setWriteableCallback(WritableCallback handler);
public WritableCallback getWriteableCallback();
public boolean isOpen();
- public void close();
public void end();
public void setClosedCallback(CompletedCallback handler);
public CompletedCallback getClosedCallback();
diff --git a/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java b/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java
index 448eb3b..8aa1806 100644
--- a/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java
+++ b/AndroidAsync/src/com/koushikdutta/async/FilteredDataSink.java
@@ -1,7 +1,5 @@
package com.koushikdutta.async;
-import java.nio.ByteBuffer;
-
public class FilteredDataSink extends BufferedDataSink {
public FilteredDataSink(DataSink sink) {
super(sink);
@@ -13,21 +11,6 @@ public class FilteredDataSink extends BufferedDataSink {
}
@Override
- public final void write(ByteBuffer bb) {
- // don't filter and write if currently buffering, unless we know
- // that the buffer can fit the entirety of the filtered result
- if (isBuffering() && getMaxBuffer() != Integer.MAX_VALUE)
- return;
- ByteBufferList list = new ByteBufferList();
- byte[] bytes = new byte[bb.remaining()];
- bb.get(bytes);
- assert bb.remaining() == 0;
- list.add(ByteBuffer.wrap(bytes));
- ByteBufferList filtered = filter(list);
- super.write(filtered, true);
- }
-
- @Override
public final void write(ByteBufferList bb) {
// don't filter and write if currently buffering, unless we know
// that the buffer can fit the entirety of the filtered result
diff --git a/AndroidAsync/src/com/koushikdutta/async/Util.java b/AndroidAsync/src/com/koushikdutta/async/Util.java
index c065b52..18c3736 100644
--- a/AndroidAsync/src/com/koushikdutta/async/Util.java
+++ b/AndroidAsync/src/com/koushikdutta/async/Util.java
@@ -3,6 +3,7 @@ package com.koushikdutta.async;
import com.koushikdutta.async.callback.CompletedCallback;
import com.koushikdutta.async.callback.DataCallback;
import com.koushikdutta.async.callback.WritableCallback;
+import com.koushikdutta.async.util.Allocator;
import com.koushikdutta.async.wrapper.AsyncSocketWrapper;
import com.koushikdutta.async.wrapper.DataEmitterWrapper;
@@ -67,7 +68,7 @@ public class Util {
private void cleanup() {
ds.setClosedCallback(null);
ds.setWriteableCallback(null);
- ByteBufferList.reclaim(pending);
+ pending.recycle();
pending = null;
try {
is.close();
@@ -76,29 +77,28 @@ public class Util {
e.printStackTrace();
}
}
- ByteBuffer pending;
- int mToAlloc = 0;
- int maxAlloc = 256 * 1024;
+ ByteBufferList pending = new ByteBufferList();
+ Allocator allocator = new Allocator();
@Override
public void onWriteable() {
try {
do {
- if (pending == null || pending.remaining() == 0) {
- ByteBufferList.reclaim(pending);
- pending = ByteBufferList.obtain(Math.min(Math.max(mToAlloc, 2 << 11), maxAlloc));
+ if (!pending.hasRemaining()) {
+ ByteBuffer b = allocator.allocate();
- long toRead = Math.min(max - totalRead, pending.capacity());
- int read = is.read(pending.array(), 0, (int)toRead);
+ long toRead = Math.min(max - totalRead, b.capacity());
+ int read = is.read(b.array(), 0, (int)toRead);
if (read == -1 || totalRead == max) {
cleanup();
wrapper.onCompleted(null);
return;
}
- mToAlloc = read * 2;
+ allocator.track(read);
totalRead += read;
- pending.position(0);
- pending.limit(read);
+ b.position(0);
+ b.limit(read);
+ pending.add(b);
}
ds.write(pending);
diff --git a/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java b/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java
index bd1e11b..bc276d6 100644
--- a/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java
+++ b/AndroidAsync/src/com/koushikdutta/async/dns/Dns.java
@@ -143,7 +143,7 @@ public class Dns {
}
});
if (!multicast)
- dgram.write(packet);
+ dgram.write(new ByteBufferList(packet));
else
dgram.send(new InetSocketAddress("224.0.0.251", 5353), packet);
return ret;
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java
index 109769a..fcf0dd8 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponse.java
@@ -6,7 +6,7 @@ import com.koushikdutta.async.DataSink;
import com.koushikdutta.async.callback.CompletedCallback;
import com.koushikdutta.async.http.libcore.ResponseHeaders;
-public interface AsyncHttpResponse extends AsyncSocket {
+public interface AsyncHttpResponse extends DataEmitter {
public void setEndCallback(CompletedCallback handler);
public CompletedCallback getEndCallback();
public ResponseHeaders getHeaders();
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
index 2b77b56..1bbf46c 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
@@ -20,7 +20,7 @@ import com.koushikdutta.async.util.Charsets;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
-abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements AsyncHttpResponse {
+abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements AsyncSocket, AsyncHttpResponse {
private AsyncHttpRequestBody mWriter;
public AsyncSocket getSocket() {
@@ -183,13 +183,6 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn
}
DataSink mSink;
-
- @Override
- public void write(ByteBuffer bb) {
- assertContent();
- mSink.write(bb);
- }
-
@Override
public void write(ByteBufferList bb) {
assertContent();
@@ -198,11 +191,10 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn
@Override
public void end() {
-
- write(ByteBuffer.wrap(new byte[0]));
+ if (mSink instanceof ChunkedOutputFilter)
+ mSink.end();
}
-
@Override
public void setWriteableCallback(WritableCallback handler) {
mSink.setWriteableCallback(handler);
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
index 851d77d..b20099b 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
@@ -713,12 +713,6 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
}
@Override
- public void write(ByteBuffer bb) {
- // it's gonna write headers and stuff... whatever
- bb.limit(bb.position());
- }
-
- @Override
public void write(ByteBufferList bb) {
// it's gonna write headers and stuff... whatever
bb.recycle();
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java
index 8fabcb2..eda5556 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java
@@ -96,7 +96,7 @@ public class WebSocketImpl implements WebSocket {
}
@Override
protected void sendFrame(byte[] frame) {
- mSink.write(ByteBuffer.wrap(frame));
+ mSink.write(new ByteBufferList(frame));
}
};
mParser.setMasking(masking);
@@ -215,17 +215,17 @@ public class WebSocketImpl implements WebSocket {
@Override
public void send(byte[] bytes) {
- mSink.write(ByteBuffer.wrap(mParser.frame(bytes)));
+ mSink.write(new ByteBufferList((mParser.frame(bytes))));
}
@Override
public void send(byte[] bytes, int offset, int len) {
- mSink.write(ByteBuffer.wrap(mParser.frame(bytes, offset, len)));
+ mSink.write(new ByteBufferList(mParser.frame(bytes, offset, len)));
}
@Override
public void send(String string) {
- mSink.write(ByteBuffer.wrap(mParser.frame(string)));
+ mSink.write(new ByteBufferList((mParser.frame(string))));
}
private StringCallback mStringCallback;
@@ -261,15 +261,6 @@ public class WebSocketImpl implements WebSocket {
}
@Override
- public void write(ByteBuffer bb) {
- byte[] buf = new byte[bb.remaining()];
- bb.get(buf);
- bb.position(0);
- bb.limit(0);
- send(buf);
- }
-
- @Override
public void write(ByteBufferList bb) {
byte[] buf = bb.getAllByteArray();
send(buf);
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java b/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java
index bec28c0..f0f18d3 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/filter/ChunkedOutputFilter.java
@@ -18,4 +18,13 @@ public class ChunkedOutputFilter extends FilteredDataSink {
bb.add(ByteBuffer.wrap("\r\n".getBytes()));
return bb;
}
+
+ @Override
+ public void end() {
+ setMaxBuffer(Integer.MAX_VALUE);
+ ByteBufferList fin = new ByteBufferList();
+ write(fin);
+ setMaxBuffer(0);
+ super.end();
+ }
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
index bd7211b..d1cb952 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
@@ -48,13 +48,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse {
if (HttpUtil.isKeepAlive(req.getHeaders().getHeaders()))
mRawHeaders.set("Connection", "Keep-Alive");
}
-
- @Override
- public void write(ByteBuffer bb) {
- if (bb.remaining() == 0)
- return;
- writeInternal(bb);
- }
@Override
public void write(ByteBufferList bb) {
@@ -63,15 +56,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse {
writeInternal(bb);
}
- private void writeInternal(ByteBuffer bb) {
- assert !mEnded;
- if (!mHasWritten) {
- initFirstWrite();
- return;
- }
- mSink.write(bb);
- }
-
private void writeInternal(ByteBufferList bb) {
assert !mEnded;
if (!mHasWritten) {
@@ -317,11 +301,6 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse {
}
@Override
- public void close() {
- mSocket.close();
- }
-
- @Override
public void setClosedCallback(CompletedCallback handler) {
mSink.setClosedCallback(handler);
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java
index c92f51c..484b6d4 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/AsyncSpdyConnection.java
@@ -46,6 +46,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler {
FrameReader reader;
FrameWriter writer;
Variant variant;
+ SpdySocket zero = new SpdySocket(0, false, false, null);
ByteBufferListSource source = new ByteBufferListSource();
Hashtable<Integer, SpdySocket> sockets = new Hashtable<Integer, SpdySocket>();
Protocol protocol;
@@ -138,11 +139,6 @@ public class AsyncSpdyConnection implements FrameReader.Handler {
}
@Override
- public void write(ByteBuffer bb) {
-
- }
-
- @Override
public void write(ByteBufferList bb) {
}
@@ -238,6 +234,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler {
private int nextStreamId;
@Override
public void headers(boolean outFinished, boolean inFinished, int streamId, int associatedStreamId, List<Header> headerBlock, HeadersMode headersMode) {
+ /*
if (pushedStream(streamId)) {
throw new AssertionError("push");
// pushHeadersLater(streamId, headerBlock, inFinished);
@@ -285,6 +282,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler {
// Update an existing stream.
stream.receiveHeaders(headerBlock, headersMode);
if (inFinished) stream.receiveFin();
+ */
}
@Override
@@ -318,7 +316,7 @@ public class AsyncSpdyConnection implements FrameReader.Handler {
if (peerInitialWindowSize != -1 && peerInitialWindowSize != priorWriteWindowSize) {
delta = peerInitialWindowSize - priorWriteWindowSize;
if (!receivedInitialPeerSettings) {
- addBytesToWriteWindow(delta);
+ zero.addBytesToWriteWindow(delta);
receivedInitialPeerSettings = true;
}
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
index bddf203..837a126 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
@@ -51,7 +51,7 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware {
return;
}
try {
- long ptr = (long)sslNativePointer.get(socket.getSSLEngine());
+ long ptr = (Long)sslNativePointer.get(socket.getSSLEngine());
byte[] proto = (byte[])nativeGetAlpnNegotiatedProtocol.invoke(null, ptr);
String protoString = new String(proto);
AsyncSpdyConnection connection = new AsyncSpdyConnection(socket, Protocol.get(protoString));
diff --git a/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java b/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java
index 13bb419..185a8b7 100644
--- a/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java
+++ b/AndroidAsync/src/com/koushikdutta/async/stream/OutputStreamDataSink.java
@@ -27,11 +27,6 @@ public class OutputStreamDataSink implements DataSink {
}
}
- @Override
- public void close() {
- end();
- }
-
AsyncServer server;
public OutputStreamDataSink(AsyncServer server, OutputStream stream) {
this.server = server;
@@ -48,18 +43,6 @@ public class OutputStreamDataSink implements DataSink {
}
@Override
- public void write(final ByteBuffer bb) {
- try {
- getOutputStream().write(bb.array(), bb.arrayOffset() + bb.position(), bb.remaining());
- }
- catch (IOException e) {
- reportClose(e);
- }
- bb.position(0);
- bb.limit(0);
- }
-
- @Override
public void write(final ByteBufferList bb) {
try {
while (bb.size() > 0) {
diff --git a/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java b/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java
index 608026d..c25c1a1 100644
--- a/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java
+++ b/AndroidAsync/src/com/koushikdutta/async/util/Allocator.java
@@ -21,6 +21,10 @@ public class Allocator {
}
public ByteBuffer allocate() {
+ return allocate(currentAlloc);
+ }
+
+ public ByteBuffer allocate(int currentAlloc) {
return ByteBufferList.obtain(Math.min(Math.max(currentAlloc, minAlloc), maxAlloc));
}
diff --git a/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java b/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java
index 1322e03..a50d910 100644
--- a/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java
+++ b/AndroidAsync/test/src/com/koushikdutta/async/test/ConscryptTests.java
@@ -186,7 +186,7 @@ public class ConscryptTests extends TestCase {
System.out.println("Done handshaking! Thank you come again.");
- long ptr = (long)sslNativePointer.get(engine);
+ long ptr = (Long)sslNativePointer.get(engine);
byte[] proto = (byte[]) nativeGetAlpnNegotiatedProtocol.invoke(null, ptr);
// byte[] proto = (byte[]) nativeGetNpnNegotiatedProtocol.invoke(null, ptr);
String protoString = new String(proto);
diff --git a/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java b/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java
index 44b44fc..ebaae9d 100644
--- a/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java
+++ b/AndroidAsync/test/src/com/koushikdutta/async/test/Issue59.java
@@ -33,7 +33,7 @@ public class Issue59 extends TestCase {
Util.writeAll(response, "foobarbeepboop".getBytes(), new CompletedCallback() {
@Override
public void onCompleted(Exception ex) {
- response.close();
+ response.end();
}
});
}