diff --git a/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java b/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java index 70c67181e2..b30b8d8673 100644 --- a/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java +++ b/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java @@ -28,10 +28,13 @@ public class UpdaterServlet extends GenericServlet { super.init(config); } catch (ServletException exp) { } + /* UpdaterThread thread = new UpdaterThread(); thread.setDaemon(true); thread.start(); System.out.println("INFO: Starting Syndie Updater " + Updater.VERSION); + */ + System.out.println("INFO: Syndie Updater DISABLED. Use the new Syndie from http://syndie.i2p.net/"); } } \ No newline at end of file diff --git a/history.txt b/history.txt index 106baf2a6e..aa6292fbb5 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,12 @@ -$Id: history.txt,v 1.547 2007-01-29 23:05:23 zzz Exp $ +$Id: history.txt,v 1.548 2007-01-30 03:58:21 zzz Exp $ + +2007-02-13 jrandom + * Tell our peers about who we know in the floodfill netDb every + 6 hours or so, mitigating the situation where peers lose track + of floodfill routers. + * Disable the Syndie updater (people should use the new Syndie, + not this one) + * Disable the eepsite tunnel by default 2007-01-30 zzz * i2psnark: Don't hold _snarks lock while checking a snark, diff --git a/installer/resources/eepsite_index.html b/installer/resources/eepsite_index.html index 9e26528057..2f23493c54 100644 --- a/installer/resources/eepsite_index.html +++ b/installer/resources/eepsite_index.html @@ -9,13 +9,6 @@ and they'll be reachable. The 'key' to your eepsite that you need to give to other people is shown on the eepsite's I2PTunnel configuration page).
-- If you have any standard java web applications (.war files) such as - blojsom - or SnipSnap, simply drop their .war - file into ./eepsite/webapps/ and they'll be reachable at - http://$yourEeepsite/warFileName/
-You can also reach your eepsite locally through http://localhost:7658/. If you want to change the port number, edit the file ./eepsite/jetty.xml and diff --git a/installer/resources/i2ptunnel.config b/installer/resources/i2ptunnel.config index 377551c357..2b7af7c30d 100644 --- a/installer/resources/i2ptunnel.config +++ b/installer/resources/i2ptunnel.config @@ -55,7 +55,7 @@ tunnel.3.i2cpHost=127.0.0.1 tunnel.3.i2cpPort=7654 tunnel.3.option.inbound.nickname=eepsite tunnel.3.option.outbound.nickname=eepsite -tunnel.3.startOnLoad=true +tunnel.3.startOnLoad=false # postman's SMTP server - see www.postman.i2p tunnel.4.description=smtp server diff --git a/readme.html b/readme.html index 4ba76fc42e..9f8bd617eb 100644 --- a/readme.html +++ b/readme.html @@ -3,7 +3,7 @@ grow over the next few minutes and you'll see some local "destinations" listed on the left (if not, see below). Once those show up, you can:
eepsite/docroot/ directory (or place any standard JSP/Servlet .war
files under eepsite/webapps, or standard CGI script under eepsite/cgi-bin)
-and they'll show up. Your eepsite's
-destination (which uniquely and securely identifies it) can be found via the I2PTunnel
-configuration page - on the details page of the "eepsite" tunnel.
+and they'll show up. After starting up an eepsite tunnel pointing at it, your eepsite's
+destination (which uniquely and securely identifies it) will be visible.
If you want other people to see your eepsite,
you need to give them that really huge string. Just paste it into the
Eepsite announce forum, add it to
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index 33c6bfe052..8fc48439aa 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
*
*/
public class RouterVersion {
- public final static String ID = "$Revision: 1.483 $ $Date: 2007-01-29 23:05:21 $";
+ public final static String ID = "$Revision: 1.484 $ $Date: 2007-01-30 03:58:19 $";
public final static String VERSION = "0.6.1.26";
- public final static long BUILD = 17;
+ public final static long BUILD = 18;
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/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
index c37a7feed9..2214ed62d7 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
@@ -227,7 +227,7 @@ public class FloodfillNetworkDatabaseFacade extends KademliaNetworkDatabaseFacad
}
/** list of the Hashes of currently known floodfill peers */
- List getFloodfillPeers() {
+ public List getFloodfillPeers() {
FloodfillPeerSelector sel = (FloodfillPeerSelector)getPeerSelector();
return sel.selectFloodfillParticipants(getKBuckets());
}
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java
index 18765a0c47..eb2ddd5324 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java
@@ -11,6 +11,7 @@ import java.util.*;
import java.util.zip.Adler32;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
+import net.i2p.data.Hash;
import net.i2p.data.RouterIdentity;
import net.i2p.data.RouterInfo;
import net.i2p.data.SessionKey;
@@ -21,6 +22,7 @@ import net.i2p.data.i2np.I2NPMessageHandler;
import net.i2p.router.OutNetMessage;
import net.i2p.router.Router;
import net.i2p.router.RouterContext;
+import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
import net.i2p.router.transport.FIFOBandwidthLimiter;
import net.i2p.util.Log;
@@ -350,6 +352,8 @@ public class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener {
infoMsg.beginSend();
_context.statManager().addRateData("ntcp.infoMessageEnqueued", 1, 0);
send(infoMsg);
+
+ enqueueFloodfillMessage(target);
} else {
if (_isInbound) {
// ok, we shouldn't have enqueued it yet, as we havent received their info
@@ -358,6 +362,36 @@ public class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener {
}
}
}
+
+ /**
+ * to prevent people from losing track of the floodfill peers completely, lets periodically
+ * send those we are connected to references to the floodfill peers that we know
+ */
+ private void enqueueFloodfillMessage(RouterInfo target) {
+ FloodfillNetworkDatabaseFacade fac = (FloodfillNetworkDatabaseFacade)_context.netDb();
+ List peers = fac.getFloodfillPeers();
+ for (int i = 0; i < peers.size(); i++) {
+ Hash peer = (Hash)peers.get(i);
+
+ // we already sent our own info, and no need to tell them about themselves
+ if (peer.equals(_context.routerHash()) || peer.equals(target.calculateHash()))
+ continue;
+
+ RouterInfo info = fac.lookupRouterInfoLocally(peer);
+
+ OutNetMessage infoMsg = new OutNetMessage(_context);
+ infoMsg.setExpiration(_context.clock().now()+10*1000);
+ DatabaseStoreMessage dsm = new DatabaseStoreMessage(_context);
+ dsm.setKey(peer);
+ dsm.setRouterInfo(info);
+ infoMsg.setMessage(dsm);
+ infoMsg.setPriority(100);
+ infoMsg.setTarget(target);
+ infoMsg.beginSend();
+ _context.statManager().addRateData("ntcp.floodInfoMessageEnqueued", 1, 0);
+ send(infoMsg);
+ }
+ }
/**
* @param clockSkew alice's clock minus bob's clock in seconds (may be negative, obviously, but |val| should
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index de93d7c1ca..ecd363ffcb 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -87,6 +87,7 @@ public class NTCPTransport extends TransportImpl {
_context.statManager().createRateStat("ntcp.inboundEstablished", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("ntcp.inboundEstablishedDuplicate", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("ntcp.infoMessageEnqueued", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
+ _context.statManager().createRateStat("ntcp.floodInfoMessageEnqueued", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("ntcp.invalidDH", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("ntcp.invalidHXY", "", "ntcp", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("ntcp.invalidHXxorBIH", "", "ntcp", new long[] { 60*1000, 10*60*1000 });