diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
index 142456f2d6..f13a3812e1 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
@@ -324,6 +324,18 @@ public class TunnelController implements Logging {
public String getTargetDestination() { return _config.getProperty("targetDestination"); }
public String getProxyList() { return _config.getProperty("proxyList"); }
public boolean getStartOnLoad() { return "true".equalsIgnoreCase(_config.getProperty("startOnLoad", "true")); }
+ public String getMyDestination() {
+ if (_tunnel != null) {
+ List sessions = _tunnel.getSessions();
+ for (int i = 0; i < sessions.size(); i++) {
+ I2PSession session = (I2PSession)sessions.get(i);
+ Destination dest = session.getMyDestination();
+ if (dest != null)
+ return dest.toBase64();
+ }
+ }
+ return null;
+ }
public boolean getIsRunning() { return _running; }
public boolean getIsStarting() { return _starting; }
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index c2120eb2b2..2989dcf7c3 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -350,6 +350,19 @@ public class IndexBean {
return "";
}
+ public String getDestinationBase64(int tunnel) {
+ TunnelController tun = getController(tunnel);
+ if (tun != null) {
+ String rv = tun.getMyDestination();
+ if (rv != null)
+ return rv;
+ else
+ return "";
+ } else {
+ return "";
+ }
+ }
+
///
/// bean props for form submission
///
diff --git a/apps/i2ptunnel/jsp/editServer.jsp b/apps/i2ptunnel/jsp/editServer.jsp
index 1381a8ee6b..5fdfae25c5 100644
--- a/apps/i2ptunnel/jsp/editServer.jsp
+++ b/apps/i2ptunnel/jsp/editServer.jsp
@@ -110,6 +110,10 @@ Port: Local destination:
(if known)
+
|
+
+
Advanced networking options
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
index 4bd776e45f..e7bbd23d21 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
@@ -33,6 +33,10 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
_context = ctx;
_log = ctx.logManager().getLog(NewsFetcher.class);
_instance = this;
+ updateLastFetched();
+ }
+
+ private void updateLastFetched() {
File news = new File(NEWS_FILE);
if (news.exists())
_lastFetch = news.lastModified();
@@ -58,6 +62,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
}
private boolean shouldFetchNews() {
+ updateLastFetched();
String freq = _context.getProperty(ConfigUpdateHandler.PROP_REFRESH_FREQUENCY);
if (freq == null)
freq = ConfigUpdateHandler.DEFAULT_REFRESH_FREQUENCY;
diff --git a/core/java/src/net/i2p/data/Destination.java b/core/java/src/net/i2p/data/Destination.java
index 42f7f88872..7f190e3541 100644
--- a/core/java/src/net/i2p/data/Destination.java
+++ b/core/java/src/net/i2p/data/Destination.java
@@ -12,6 +12,7 @@ package net.i2p.data;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.FileInputStream;
import net.i2p.util.Log;
@@ -155,4 +156,22 @@ public class Destination extends DataStructureImpl {
if (__calculatedHash == null) __calculatedHash = super.calculateHash();
return __calculatedHash;
}
+
+ public static void main(String args[]) {
+ if (args.length == 0) {
+ System.err.println("Usage: Destination filename");
+ } else {
+ FileInputStream in = null;
+ try {
+ in = new FileInputStream(args[0]);
+ Destination d = new Destination();
+ d.readBytes(in);
+ System.out.println(d.toBase64());
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) try { in.close(); } catch (IOException ioe) {}
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/history.txt b/history.txt
index b7f507747b..9c2225b99a 100644
--- a/history.txt
+++ b/history.txt
@@ -1,4 +1,11 @@
-$Id: history.txt,v 1.182 2005/03/26 02:13:38 jrandom Exp $
+$Id: history.txt,v 1.183 2005/03/29 19:07:40 jrandom Exp $
+
+2005-04-01 jrandom
+ * Fix to check for missing news file (thanks smeghead!)
+ * Added destination display CLI:
+ java -cp lib/i2p.jar net.i2p.data.Destination privKeyFilename
+ * Added destination display to the web interface (thanks pnspns)
+ * Installed CIA backdoor
* 2005-03-29 0.5.0.5 released
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index d8a40488c0..831e6591cf 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.175 $ $Date: 2005/03/26 02:13:38 $";
+ public final static String ID = "$Revision: 1.176 $ $Date: 2005/03/29 19:07:39 $";
public final static String VERSION = "0.5.0.5";
- public final static long BUILD = 0;
+ public final static long BUILD = 1;
public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION);
System.out.println("Router ID: " + RouterVersion.ID);
diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
index 73af5c9e36..e028995132 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
@@ -288,8 +288,10 @@ public class OutboundClientMessageOneShotJob extends JobImpl {
getContext().statManager().addRateData("client.leaseSetFailedRemoteTime", lookupTime, lookupTime);
}
- if (_log.shouldLog(Log.ERROR))
- _log.error("Unable to send to " + _toString + " because we couldn't find their leaseSet");
+ if (!_finished) {
+ if (_log.shouldLog(Log.ERROR))
+ _log.error("Unable to send to " + _toString + " because we couldn't find their leaseSet");
+ }
dieFatal();
}
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
index f772f91748..d1c137fba8 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
@@ -204,8 +204,12 @@ class SearchJob extends JobImpl {
+ peer + " : " + (ds == null ? "null" : ds.getClass().getName()));
_state.replyTimeout(peer);
} else {
- sendSearch((RouterInfo)ds);
- sent++;
+ if (getContext().shitlist().isShitlisted(peer)) {
+ // dont bother
+ } else {
+ sendSearch((RouterInfo)ds);
+ sent++;
+ }
}
}
if (sent <= 0) {
|