Update of /cvsroot/freenet/freenet/src/freenet
In directory sc8-pr-cvs1:/tmp/cvs-serv26912/src/freenet
Modified Files:
ConnectionHandler.java Version.java
Log Message:
6253:
Fix corruption bug with trailer sends, introduced in previous build.
Index: ConnectionHandler.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/ConnectionHandler.java,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -w -r1.186 -r1.187
--- ConnectionHandler.java 17 Oct 2003 01:43:28 -0000 1.186
+++ ConnectionHandler.java 17 Oct 2003 02:02:48 -0000 1.187
@@ -418,7 +418,7 @@
logDEBUG("Caught "+e+" in getPacket in registerOCM");
}
if(sentPacket != null)
- innerSendPacket(sentPacket.priority(), sentPacket);
+ innerSendPacket(sentPacket.priority());
if(receiveClosed.state() && receivingCount <= 0 &&
sendClosed.state() && trailerSendID == -1) {
logDEBUG("terminating at end of registerOCM");
@@ -1176,7 +1176,7 @@
", but
sentPacket = "+sentPacket+" ("+
this+")",
Logger.ERROR);
} else {
- innerSendPacket(sentPacket.priority(), sentPacket);
+ innerSendPacket(sentPacket.priority());
int sentPacketLength = mySentPacket.getLength();
int sentPacketMessages = mySentPacket.countMessages();
if(!sendClosed.state()) {
@@ -1988,9 +1988,20 @@
* Called by PeerHandler.innerSendMessageAsync
*/
public final boolean forceSendPacket(PeerPacketMessage ppm) {
+ if(sendClosed.state()) {
+ Core.logger.log(this, "forceSendPacket("+ppm+
+ ") when already closed:
"+this, Logger.MINOR);
+ return false;
+ }
try {
synchronized(sentPacketLock) {
if(sentPacket != null) return false;
+ if(trailerSendID != -1) {
+ if(logDEBUG)
+ logDEBUG("forceSendPacket("+ppm+
+ ") called but sending
a trailer!");
+ return false;
+ }
sentPacket = peerHandler.getPacket(link, p, identity,
ppm,
false);
if(logDEBUG)
@@ -1998,7 +2009,7 @@
".forceSendPacket()", Logger.DEBUG);
}
if(sentPacket != null)
- return innerSendPacket(sentPacket.priority(),
sentPacket);
+ return innerSendPacket(sentPacket.priority());
else return false;
} catch (Throwable t) {
Core.logger.log(this, "Caught "+t+" in forceSendPacket", t,
@@ -2034,7 +2045,7 @@
Core.logger.log(this, "sendPacket sending
"+sentPacket+" on "+
this, Logger.DEBUG);
}
- innerSendPacket(prio, sentPacket);
+ innerSendPacket(prio);
return true;
}
@@ -2045,10 +2056,17 @@
* Do NOT call while synchronized on sentPacketLock - hence the argument
* @param sentPacket the packet to send
*/
- protected boolean innerSendPacket(int prio, PeerPacket sentPacket) {
+ protected boolean innerSendPacket(int prio) {
lastActiveTime = System.currentTimeMillis();
PeerPacket sp = sentPacket;
byte[] toSend = sp.getBytes();
+ // extra paranoia
+ if(trailerSendID != -1) {
+ if(logDEBUG)
+ logDEBUG("innerSendPacket("+prio+","+sentPacket+
+ " called but sending a trailer!");
+ return false;
+ }
try {
sendBytes(toSend, 0, toSend.length, prio);
} catch (IOException e) {
@@ -2137,7 +2155,7 @@
sendingCloseMessage = false;
}
}
- innerSendPacket(sentPacket.priority(), sentPacket);
+ innerSendPacket(sentPacket.priority());
if(logDEBUG)
logDEBUG("Sent close packet");
}
Index: Version.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/Version.java,v
retrieving revision 1.445
retrieving revision 1.446
diff -u -w -r1.445 -r1.446
--- Version.java 17 Oct 2003 01:43:28 -0000 1.445
+++ Version.java 17 Oct 2003 02:02:48 -0000 1.446
@@ -18,7 +18,7 @@
public static String protocolVersion = "1.46";
/** The build number of the current revision */
- public static final int buildNumber = 6252;
+ public static final int buildNumber = 6253;
// 6028: may 3; ARK retrieval fix
public static final int ignoreBuildsAfter = 6500;
_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs