diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index 55940527730266c0e3479055c30daf078ea9d80c..20407a04bad292e1daf2f1be26bf602c9498f391 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -118,10 +118,14 @@ public class SnarkManager implements Snark.CompleteListener { if (!_config.containsKey(PROP_UPLOADERS_TOTAL)) _config.setProperty(PROP_UPLOADERS_TOTAL, "" + Snark.MAX_TOTAL_UPLOADERS); if (!_config.containsKey(PROP_UPBW_MAX)) { - if (_context instanceof RouterContext) - _config.setProperty(PROP_UPBW_MAX, "" + (((RouterContext)_context).bandwidthLimiter().getOutboundKBytesPerSecond() / 2)); - else + try { + if (_context instanceof RouterContext) + _config.setProperty(PROP_UPBW_MAX, "" + (((RouterContext)_context).bandwidthLimiter().getOutboundKBytesPerSecond() / 2)); + else + _config.setProperty(PROP_UPBW_MAX, "" + DEFAULT_MAX_UP_BW); + } catch (NoClassDefFoundError ncdfe) { _config.setProperty(PROP_UPBW_MAX, "" + DEFAULT_MAX_UP_BW); + } } if (!_config.containsKey(PROP_DIR)) _config.setProperty(PROP_DIR, "i2psnark"); diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java index 6d464f87b016a8a934783a8bc52b43854421ab66..765598fabafb2082e82b17efdc3ef0c209295c85 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java +++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java @@ -95,7 +95,14 @@ public class TrackerInfo Iterator it = l.iterator(); while (it.hasNext()) { - PeerID peerID = new PeerID(((BEValue)it.next()).getMap()); + PeerID peerID; + try { + peerID = new PeerID(((BEValue)it.next()).getMap()); + } catch (InvalidBEncodingException ibe) { + // don't let one bad entry spoil the whole list + Snark.debug("Discarding peer from list: " + ibe, Snark.ERROR); + continue; + } peers.add(new Peer(peerID, my_id, metainfo)); } diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp index 0b6fcb714be2a396716fb9acebd5cff81fe6089d..e4559b86c200bbbf68a4222e9bbf14bdd7ba468e 100644 --- a/apps/routerconsole/jsp/configtunnels.jsp +++ b/apps/routerconsole/jsp/configtunnels.jsp @@ -25,6 +25,15 @@ <font color="red"><jsp:getProperty name="formhandler" property="errors" /></font> <i><jsp:getProperty name="formhandler" property="notices" /></i> + <p><i> + NOTE: The default settings work for most people. + There is a fundamental tradeoff between anonymity and performance. + Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), + or a high quantity + backup quantity, may severely reduce performance or reliability. + High CPU and/or high outbound bandwidth usage may result. + Change these settings with care, and adjust them if you have problems. + </i></p> + <form action="configtunnels.jsp" method="POST"> <% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce"); if (prev != null) System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.noncePrev", prev); diff --git a/build.xml b/build.xml index a6ac3f787939bb0dc6efbcf04cf090934e6b51bc..866671d5e567f5580dc1071dbe301d88ee44cc79 100644 --- a/build.xml +++ b/build.xml @@ -9,6 +9,7 @@ <echo message=" tarball: tar the full install into i2p.tar.bz2 (extracts to build a new clean install)" /> <echo message=" updater: tar the built i2p specific files into an i2pupdate.zip (extracts safely over existing installs)" /> <echo message=" updaterWithJetty: tar the built i2p specific files and jetty into an i2pupdate.zip (extracts safely over existing installs)" /> + <echo message=" updaterSmall: updater with the essentials only - no SAM, i2psnark, SusiMail, SusiDNS, news.xml, or history.txt" /> <echo message=" distclean: clean up all derived files" /> <echo message=" syndie: generate a standalone syndie install" /> <echo message=" i2psnark: generate a standalone i2psnark install" /> @@ -17,22 +18,24 @@ <target name="dist" depends="pkg, javadoc"> </target> <target name="build" depends="builddep, jar, buildWEB" /> + <target name="buildSmall" depends="builddepSmall, jarSmall, buildWEB" /> <target name="buildclean" depends="distclean, build" /> - <target name="builddep"> + <target name="builddep" depends="builddepSmall"> <!-- build *everything* here, but only once --> + <ant dir="apps/sam/java/" target="jar" /> + <ant dir="apps/susimail/" target="war" /> + <ant dir="apps/susidns/src" target="all" /> + <ant dir="apps/i2psnark/java/" target="standalone" /> + </target> + <target name="builddepSmall"> <ant dir="core/java/" target="jar" /> <ant dir="router/java/" target="jar" /> <ant dir="apps/ministreaming/java/" target="jar" /> <ant dir="apps/streaming/java/" target="jar" /> <ant dir="apps/i2ptunnel/java/" target="jar" /> - <ant dir="apps/sam/java/" target="jar" /> <ant dir="apps/systray/java/" target="jar" /> <ant dir="apps/routerconsole/java/" target="jar" /> <ant dir="apps/addressbook/" target="war" /> - <ant dir="apps/susimail/" target="war" /> - <ant dir="apps/susidns/src" target="all" /> - <!-- <ant dir="apps/syndie/java/" target="jar" /> --> - <ant dir="apps/i2psnark/java/" target="standalone" /> </target> <target name="buildrouter"> <ant dir="core/java/" target="distclean" /> @@ -91,28 +94,23 @@ <!-- thazzit --> </target> <target name="compile" /> - <target name="jar" depends="compile" > + <target name="jar" depends="jarSmall" > + <copy file="apps/sam/java/build/sam.jar" todir="build/" /> + <copy file="apps/susimail/susimail.war" todir="build/" /> + <copy file="apps/susidns/src/susidns.war" todir="build/" /> + <copy file="apps/i2psnark/i2psnark.war" todir="build/" /> + <copy file="apps/i2psnark/java/build/i2psnark.jar" todir="build/" /> + </target> + <target name="jarSmall" depends="compile" > <copy file="core/java/build/i2p.jar" todir="build/" /> <copy file="router/java/build/router.jar" todir="build/" /> <copy file="apps/ministreaming/java/build/mstreaming.jar" todir="build/" /> <copy file="apps/streaming/java/build/streaming.jar" todir="build/" /> <copy file="apps/i2ptunnel/java/build/i2ptunnel.jar" todir="build/" /> <copy file="apps/i2ptunnel/java/build/i2ptunnel.war" todir="build/" /> - <copy file="apps/sam/java/build/sam.jar" todir="build/" /> <copy file="apps/systray/java/build/systray.jar" todir="build/" /> <copy file="installer/lib/jbigi/jbigi.jar" todir="build" /> <copy file="apps/addressbook/dist/addressbook.war" todir="build/" /> - <copy file="apps/susimail/susimail.war" todir="build/" /> - <copy file="apps/susidns/src/susidns.war" todir="build/" /> - <!-- - <copy file="apps/syndie/syndie.war" todir="build/" /> - <copy file="apps/syndie/java/build/syndie.jar" todir="build/" /> - <copy file="apps/syndie/java/build/sucker.jar" todir="build/" /> - --> - <copy file="apps/i2psnark/i2psnark.war" todir="build/" /> - <copy file="apps/i2psnark/java/build/i2psnark.jar" todir="build/" /> - <copy file="apps/jdom/jdom.jar" todir="build/" /> - <copy file="apps/rome/rome-0.8.jar" todir="build/" /> </target> <target name="javadoc"> <mkdir dir="./build" /> @@ -304,68 +302,35 @@ <target name="updaterWithJetty" depends="prepjupdate"> <zip destfile="i2pupdate.zip" basedir="pkg-temp" /> </target> + <target name="updaterSmall" depends="prepupdateSmall"> + <zip destfile="i2pupdate.zip" basedir="pkg-temp" /> + </target> <target name="updateTest" depends="prepupdate"> <ant dir="core/java/" target="jarTest" /> <copy file="core/java/build/i2ptest.jar" todir="pkg-temp/lib" /> <zip destfile="i2pupdate.zip" basedir="pkg-temp" /> </target> - <target name="prepupdate" depends="distclean, build"> + <target name="prepupdate" depends="distclean, build, prepupdateSmall"> + <copy file="build/sam.jar" todir="pkg-temp/lib/" /> + <copy file="build/i2psnark.jar" todir="pkg-temp/lib" /> + <copy file="build/susimail.war" todir="pkg-temp/webapps/" /> + <copy file="build/susidns.war" todir="pkg-temp/webapps/" /> + <copy file="build/i2psnark.war" todir="pkg-temp/webapps/" /> + <copy file="history.txt" todir="pkg-temp/" /> + <mkdir dir="pkg-temp/docs/" /> + <copy file="news.xml" todir="pkg-temp/docs/" /> + </target> + <target name="prepupdateSmall" depends="distclean, buildSmall"> <delete dir="pkg-temp" /> <copy file="build/i2p.jar" todir="pkg-temp/lib/" /> <copy file="build/i2ptunnel.jar" todir="pkg-temp/lib/" /> <copy file="build/mstreaming.jar" todir="pkg-temp/lib/" /> <copy file="build/streaming.jar" todir="pkg-temp/lib/" /> - <copy file="build/sam.jar" todir="pkg-temp/lib/" /> <copy file="build/router.jar" todir="pkg-temp/lib/" /> <copy file="build/routerconsole.jar" todir="pkg-temp/lib/" /> - <!-- <copy file="build/sucker.jar" todir="pkg-temp/lib" /> --> - <copy file="build/i2psnark.jar" todir="pkg-temp/lib" /> - - <!--<copy file="installer/resources/runplain.sh" todir="pkg-temp/" />--> - <copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" /> <copy file="build/routerconsole.war" todir="pkg-temp/webapps/" /> <copy file="build/addressbook.war" todir="pkg-temp/webapps/" /> - <copy file="build/susimail.war" todir="pkg-temp/webapps/" /> - <copy file="build/susidns.war" todir="pkg-temp/webapps/" /> - <!-- <copy file="build/syndie.war" todir="pkg-temp/webapps/" /> --> - <copy file="build/i2psnark.war" todir="pkg-temp/webapps/" /> - <!-- <copy file="apps/i2psnark/java/build/launch-i2psnark.jar" todir="pkg-temp/" /> --> - <copy file="apps/i2psnark/jetty-i2psnark.xml" todir="pkg-temp/" /> - <copy file="history.txt" todir="pkg-temp/" /> - <mkdir dir="pkg-temp/docs/" /> - <copy file="news.xml" todir="pkg-temp/docs/" /> - <!-- - <copy file="installer/resources/dnf-header.ht" todir="pkg-temp/docs/" /> - <copy file="installer/resources/dnfp-header.ht" todir="pkg-temp/docs/" /> - <copy file="installer/resources/dnfb-header.ht" todir="pkg-temp/docs/" /> - <copy file="installer/resources/dnfh-header.ht" todir="pkg-temp/docs/" /> - <copy file="installer/resources/ahelper-conflict-header.ht" todir="pkg-temp/docs/" /> - --> - - <!-- polecat: please put your modified toolbar.html in installer/resources/toolbar.html - and uncomment the following --> - <!-- <copy file="installer/resources/toolbar.html" todir="pkg-temp/docs/" /> --> - - <!-- - <mkdir dir="pkg-temp/docs/themes/" /> - <copy todir="pkg-temp/docs/themes/" > - <fileset dir="installer/resources/themes/" /> - </copy> - --> - - <!-- the addressbook handles this for updates --> - <!-- <copy file="hosts.txt" todir="pkg-temp/" /> --> - <mkdir dir="pkg-temp/eepsite" /> - <mkdir dir="pkg-temp/eepsite/webapps" /> - <mkdir dir="pkg-temp/eepsite/cgi-bin" /> - <!-- - <mkdir dir="pkg-temp/syndie" /> - <mkdir dir="pkg-temp/syndie/archive" /> - <mkdir dir="pkg-temp/syndie/archive/ovpBy2mpO1CQ7deYhQ1cDGAwI6pQzLbWOm1Sdd0W06c=" /> - <copy file="installer/resources/blogMeta.snm" tofile="pkg-temp/syndie/archive/ovpBy2mpO1CQ7deYhQ1cDGAwI6pQzLbWOm1Sdd0W06c=/meta.snm" /> - <copy file="installer/resources/blogPost.snd" tofile="pkg-temp/syndie/archive/ovpBy2mpO1CQ7deYhQ1cDGAwI6pQzLbWOm1Sdd0W06c=/1132012800001.snd" /> - --> </target> <target name="prepjupdate" depends="prepupdate, buildWEB"> <copy file="build/ant.jar" todir="pkg-temp/lib/" /> diff --git a/history.txt b/history.txt index d2fa66902f3956a0768893fb19480db9df0d1d92..0d33ee66da1a8a7846b8d4a671dd16d64d1e8866 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,17 @@ +2008-05-26 zzz + * Throttle: Set a default router.maxParticipatingTunnels = 3000 (was none) + * Stats: Add a fake uptime if not publishing stats, to get participating tunnels + * build.xml: + - Add an updateSmall target which includes only the essentials + - Clean up the build file some + - Remove empty eepsite/ and subdirs from i2pupdate.zip + * configtunnels.jsp: Add warning + * i2psnark: Catch a bencode exception (bad peer from tracker) earlier + * i2psnark-standalone: Fix exception http://forum.i2p/viewtopic.php?p=12217 + +2008-05-22 welterde + * Change jetty download location in build script + 2008-05-20 zzz * Reachability: - Call the previously unused profile.tunnelTestFailed() diff --git a/router/java/src/net/i2p/router/RouterThrottleImpl.java b/router/java/src/net/i2p/router/RouterThrottleImpl.java index 8035d89fabf5ee3d75c4c2432c015a216bc5c94f..cfe11e8addfdffdf03997b3b6826a5e0d66fc641 100644 --- a/router/java/src/net/i2p/router/RouterThrottleImpl.java +++ b/router/java/src/net/i2p/router/RouterThrottleImpl.java @@ -32,6 +32,7 @@ class RouterThrottleImpl implements RouterThrottle { private static int THROTTLE_EVENT_LIMIT = 30; private static final String PROP_MAX_TUNNELS = "router.maxParticipatingTunnels"; + private static final String DEFAULT_MAX_TUNNELS = "3000"; // Unless share BW > 300KBps, BW limit will kick in first private static final String PROP_DEFAULT_KBPS_THROTTLE = "router.defaultKBpsThrottle"; /** tunnel acceptance */ @@ -187,7 +188,7 @@ class RouterThrottleImpl implements RouterThrottle { } } - String maxTunnels = _context.getProperty(PROP_MAX_TUNNELS); + String maxTunnels = _context.getProperty(PROP_MAX_TUNNELS, DEFAULT_MAX_TUNNELS); if (maxTunnels != null) { try { int max = Integer.parseInt(maxTunnels); diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 4c90a8a1b071bb1361e014c055d08c4f6e487968..2e12db0e153e994cfa1ec2198060e04564262f76 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -17,7 +17,7 @@ import net.i2p.CoreVersion; public class RouterVersion { public final static String ID = "$Revision: 1.548 $ $Date: 2008-02-10 15:00:00 $"; public final static String VERSION = "0.6.1.33"; - public final static long BUILD = 7; + public final static long BUILD = 8; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/StatisticsManager.java b/router/java/src/net/i2p/router/StatisticsManager.java index 212dc7d342be2d38d27135219a25aca6678e48ec..4a6620c6e68f9c04c6522c31959a6d7a6c0cf754 100644 --- a/router/java/src/net/i2p/router/StatisticsManager.java +++ b/router/java/src/net/i2p/router/StatisticsManager.java @@ -205,6 +205,8 @@ public class StatisticsManager implements Service { _log.debug("Publishing peer rankings"); } else { + // So that we will still get build requests + stats.setProperty("stat_uptime", "90m"); _log.debug("Not publishing peer rankings"); }