propagate from branch 'i2p.i2p.zzz.test' (head dc817d70812b80e35a7c37eaa881e4b866435838)
to branch 'i2p.i2p' (head 5551e9b0487e14e901cd1081ce3e1ffd33c4a354)
This commit is contained in:
@ -27,27 +27,27 @@
|
||||
System.setProperty("net.i2p.router.web.ConfigLoggingHandler.nonce", new java.util.Random().nextLong()+""); %>
|
||||
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" />
|
||||
<input type="hidden" name="action" value="blah" />
|
||||
<b>Logging filename:</b>
|
||||
<input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" /><br />
|
||||
<i>(the symbol '@' will be replaced during log rotation)</i><br />
|
||||
<b>Log record format:</b>
|
||||
<input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" /><br />
|
||||
<i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)</i><br />
|
||||
<b>Log date format:</b>
|
||||
<input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" /><br />
|
||||
<i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)</i><br />
|
||||
<b>Max log file size:</b>
|
||||
<input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" /><br />
|
||||
<hr />
|
||||
<b>Log levels:</b> <br />
|
||||
<b>Default log level:</b>
|
||||
<jsp:getProperty name="logginghelper" property="defaultLogLevelBox" />
|
||||
<i>(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)</i>
|
||||
<br />
|
||||
<jsp:getProperty name="logginghelper" property="logLevelTable" />
|
||||
<hr />
|
||||
<table border="0" cellspacing="5">
|
||||
<tr><td valign="top"><b>Logging filename:</b>
|
||||
<td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" /><br />
|
||||
<i>(the symbol '@' will be replaced during log rotation)</i>
|
||||
<tr><td valign="top"><b>Log record format:</b>
|
||||
<td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" /><br />
|
||||
<i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)</i>
|
||||
<tr><td valign="top"><b>Log date format:</b>
|
||||
<td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" /><br />
|
||||
<i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)</i>
|
||||
<tr><td valign="top"><b>Max log file size:</b>
|
||||
<td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" /><br />
|
||||
<tr><td valign="top"><b>Default log level:</b>
|
||||
<td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" />
|
||||
<br /><i>(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)</i>
|
||||
<tr><td valign="top"><b>Log level overrides:</b>
|
||||
<td><jsp:getProperty name="logginghelper" property="logLevelTable" />
|
||||
<tr><td><td>
|
||||
<input type="submit" name="shouldsave" value="Save changes" />
|
||||
<input type="reset" value="Cancel" />
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -171,7 +171,9 @@ class ConnectionHandler {
|
||||
// Send it through the packet handler again
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Found con for queued non-syn packet: " + packet);
|
||||
_manager.getPacketHandler().receivePacket(packet);
|
||||
// false -> don't requeue, fixes a race where a SYN gets dropped
|
||||
// between here and PacketHandler, causing the packet to loop forever....
|
||||
_manager.getPacketHandler().receivePacketDirect(packet, false);
|
||||
} else {
|
||||
// goodbye
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
|
@ -90,10 +90,10 @@ public class PacketHandler {
|
||||
void receivePacket(Packet packet) {
|
||||
//boolean ok = choke(packet);
|
||||
//if (ok)
|
||||
receivePacketDirect(packet);
|
||||
receivePacketDirect(packet, true);
|
||||
}
|
||||
|
||||
private void receivePacketDirect(Packet packet) {
|
||||
void receivePacketDirect(Packet packet, boolean queueIfNoConn) {
|
||||
//if (_log.shouldLog(Log.DEBUG))
|
||||
// _log.debug("packet received: " + packet);
|
||||
|
||||
@ -105,7 +105,7 @@ public class PacketHandler {
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
displayPacket(packet, "RECV", "wsize " + con.getOptions().getWindowSize() + " rto " + con.getOptions().getRTO());
|
||||
} else {
|
||||
receiveUnknownCon(packet, sendId);
|
||||
receiveUnknownCon(packet, sendId, queueIfNoConn);
|
||||
displayPacket(packet, "UNKN", null);
|
||||
}
|
||||
}
|
||||
@ -228,7 +228,7 @@ public class PacketHandler {
|
||||
_manager.getPacketQueue().enqueue(reply);
|
||||
}
|
||||
|
||||
private void receiveUnknownCon(Packet packet, long sendId) {
|
||||
private void receiveUnknownCon(Packet packet, long sendId, boolean queueIfNoConn) {
|
||||
if (packet.isFlagSet(Packet.FLAG_ECHO)) {
|
||||
if (packet.getSendStreamId() > 0) {
|
||||
receivePing(packet);
|
||||
@ -262,7 +262,7 @@ public class PacketHandler {
|
||||
|
||||
if (packet.isFlagSet(Packet.FLAG_SYNCHRONIZE)) {
|
||||
_manager.getConnectionHandler().receiveNewSyn(packet);
|
||||
} else {
|
||||
} else if (queueIfNoConn) {
|
||||
// We can get here on the 2nd+ packet if the 1st (SYN) packet
|
||||
// is still on the _synQueue in the ConnectionHandler, and
|
||||
// ConnectionManager.receiveConnection() hasn't run yet to put
|
||||
@ -287,6 +287,10 @@ public class PacketHandler {
|
||||
}
|
||||
//packet.releasePayload();
|
||||
_manager.getConnectionHandler().receiveNewSyn(packet);
|
||||
} else {
|
||||
// don't queue again (infinite loop!)
|
||||
sendReset(packet);
|
||||
packet.releasePayload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user