* SessionKeyManager:

- Don't use unacked tagsets after consecutive ack failures
      and revert to full ElGamal if necessary (ticket #574)
    - Synchronize creation of new sessions to prevent dups
    - Don't remove an unacked session until it's really out of tags
    - Failsafe removal of old unacked tagsets
    - Cleanups, final, comments, log tweaks, debug.jsp tweaks, synchronization tweaks
This commit is contained in:
zzz
2012-03-08 17:48:19 +00:00
parent 1e978ea435
commit 97f402be0b
5 changed files with 263 additions and 90 deletions

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 6;
public final static long BUILD = 7;
/** for example "-test" */
public final static String EXTRA = "";

View File

@ -165,10 +165,8 @@ public class GarlicMessageBuilder {
if (log.shouldLog(Log.INFO))
log.info("Encrypted with public key " + key + " to expire on " + new Date(config.getExpiration()));
SessionKey curKey = skm.getCurrentKey(key);
SessionKey curKey = skm.getCurrentOrNewKey(key);
SessionTag curTag = null;
if (curKey == null)
curKey = skm.createSession(key);
if (!forceElGamal) {
curTag = skm.consumeNextAvailableTag(key, curKey);