diff --git a/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java b/apps/syndie/java/src/net/i2p/syndie/UpdaterServlet.java index 70c67181e..b30b8d867 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 106baf2a6..aa6292fbb 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 9e2652805..2f23493c5 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 377551c35..2b7af7c30 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 4ba76fc42..9f8bd617e 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 33c6bfe05..8fc48439a 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 c37a7feed..2214ed62d 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 18765a0c4..eb2ddd532 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 de93d7c1c..ecd363ffc 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 });