* ack packets with a payload, even if they have ID=0 (duh)

* properly implement the connection timeout
* make sure we clear the outbound packets on close
* don't b0rk on repeated close() calls
This commit is contained in:
jrandom
2004-11-13 09:49:31 +00:00
committed by zzz
parent 5f7982540f
commit 258244fed8
8 changed files with 77 additions and 28 deletions

View File

@@ -7,7 +7,9 @@ import java.util.HashSet;
import net.i2p.I2PAppContext;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
import net.i2p.data.ByteArray;
import net.i2p.data.SessionKey;
import net.i2p.util.ByteCache;
import net.i2p.util.Log;
/**
@@ -18,14 +20,20 @@ class PacketQueue {
private Log _log;
private I2PSession _session;
private byte _buf[];
private ByteCache _cache = ByteCache.getInstance(64, 36*1024);
public PacketQueue(I2PAppContext context, I2PSession session) {
_context = context;
_session = session;
_buf = new byte[36*1024];
_buf = _cache.acquire().getData(); // new byte[36*1024];
_log = context.logManager().getLog(PacketQueue.class);
}
protected void finalize() throws Throwable {
_cache.release(new ByteArray(_buf));
super.finalize();
}
/**
* Add a new packet to be sent out ASAP
*/