Author: toad
Date: 2008-05-03 20:24:03 +0000 (Sat, 03 May 2008)
New Revision: 19716

Modified:
   trunk/freenet/src/freenet/node/Version.java
Log:
1145: (mandatory wednesday)
Alerts:
- Port forwarding alert: We indicate whether we think a port is not forwarded 
by whether it's negative in portsNotForwarded. So use Math.abs().
- Show the alert as an error if we have reasonable grounds to think at least 
one port isn't forwarded.
- Indicate in the short and long text whether we think the ports aren't 
forwarded or we're just not sure.
FProxy:
- Fix #1942: ?forcedownload wasn't passed over a permanent-redirect (e.g. 
updated USK).
Queue page:
- Fix #2280: When an insert is attempted with an invalid key, show an error 
message, rather than killing the connection. Also, do the same for file not 
found.
Bookmarks:
- Update editions.
- Activelink to Another Index and TUFI.
- Fix synchronization.
Config:
- Remove some options from the simple mode config page.
- Fix NPE when changing bindTo for console when it's not up.
- Don't check twice for allowedFullAccess.
- One-click acces to advanced config settings - tabs at the top to access 
simple vs advanced options. The default is determined by whether advanced mode 
is enabled. Update english SimpleToadletServer.advancedModeLong slightly to 
reflect this, four new strings.
- Make advanced mode an advanced option.
Filter:
- Fix double-encoding in URLs (e.g. %2520 from a space), and improve 
relativisation of links.
L10n:
- French translation update.
- German translation: Include some guidance on what connection speed to select, 
based on known German ISPs (DSL 1000/2000).
- German translation update.
- Italin translation update from Singularity.
- "CSS Name" -> "Web interface theme"
Post-install wizard:
- Set the default option to 1024+/256kbps.
- But set the limit to half the shown output bandwidth (above 128k). So now 
we're back to a default of 16K/sec (was 15K/sec a few builds ago).
USK polling/ARKs:
- Stop polling ARKs when a node is removed (e.g. an opennet peer is dropped).
- Fix wrong count of running USK background-fetchers.
- At the end of USKFetcher.cancel(), callback to USKManager to check whether 
we've been dropped. Complain to logs if not (and remove it to prevent leak).
- Add callbacks to determine at what priority to run a USK fetcher (normal/on 
progress). 
- /-<n>/ fetches run at the priority of the request, inserts to USKs likewise, 
bookmark fetches run at prefetch/update, ARKs run at IMMEDIATE_SPLITFILE, FCP 
subscriptions run at BULK_SPLITFILE/UPDATE, NodeUpdater runs at 
UPDATE/IMMEDIATE_SPLITFILE, XMLSpider runs at the fetch priority/the fetch 
priority minus 1.
- Start USK polling cooldown at 30 minutes, not 5 minutes.
- And randomise it for obfuscation.
- Fix #793: Duplicate content detection on USK inserts was broken because we 
didn't check the last known edition's content against the new content.
- Fix an NPE.
Opennet:
- Scale max number of peers with bandwidth, 1 per 1KB/sec between 10 and 20. 
TURNED OFF in the code for now as testing was negative. More testing may be 
helpful.
Startup:
- Move signalStarting() up a bit to prevent early timeouts on very slow systems.
Low level:
- Delete old pure java SHA-256 implementation. We weren't falling back to it 
anyway.
- Restrict access to Rijndael members.
- Fix a comment on a Rijndael constructor (this is the wrapper class, not the 
impl).
Stats and request limiting:
- Logging.
- Avoid an integer overflow causing no requests to be accepted when obwlimit is 
very high and ibwlimit is -1.
- Synchronize on the right object when setting the obwlimit.
- Never set ibwLimit to negative even if it's ignored.
IP detection etc:
- Fix MTU misreporting. Also in JSTUN.
Datastore:
- Use NIO (FileChannel) to do absolute-positioned writes and reads to the 
datastore file(s) in parallel, without holding the RAF as a lock. On Linux this 
just calls pread/pwrite (so works); on Windows, it holds a lock internally (so 
is serialized, but this is no worse than the previous build, and when they fix 
the JVM it will be better).
- Don't try to reconstruct a block consisting entirely of zeros.
- Reconstruction: If reach the end of the keys file before the store, don't 
reuse the old key and cause lots of dupes.
- Reconstruction: If get a dupe, and haven't used the data from disk, 
reconstruct the block from disk and try to use the new key. Various outcomes, 
better logging of all of them.
- Write the fullKey when fetching.
- Fix corruption of the .keys file for CHKs: we were writing the routing key 
not the full key. Reconstruction: try to deal with this.
- Reconstruction: NodeCHK.routingKeyFromFullKey(): return null if the key is 
completely the wrong length. Not seen the error in reconstructing my store.
- Don't abort transaction twice in put() if key already exists.
- Refactoring in reconstruction.
- Logging.
- Assertions.
- Fetch/put: Silently fail if the store is being shut down.
Out of memory handling and prevention:
- Memory checker: when we reach the maximum totalMemory, and we have less than 
8MB of free memory, do a garbage collection, and if we're still in the same 
situation, run the low memory handlers to reduce memory usage.
- SHA256: clear cache and turn off caching when hit low memory. Don't cache 
more than 16 instances.
- Clear the failure table on out of memory, halve it on low memory.
- BDBFS: Evict cache on low memory.
SimpleFieldSet (used everywhere):
- Synchronization.
FCP:
- Don't close the connection on getting a fatal protocol error from the client, 
this is pointless (we won't get one, and the client could close the connection 
itself).
Temp files:
- Remove some back compatibility code.
- Some paranoia in closing PaddedEphemerallyEncryptedBucket, to ensure we see 
the exceptions.
- Don't instantiate a new MersenneTwister for every encrypted temp file on 
padding.
- Optimise write(buf,*,0).
Documentation:
- Mention the firefox profile, and to get config settings from it, in the 
README.
Dev stuff:
- Paranoia.
- Logging.
- Indenting.

Installer:
- Add a cron job to start on reboot on *nix and OS/X. This assumes @reboot 
works, so it only works with Vixie Cron. Most systems have this. Long term we 
should use the LSB utils, if we are run as root and they are installed, to add 
a user and an init script. We automatically remove it on uninstallation via the 
uninstaller jar.
- Refactor slightly (simplify the process spec xml file).

JSTUN:
- Update the list of public STUN servers from the voip wiki.
- Fix misreporting of MTU.

Website:
- Mention the possibility of downloading the jar and clicking on it. On some 
linuxen this will fail, so wget is preferred. Better wording also.
- German download page update.
- Fix layout for small browser windows (800x600 or less), some other minor 
adjustments.
- Fix a menu bug.

batosai
j16sdiz
Loki (pointed out a menu bug)
NEOatNHNG
nextgens
sdiz
Singularity
toad
tommy

Thingamablog: (dieppe)
- Fix fproxy port property lookup (typo).
- Set the system language if we have a translation for it.

KeyExplorer: (saces)
- Better handling of invalid URIs.

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-05-03 20:18:07 UTC (rev 
19715)
+++ trunk/freenet/src/freenet/node/Version.java 2008-05-03 20:24:03 UTC (rev 
19716)
@@ -24,17 +24,17 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 1144;
+       private static final int buildNumber = 1145;

        /** Oldest build of Fred we will talk to */
-       private static final int oldLastGoodBuild = 1143;
-       private static final int newLastGoodBuild = 1144;
+       private static final int oldLastGoodBuild = 1144;
+       private static final int newLastGoodBuild = 1145;
        static final long transitionTime;

        static {
                final Calendar _cal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
                // year, month - 1 (or constant), day, hour, minute, second
-               _cal.set( 2008, Calendar.APRIL, 28, 0, 0, 0 );
+               _cal.set( 2008, Calendar.MAY, 14, 0, 0, 0 );
                transitionTime = _cal.getTimeInMillis();
        }



Reply via email to