fix buffer fill/flush modes

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
This commit is contained in:
Ludovic Orban 2021-03-16 12:29:27 +01:00 committed by Simone Bordet
parent c2d8688feb
commit 60b660cf04
2 changed files with 4 additions and 2 deletions

View File

@ -96,7 +96,6 @@ public class QuicConnection extends AbstractConnection
try try
{ {
ByteBuffer cipherBuffer = byteBufferPool.acquire(LibQuiche.QUICHE_MIN_CLIENT_INITIAL_LEN + ServerDatagramEndPoint.ENCODED_ADDRESS_LENGTH, true); ByteBuffer cipherBuffer = byteBufferPool.acquire(LibQuiche.QUICHE_MIN_CLIENT_INITIAL_LEN + ServerDatagramEndPoint.ENCODED_ADDRESS_LENGTH, true);
BufferUtil.flipToFill(cipherBuffer);
while (true) while (true)
{ {
// Read data // Read data
@ -185,7 +184,7 @@ public class QuicConnection extends AbstractConnection
} }
} }
} }
BufferUtil.clearToFill(cipherBuffer); cipherBuffer.clear().flip();
} }
} }
catch (Throwable x) catch (Throwable x)

View File

@ -31,6 +31,7 @@ import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.FillInterest; import org.eclipse.jetty.io.FillInterest;
import org.eclipse.jetty.io.IdleTimeout; import org.eclipse.jetty.io.IdleTimeout;
import org.eclipse.jetty.io.ManagedSelector; import org.eclipse.jetty.io.ManagedSelector;
import org.eclipse.jetty.util.BufferUtil;
import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Callback;
import org.eclipse.jetty.util.thread.Scheduler; import org.eclipse.jetty.util.thread.Scheduler;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -122,6 +123,8 @@ public class ServerDatagramEndPoint extends IdleTimeout implements EndPoint, Man
@Override @Override
public int fill(ByteBuffer buffer) throws IOException public int fill(ByteBuffer buffer) throws IOException
{ {
BufferUtil.flipToFill(buffer);
int headerPosition = buffer.position(); int headerPosition = buffer.position();
buffer.position(buffer.position() + ENCODED_ADDRESS_LENGTH); buffer.position(buffer.position() + ENCODED_ADDRESS_LENGTH);
InetSocketAddress peer = (InetSocketAddress)channel.receive(buffer); InetSocketAddress peer = (InetSocketAddress)channel.receive(buffer);