Author: toad
Date: 2007-07-07 00:37:13 +0000 (Sat, 07 Jul 2007)
New Revision: 13981

Modified:
   trunk/freenet/src/freenet/node/Version.java
Log:
1041:
- Fix connectivity bug (!!) - we were only considering the first connectedPeers 
peers, out of myPeers (only a problem for NATed peers and peers changing IP 
afaics as if we get a direct match on IP it would work anyway)
- Fix bug (ArrayIndexOutOfBoundsException) preventing TestDDA from working
- Fix containers leak which was eventually causing internal errors and other 
problems when accessing containers/archives.
- fix to peers being listed as CONNECTED when we can't route to them because of 
clock problems, show count for CLOCK PROBLEM peers
- massive refactoring in support of opennet and possibly multiple transports / 
transport plugins. should not affect functionality, but may cause bugs etc...
-- UdpSocketManager -> MessageCore (handles waitFor() etc) + UdpSocketHandler 
(actually drives the socket). The latter can be started and stopped, and there 
may be multiple instances of it. Unmatched filters are removed every second 
rather than in the receive loop, because there will be multiple receive loops.
-- Node encryption, port, ARKs, noderef, moved into NodeCrypto class. Opennet 
has a separate NodeCrypto which can be (de)activated at run time. One 
UdpSocketHandler, FNPPacketMangler, and noderef, per NodeCrypto. 
NodeCryptoConfig carries config options for a NodeCrypto.
-- PeerNode -> PeerNode (parent), OpennetPeerNode / DarknetPeerNode. Only 
DarknetPeerNode's have names, private comments, can do N2NTMs/f2f file transfer 
(we don't want spam!), set disabled/listen only/burst only/ignore source 
port/allow local addresses (that last one will be a global setting). Opennet 
page on web interface (if opennet is enabled). Separate files for opennet 
noderef and opennet peers (opennet-<opennet port>, openpeers-<opennet port>).
-- DarknetConnectionsToadlet -> ConnectionsToadlet (parent), 
OpennetConnectionsToadlet / DarknetConnectionsToadlet
-- Slightly more robust check for adding self
-- Move node exit codes into NodeInitException
-- IP detection split into NodeIPDetector (IP only) and NodeIPPortDetector (IP 
and port, tied to a specific NodeCrypto instance)
-- New config option on node and node.opennet: oneConnectionPerIP. If set, we 
only allow one connection per IP address. Defaults to true for opennet and 
false for darknet. See description for rationale.
- probe request fixes:
-- Fix linearCounter
-- Send probe traces back to the original sender, not in reply
-- Send rejections, replys to the original sender - don't reject a rejection or 
reply to a reply
-- Never spawn a new probe request for any reason other than a probe request - 
don't start a new probe request because of a misdirected rejection!
- USM/MessageCore:
-- fix timeout after matching (probably only an issue because of the USH 
refactoring in this build)
-- record which connection was dropped! (we weren't doing, despite having a 
variable for it, so code that relies on this would fail or maybe even infinite 
loop)
- splitfiles: don't decode if failed
- fix HexUtil.bitsToBytes (not used at present)
- SimpleFieldSet: add getShort, getChar, getDouble for consistency, minor 
refactoring, fix KeyIterator.hasNext() (was returning false prematurely) (sback)
- TimeUtil: comments, various fixes (sback, zothar)
- minor memory leak fixes
- synchronize MersenneTwister (we may use it from multiple threads now because 
of padding)
- always write the Yarrow seed to disk on exit
- always write node.storeDir to freenet.ini
- never register the same useralert twice
- fix hanging caused by deleting the same useralert in two browser windows
- never show the translation toadlet from the menu, but add it to the config 
page
- minor updater fixes (error handling, don't call maybeUpdate twice)
- charset fixes (specify UTF-8)
- partial implementation of Ultra-Lightweight Passive Requests; code isn't 
integrated/used yet
- delete old dead back compat code
- don't include identity in noderef exchange on connect as it is invariant
- don't allow darknet node name to be "" (this is bad because e.g. you can't 
reply to N2NTMs)
- F2F file transfer: base64 encode the comment so it can contain newlines etc 
(partial support for old unencoded comments, for now). 
- split F2F file transfer comment and N2NTM messages by lines in HTML using 
<br>'s so newlines are preserved
- fix a bug in HTTP multipart form handling (mostly a problem in n2ntm's with 
an attached file)
- smaller refactorings
- ensure consistent sort order in ConnectionsToadlet if two locations are equal
- fix some NPEs
- Logging (e.g. PeerNode.userToString()).
- Indenting etc
- English strings fixes/improvements (also some new strings) and trivial fixes 
to (non-localised parts of) stats page (note to translators: our policy at 
present is to not localise stuff which is developer-only/advanced-mode-only; 
further, suggest you diff the .en l10n files to see what's changed); minor 
french fix
- Comments
- Cosmetic improvement to config param error on config page

Related:
- Lots of work on unit tests, some debugging (see above) resulting from them
- Some work on JFK
- Fix an NPE in JSTUN
- JmDNS (automatic service discovery): Packet size paranoia
- Some work on plugin building

Credits:
nextgens
zothar
sback
toad
kryptos
juiceman
fred


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2007-07-07 00:21:34 UTC (rev 
13980)
+++ trunk/freenet/src/freenet/node/Version.java 2007-07-07 00:37:13 UTC (rev 
13981)
@@ -24,17 +24,17 @@
        public static final String protocolVersion = "1.0";

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

        /** Oldest build of Fred we will talk to */
-       private static final int oldLastGoodBuild = 1039;
-       private static final int newLastGoodBuild = 1040;
+       private static final int oldLastGoodBuild = 1040;
+       private static final int newLastGoodBuild = 1041;
        static final long transitionTime;

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



Reply via email to