Author: nextgens
Date: 2006-07-20 20:21:57 +0000 (Thu, 20 Jul 2006)
New Revision: 9675
Modified:
trunk/freenet/src/freenet/client/async/ResumeException.java
trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
trunk/freenet/src/freenet/clients/http/PluginToadlet.java
trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/ARKFetcher.java
trunk/freenet/src/freenet/node/DNSRequester.java
trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeStarter.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/RequestSender.java
trunk/freenet/src/freenet/node/SSKInsertSender.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
trunk/freenet/src/freenet/support/RandomAccessFileBucket.java
trunk/freenet/src/freenet/support/io/CannotCreateFromFieldSetException.java
Log:
"misc":
* make Node.formpassword static
* tweak the MeaningfullNodeNameUserAlert so that the name can be
changed from the alert
* remove some dead code
Modified: trunk/freenet/src/freenet/client/async/ResumeException.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ResumeException.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/client/async/ResumeException.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -7,6 +7,7 @@
* then we simply restart the request from the beginning.
*/
public class ResumeException extends Exception {
+ private static final long serialVersionUID = 1L;
public ResumeException(String msg) {
super(msg);
Modified: trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConfigToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/ConfigToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -48,7 +48,7 @@
}
String pass = request.getParam("formPassword");
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable headers = new MultiValueTable();
headers.put("Location", "/config/");
ctx.sendReplyHeaders(302, "Found", headers, null, 0);
@@ -126,7 +126,7 @@
buf.append("</div>\n");
buf.append("<div class=\"infobox-content\">\n");
buf.append("<form method=\"post\" action=\".\">");
- buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+Node.formPassword+"\">");
for(int i=0; i<sc.length;i++){
StringBuffer buf2 = new StringBuffer();
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-07-20 18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-07-20 20:21:57 UTC (rev 9675)
@@ -422,7 +422,7 @@
buf.append("<input type=\"submit\"
name=\"submit\" value=\"Go\" />\n");
buf.append(" <span
class=\"darknet_connections\">* Requesting ARK</span>\n");
}
- buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\"").append(node.formPassword).append("\" />");
+ buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\"").append(Node.formPassword).append("\" />");
buf.append("</form>\n");
}
buf.append("</div>\n");
@@ -444,7 +444,7 @@
buf.append("or file:\n");
buf.append("<input id=\"reffile\" type=\"file\"
name=\"reffile\" />\n");
buf.append("<br />\n");
- buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\"").append(node.formPassword).append("\" />");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\"").append(Node.formPassword).append("\" />");
buf.append("<input type=\"submit\" name=\"add\" value=\"Add\"
/>\n");
buf.append("</form>\n");
buf.append("</div>\n");
@@ -476,7 +476,7 @@
HTTPRequest request = new HTTPRequest(uri, data, ctx);
String pass = request.getPartAsString("formPassword", 32);
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable headers = new MultiValueTable();
headers.put("Location", "/darknet/");
ctx.sendReplyHeaders(302, "Found", headers, null, 0);
Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -265,7 +265,7 @@
buf.append("<input type=\"hidden\" name=\"key\"
value=\""+key.toString(false)+"\">");
buf.append("<input type=\"hidden\"
name=\"return-type\" value=\"disk\">");
buf.append("<input type=\"hidden\"
name=\"persistence\" value=\"forever\">");
- buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">");
if(mime != null)
buf.append("<input type=\"hidden\"
name=\"type\" value=\""+URLEncoder.encode(mime)+"\">");
buf.append("<input type=\"submit\"
name=\"download\" value=\"Download in background and store in downloads
directory\">");
Modified: trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -64,7 +64,7 @@
}
buf.append("<form action=\".\" method=\"post\"
enctype=\"multipart/form-data\">\n");
- buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+Node.formPassword+"\">");
buf.append("<div class=\"infobox infobox-normal\">");
buf.append("<div class=\"infobox-header\">");
buf.append("Sending Node To Node Text Message to
"+HTMLEncoder.encode(peernode_name)+"\n");
@@ -95,7 +95,7 @@
StringBuffer buf = new StringBuffer(1024);
String pass = request.getPartAsString("formPassword", 32);
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable headers = new MultiValueTable();
headers.put("Location", "/send_n2ntm/");
ctx.sendReplyHeaders(302, "Found", headers, null, 0);
Modified: trunk/freenet/src/freenet/clients/http/PluginToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PluginToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/PluginToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -121,7 +121,7 @@
}
String pass = httpRequest.getParam("formPassword");
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable headers = new MultiValueTable();
headers.put("Location", "/plugin/");
ctx.sendReplyHeaders(302, "Found", headers, null, 0);
@@ -219,10 +219,10 @@
outputBuffer.append("<td/>");
}
outputBuffer.append("<td><form action=\"./\"
method=\"post\"><input type=\"hidden\" name=\"action\" value=\"reload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Reload\" />" +
- "<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"</form></td>");
outputBuffer.append("<td><form action=\"./\"
method=\"post\"><input type=\"hidden\" name=\"action\" value=\"unload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Unload\" />" +
- "<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"</form></td>");
outputBuffer.append("</tr>\n");
}
@@ -275,7 +275,7 @@
outputBuffer.append("<div class=\"infobox-content\">");
outputBuffer.append("<form action=\"./\" method=\"post\">");
outputBuffer.append("<input type=\"hidden\" name=\"action\"
value=\"add\" />");
- outputBuffer.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">");
+ outputBuffer.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">");
outputBuffer.append("<input type=\"text\" size=\"40\"
name=\"pluginName\" value=\"\" /> ");
outputBuffer.append("<input type=\"submit\" value=\"Load
plugin\" />");
outputBuffer.append("</form>");
Modified: trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PproxyToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/PproxyToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -56,7 +56,7 @@
MultiValueTable headers = new MultiValueTable();
String pass = request.getParam("formPassword");
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable hdrs = new MultiValueTable();
headers.put("Location", "/queue/");
ctx.sendReplyHeaders(302, "Found", hdrs, null, 0);
@@ -98,7 +98,7 @@
buf.append("<div class=\"infobox-content\">\n");
buf.append("Are you sure you wish to unload " +
HTMLEncoder.encode(request.getParam("unload")) + "?\n");
buf.append("<form action=\"/plugins/\"
method=\"post\">\n");
- buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">");
buf.append("<input type=\"submit\" name=\"cancel\"
value=\"Cancel\" />\n");
buf.append("<input type=\"hidden\"
name=\"unloadconfirm\" value=\"" +
HTMLEncoder.encode(request.getParam("unload")) + "\">\n");
buf.append("<input type=\"submit\" name=\"confirm\"
value=\"Unload\" />\n");
@@ -219,16 +219,16 @@
out.append("<td>");
if (pi.isPproxyPlugin()) {
out.append("<form
method=\"get\" action=\"" + pi.getPluginClassName() + "\">" +
- "<input
type=\"hidden\" name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input
type=\"hidden\" name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"<input
type=\"submit\" value=\"Visit\"></form>");
}
out.append("<form method=\"post\"
action=\".\">" +
"<input type=\"hidden\"
name=\"unload\" value=\"" + pi.getThreadName() + "\" />"+
- "<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"<input type=\"submit\"
value=\"Unload\"></form>");
out.append("<form method=\"post\"
action=\".\">" +
"<input type=\"hidden\"
name=\"reload\" value=\"" + pi.getThreadName() + "\" />"+
- "<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"<input type=\"submit\"
value=\"Reload\"></form>");
out.append("</td></tr>\n");
}
@@ -244,7 +244,7 @@
// Obsolete
//out.append("<form method=\"get\"><div>Remove plugin:
(enter ID) <input type=\"text\" name=\"remove\" size=40/><input type=\"submit\"
value=\"Remove\"/></div></form>\n");
out.append("<form method=\"post\" action=\".\">" +
- "<input type=\"hidden\"
name=\"formPassword\" value=\""+node.formPassword+"\">"+
+ "<input type=\"hidden\"
name=\"formPassword\" value=\""+Node.formPassword+"\">"+
"<div>Load plugin: <input type=\"text\"
name=\"load\" size=\"40\"/><input type=\"submit\" value=\"Load\"
/></div></form>\n");
//
out.append("</div>\n");
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -45,7 +45,7 @@
HTTPRequest request = new HTTPRequest(uri, data, ctx);
String pass = request.getParam("formPassword");
- if((pass == null) || !pass.equals(node.formPassword)) {
+ if((pass == null) || !pass.equals(Node.formPassword)) {
MultiValueTable headers = new MultiValueTable();
headers.put("Location", "/queue/");
ctx.sendReplyHeaders(302, "Found", headers, null, 0);
@@ -533,7 +533,7 @@
private void writeDeleteCell(ClientRequest p, StringBuffer buf) {
buf.append("<td>");
buf.append("<form action=\"/queue/\" method=\"post\">");
- buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+Node.formPassword+"\">");
buf.append("<input type=\"hidden\" name=\"identifier\"
value=\"");
buf.append(HTMLEncoder.encode(p.getIdentifier()));
buf.append("\"><input type=\"submit\" name=\"remove_request\"
value=\"Delete\">");
@@ -544,7 +544,7 @@
private void writeDeleteAll(StringBuffer buf) {
buf.append("<td>");
buf.append("<form action=\"/queue/\" method=\"post\">");
- buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+node.formPassword+"\">");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+Node.formPassword+"\">");
buf.append("<input type=\"submit\" name=\"remove_AllRequests\"
value=\"Delete Everything\">");
buf.append("</form>\n");
buf.append("</td>\n");
Modified: trunk/freenet/src/freenet/node/ARKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/node/ARKFetcher.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/ARKFetcher.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -24,13 +24,13 @@
final Node node;
private ClientGetter getter;
private FreenetURI fetchingURI;
- private boolean shouldRun = false;
+ private boolean shouldRun;
private static final int MAX_BACKOFF = 60*60*1000; // 1 hour
private static final int MIN_BACKOFF = 5*1000; // 5 seconds
private int backoff = MIN_BACKOFF;
private String identity;
- private boolean isFetching = false;
- private boolean started = false;
+ private boolean isFetching;
+ private boolean started;
private long startedEdition;
public ARKFetcher(PeerNode peer, Node node) {
Modified: trunk/freenet/src/freenet/node/DNSRequester.java
===================================================================
--- trunk/freenet/src/freenet/node/DNSRequester.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/DNSRequester.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -11,7 +11,7 @@
final Thread myThread;
final Node node;
- private long lastLogTime = 0;
+ private long lastLogTime;
DNSRequester(Node node) {
this.node = node;
Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2006-07-20
18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2006-07-20
20:21:57 UTC (rev 9675)
@@ -119,8 +119,8 @@
PeerNode[] peers = node.getPeerNodes();
PeerNode[] conns = node.getDarknetConnections();
Peer[] nodeAddrs = node.getPrimaryIPAddress();
+ long now = System.currentTimeMillis();
synchronized(this) {
- long now = System.currentTimeMillis();
if(runner != null) {
Logger.minor(this, "Already running IP
detection plugins");
return;
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-07-20 18:32:48 UTC (rev
9674)
+++ trunk/freenet/src/freenet/node/Node.java 2006-07-20 20:21:57 UTC (rev
9675)
@@ -651,7 +651,11 @@
public final UserAlertManager alerts;
final TimeDecayingRunningAverage throttledPacketSendAverage;
/** Must be included as a hidden field in order for any dangerous HTTP
operation to complete successfully. */
- public final String formPassword;
+ public static final String formPassword = String.valueOf(
+ String.valueOf(
+
System.getProperties().toString()+System.currentTimeMillis()
+ ).hashCode()
+ );
final TimeDecayingRunningAverage remoteChkFetchBytesSentAverage;
final TimeDecayingRunningAverage remoteSskFetchBytesSentAverage;
final TimeDecayingRunningAverage remoteChkInsertBytesSentAverage;
@@ -1030,9 +1034,6 @@
// Easy stuff
Logger.normal(this, "Initializing Node using SVN
r"+Version.cvsRevision+" and freenet-ext r"+NodeStarter.extRevisionNumber);
System.out.println("Initializing Node using SVN
r"+Version.cvsRevision+" and freenet-ext r"+NodeStarter.extRevisionNumber);
- byte[] pwdBuf = new byte[16];
- random.nextBytes(pwdBuf);
- this.formPassword = Base64.encode(pwdBuf);
nodeStarter=ns;
if(logConfigHandler != lc)
logConfigHandler=lc;
@@ -1041,7 +1042,7 @@
throttleWindow = new ThrottleWindowManager(2.0);
alerts = new UserAlertManager();
ipDetectorManager = new IPDetectorPluginManager(this);
- nodeNameUserAlert = new MeaningfulNodeNameUserAlert();
+ nodeNameUserAlert = new MeaningfulNodeNameUserAlert(this);
recentlyCompletedIDs = new LRUQueue();
this.config = config;
this.random = random;
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -102,6 +102,8 @@
}catch(Throwable t){
// Compatibility code ... will be removed
Logger.error(this, "Unable to get the version of your
freenet-ext file : it's probably corrupted!");
+ System.err.println("Unable to get the version of your
freenet-ext file : it's probably corrupted!");
+ System.err.println(t.getMessage());
extRevisionNumber = "INVALID";
extBuildNumber = -1;
}
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -268,8 +268,11 @@
*/
public double[] getPeerLocationDoubles() {
double[] locs;
- PeerNode[] conns = connectedPeers;
- locs = new double[connectedPeers.length];
+ PeerNode[] conns;
+ synchronized (this) {
+ conns = connectedPeers;
+ }
+ locs = new double[conns.length];
int x = 0;
for(int i=0;i<conns.length;i++) {
if(conns[i].isRoutable())
@@ -325,7 +328,10 @@
* Asynchronously send this message to every connected peer.
*/
public void localBroadcast(Message msg) {
- PeerNode[] peers = connectedPeers; // avoid synchronization
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = connectedPeers;
+ }
for(int i=0;i<peers.length;i++) {
if(peers[i].isRoutable()) try {
peers[i].sendAsync(msg, null, 0, null);
@@ -343,7 +349,10 @@
* Find the peer which is closest to the target location
*/
public PeerNode closestPeer(double loc) {
- PeerNode[] peers = connectedPeers;
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = connectedPeers;
+ }
double bestDiff = 1.0;
PeerNode best = null;
for(int i=0;i<peers.length;i++) {
@@ -403,8 +412,10 @@
* than we are, and is not included in the provided set.
*/
private PeerNode _closerPeer(PeerNode pn, HashSet routedTo, HashSet
notIgnored, double loc, boolean ignoreSelf, boolean ignoreBackedOff) {
- PeerNode[] peers = connectedPeers;
- // No locking necessary. We won't modify it, and if another method
does, it will copy-and-assign.
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = connectedPeers;
+ }
Logger.minor(this, "Choosing closest peer:
connectedPeers="+peers.length);
double bestDiff = Double.MAX_VALUE;
double maxDiff = 0.0;
@@ -450,10 +461,13 @@
*/
public String getStatus() {
StringBuffer sb = new StringBuffer();
- PeerNode[] peers = myPeers;
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = myPeers;
+ }
String[] status = new String[peers.length];
- for(int i=0;i<myPeers.length;i++) {
- PeerNode pn = myPeers[i];
+ for(int i=0;i<peers.length;i++) {
+ PeerNode pn = peers[i];
status[i] = pn.getStatus();
Version.seenVersion(pn.getVersion());
}
@@ -470,10 +484,13 @@
*/
public String getTMCIPeerList() {
StringBuffer sb = new StringBuffer();
- PeerNode[] peers = myPeers;
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = myPeers;
+ }
String[] peerList = new String[peers.length];
- for(int i=0;i<myPeers.length;i++) {
- PeerNode pn = myPeers[i];
+ for(int i=0;i<peers.length;i++) {
+ PeerNode pn = peers[i];
peerList[i] = pn.getTMCIPeerInfo();
}
Arrays.sort(peerList);
@@ -486,10 +503,13 @@
public String getFreevizOutput() {
StringBuffer sb = new StringBuffer();
- PeerNode[] peers = myPeers;
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = myPeers;
+ }
String[] identity = new String[peers.length];
- for(int i=0;i<myPeers.length;i++) {
- PeerNode pn = myPeers[i];
+ for(int i=0;i<peers.length;i++) {
+ PeerNode pn = peers[i];
identity[i] = pn.getFreevizOutput();
}
Arrays.sort(identity);
@@ -541,7 +561,10 @@
}
public boolean writePeers(OutputStreamWriter w) {
- PeerNode[] peers = myPeers;
+ PeerNode[] peers;
+ synchronized (this) {
+ peers = myPeers;
+ }
for (int i = 0; i < peers.length; i++) {
try {
peers[i].write(w);
@@ -578,7 +601,10 @@
}
public boolean anyConnectedPeers() {
- PeerNode[] conns = connectedPeers;
+ PeerNode[] conns;
+ synchronized (this) {
+ conns = connectedPeers;
+ }
for(int i=0;i<conns.length;i++) {
if(conns[i].isRoutable()) return true;
}
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -49,7 +49,7 @@
private double nearestLoc;
/** The source of this request if any - purely so we can avoid routing to
it */
final PeerNode source;
- private PartiallyReceivedBlock prb = null;
+ private PartiallyReceivedBlock prb;
private DSAPublicKey pubKey;
private byte[] headers;
private byte[] sskData;
@@ -452,8 +452,8 @@
return prb != null;
}
- boolean hadROLastTimeWaited = false;
- boolean prbWasNonNull = false;
+ boolean hadROLastTimeWaited;
+ boolean prbWasNonNull;
/**
* Wait until either the transfer has started or we have a
Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-07-20 18:32:48 UTC
(rev 9674)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-07-20 20:21:57 UTC
(rev 9675)
@@ -422,7 +422,7 @@
}
}
- private boolean hasForwardedRejectedOverload = false;
+ private boolean hasForwardedRejectedOverload;
synchronized boolean receivedRejectedOverload() {
return hasForwardedRejectedOverload;
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-07-20 18:32:48 UTC (rev
9674)
+++ trunk/freenet/src/freenet/node/Version.java 2006-07-20 20:21:57 UTC (rev
9675)
@@ -6,7 +6,7 @@
/**
* Central spot for stuff related to the versioning of the codebase.
*/
-public abstract class Version {
+public class Version {
/** FReenet Reference Daemon */
public static final String nodeName = "Fred";
@@ -267,7 +267,7 @@
* @return the build number of an arbitrary version string
*/
public static final int getArbitraryBuildNumber(
- String version ) throws NumberFormatException {
+ String version ) {
if(version == null) {
Logger.error(Version.class, "version == null!",
new Exception("error"));
Modified:
trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
2006-07-20 18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
2006-07-20 20:21:57 UTC (rev 9675)
@@ -1,8 +1,18 @@
package freenet.node.useralerts;
+import freenet.config.Option;
+import freenet.config.SubConfig;
+import freenet.node.Node;
+import freenet.support.HTMLEncoder;
+
public class MeaningfulNodeNameUserAlert implements UserAlert {
private boolean isValid=true;
+ private final Node node;
+ public MeaningfulNodeNameUserAlert(Node n) {
+ this.node = n;
+ }
+
public boolean userCanDismiss() {
return true;
}
@@ -12,12 +22,38 @@
}
public String getText() {
- return "It seems that your node's name isn't defined. Setting "
+
+ SubConfig sc = node.config.get("node");
+ Option o = sc.getOption("name");
+ StringBuffer buf = new StringBuffer();
+
+ buf.append("It seems that your node's name isn't defined.
Setting " +
"up a node name doesn't affect your anonymity in any way but " +
"is useful for your peers to know who you are in case they have
" +
"to reach you. You can change the node's name at the
Configuration page. " +
"Putting your e-mail address or IRC nickname there is generally
speaking " +
- "a good idea and helps your friends to identify your node.";
+ "a good idea and helps your friends to identify your node.");
+ buf.append("<form method=\"post\" action=\"/config/\">");
+ buf.append("<input type=\"hidden\" name=\"formPassword\"
value=\""+Node.formPassword+"\">");
+ //buf.append("<ul class=\"config\"><span
class=\"configprefix\">"+sc.getPrefix()+"</span>\n");
+ buf.append("<ul class=\"config\">\n");
+ buf.append("<li>");
+ buf.append("<span class=\"configshortdesc\">");
+ buf.append(o.getShortDesc());
+ buf.append("</span>");
+ buf.append("<span class=\"config\">");
+ buf.append("<input alt=\""+o.getShortDesc()+"\"
class=\"config\"" +
+ " type=\"text\"
name=\""+sc.getPrefix()+".name\"
value=\""+HTMLEncoder.encode(o.getValueString())+"\" />");
+ buf.append("</span>");
+ buf.append("<span class=\"configlongdesc\">");
+ buf.append(o.getLongDesc());
+ buf.append("</span>");
+ buf.append("</li>\n");
+ buf.append("</ul>\n");
+ buf.append("<input type=\"submit\" value=\"Apply\" />");
+ buf.append("<input type=\"reset\" value=\"Reset\" />");
+ buf.append("</form>");
+
+ return buf.toString();
}
public short getPriorityClass() {
Modified:
trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
2006-07-20 18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
2006-07-20 20:21:57 UTC (rev 9675)
@@ -12,7 +12,6 @@
import freenet.crypt.ciphers.Rijndael;
import freenet.support.io.CannotCreateFromFieldSetException;
import freenet.support.io.PersistentFileTracker;
-import freenet.support.io.PersistentTempBucketFactory;
import freenet.support.io.SerializableToFieldSetBucket;
import freenet.support.io.SerializableToFieldSetBucketUtil;
Modified: trunk/freenet/src/freenet/support/RandomAccessFileBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/RandomAccessFileBucket.java
2006-07-20 18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/support/RandomAccessFileBucket.java
2006-07-20 20:21:57 UTC (rev 9675)
@@ -10,7 +10,6 @@
import freenet.support.io.CannotCreateFromFieldSetException;
import freenet.support.io.PersistentFileTracker;
-import freenet.support.io.PersistentTempBucketFactory;
import freenet.support.io.SerializableToFieldSetBucket;
/**
Modified:
trunk/freenet/src/freenet/support/io/CannotCreateFromFieldSetException.java
===================================================================
--- trunk/freenet/src/freenet/support/io/CannotCreateFromFieldSetException.java
2006-07-20 18:32:48 UTC (rev 9674)
+++ trunk/freenet/src/freenet/support/io/CannotCreateFromFieldSetException.java
2006-07-20 20:21:57 UTC (rev 9675)
@@ -1,7 +1,7 @@
package freenet.support.io;
public class CannotCreateFromFieldSetException extends Exception {
-
+ private static final long serialVersionUID = 1L;
public CannotCreateFromFieldSetException(String msg) {
super(msg);
}