Author: j16sdiz
Date: 2008-07-07 15:51:48 +0000 (Mon, 07 Jul 2008)
New Revision: 20999
Added:
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucketFactory.java
Modified:
branches/saltedhashstore/freenet/build.xml
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/saltedhashstore/freenet/src/freenet/client/async/SplitFileInserter.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/SimpleToadletServer.java
branches/saltedhashstore/freenet/src/freenet/clients/http/StartupToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/Bookmark.java
branches/saltedhashstore/freenet/src/freenet/clients/http/filter/HTMLFilter.java
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
branches/saltedhashstore/freenet/src/freenet/crypt/Yarrow.java
branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
branches/saltedhashstore/freenet/src/freenet/node/Node.java
branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
branches/saltedhashstore/freenet/src/freenet/node/ResettingHTLProbeRequestSender.java
branches/saltedhashstore/freenet/src/freenet/node/Version.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPutBase.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/PersistentGet.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/URIGeneratedMessage.java
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
branches/saltedhashstore/freenet/src/freenet/support/LibraryLoader.java
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucket.java
branches/saltedhashstore/freenet/src/freenet/support/io/BucketTools.java
branches/saltedhashstore/freenet/src/freenet/support/io/NativeThread.java
Log:
Merge build #1153
Modified: branches/saltedhashstore/freenet/build.xml
===================================================================
--- branches/saltedhashstore/freenet/build.xml 2008-07-07 15:31:05 UTC (rev
20998)
+++ branches/saltedhashstore/freenet/build.xml 2008-07-07 15:51:48 UTC (rev
20999)
@@ -3,7 +3,10 @@
<project name="Freenet" default="dist" basedir=".">
<description>
- This file builds freenet...
+ This file builds Freenet: What is Freenet?
+
+ Freenet is free software which lets you publish and obtain
information on the Internet without fear of censorship. To achieve this
freedom, the network is entirely decentralized and publishers and consumers of
information are anonymous. Without anonymity there can never be true freedom of
speech, and without decentralization the network would be vulnerable to attack.
+
Possible targets: compile, dist (default), clean
</description>
@@ -72,7 +75,6 @@
<!-- Create the build directory structure used by compile -->
- <!-- FIXME: remove the debug and replace with optimize -->
<javac srcdir="${src}" destdir="${build}" debug="on"
optimize="on" source="1.5">
<classpath>
<pathelement
location="${freenet-ext.location}"/>
@@ -107,8 +109,6 @@
<target name="dist" depends="compile,unit"
description="generate the distribution" >
<!-- Create the distribution directory -->
- <!--<mkdir dir="."/>-->
- <!-- Put everything in ${build} into the freenet-${DSTAMP}.jar
file -->
<jar jarfile="${lib}/freenet-cvs-snapshot.jar"
basedir="${build}">
<manifest>
<attribute name="Main-Class"
value="freenet/node/Node"/>
Modified:
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -443,8 +443,6 @@
RandomGrabArray baseRGA
= (RandomGrabArray) clientGrabber.getGrabber(req.getClientRequest());
if(baseRGA != null) {
baseRGA.remove(req);
- } else {
-
Logger.error(this, "Could not find base RGA for requestor
"+req.getClientRequest()+" from "+clientGrabber);
}
} else {
Logger.error(this,
"Could not find client grabber for client "+req.getClient()+" from
"+retryTracker);
Modified:
branches/saltedhashstore/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/client/async/SplitFileInserter.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/client/async/SplitFileInserter.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -78,14 +78,13 @@
this.cb = cb;
this.ctx = ctx;
this.decompressedLength = decompressedLength;
+ this.dataLength = data.size();
Bucket[] dataBuckets;
try {
- dataBuckets = BucketTools.split(data,
CHKBlock.DATA_LENGTH, ctx.persistentBucketFactory);
+ dataBuckets = BucketTools.split(data,
CHKBlock.DATA_LENGTH, ctx.persistentBucketFactory, freeData);
} catch (IOException e) {
throw new InsertException(InsertException.BUCKET_ERROR,
e, null);
}
- this.dataLength = data.size();
- if(freeData) data.free();
countDataBlocks = dataBuckets.length;
// Encoding is done by segments
if(bestCodec == null)
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -82,6 +82,23 @@
return result < 0 ? -1 : 1;
}
}
+
+ // TODO: use Long.valueOf().compare when we switch to 1.5
+ private int compareLongs(long long1, long long2) {
+ long diff = long1 - long2;
+ if(diff == 0)
+ return 0;
+ else
+ return (diff > 0 ? 1 : -1);
+ }
+
+ private int compareInts(int int1, int int2) {
+ int diff = int1 -int2;
+ if(diff == 0)
+ return 0;
+ else
+ return (diff > 0 ? 1 : -1);
+ }
protected int customCompare(PeerNodeStatus firstNode,
PeerNodeStatus secondNode, String sortBy2) {
if(sortBy.equals("address")){
@@ -90,6 +107,22 @@
return compareLocations(firstNode, secondNode);
}else if(sortBy.equals("version")){
return
Version.getArbitraryBuildNumber(firstNode.getVersion(), -1) -
Version.getArbitraryBuildNumber(secondNode.getVersion(), -1);
+ }else if(sortBy.equals("backoff")){
+ return
Double.compare(firstNode.getBackedOffPercent(),
secondNode.getBackedOffPercent());
+ }else if(sortBy.equals(("overload_p"))){
+ return Double.compare(firstNode.getPReject(),
secondNode.getPReject());
+ }else if(sortBy.equals(("idle"))){
+ return
compareLongs(firstNode.getTimeLastConnectionCompleted(),
secondNode.getTimeLastConnectionCompleted());
+ }else if(sortBy.equals("time_routable")){
+ return
Double.compare(firstNode.getPercentTimeRoutableConnection(),
secondNode.getPercentTimeRoutableConnection());
+ }else if(sortBy.equals("total_traffic")){
+ long total1 =
firstNode.getTotalInputBytes()+firstNode.getTotalOutputBytes();
+ long total2 =
secondNode.getTotalInputBytes()+secondNode.getTotalOutputBytes();
+ return compareLongs(total1, total2);
+ }else if(sortBy.equals("time_delta")){
+ return compareLongs(firstNode.getClockDelta(),
secondNode.getClockDelta());
+ }else if(sortBy.equals(("uptime"))){
+ return
compareInts(firstNode.getReportedUptimePercentage(),
secondNode.getReportedUptimePercentage());
}else
return 0;
}
@@ -354,20 +387,20 @@
peerTableHeaderRow.addChild("th").addChild("a",
"href", sortString(isReversed, "version")).addChild("#", l10n("versionTitle"));
if (mode >= PageMaker.MODE_ADVANCED) {
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"location")).addChild("#", "Location");
-
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title",
"style" }, new String[] { "Other node busy? Display: Percentage of time the
node is overloaded, Current wait time remaining (0=not overloaded)/total/last
overload reason", "border-bottom: 1px dotted; cursor: help;" }, "Backoff");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"backoff")).addChild("span", new String[] { "title", "style" }, new String[] {
"Other node busy? Display: Percentage of time the node is overloaded, Current
wait time remaining (0=not overloaded)/total/last overload reason",
"border-bottom: 1px dotted; cursor: help;" }, "Backoff");
-
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title",
"style" }, new String[] { "Probability of the node rejecting a request due to
overload or causing a timeout.", "border-bottom: 1px dotted; cursor: help;" },
"Overload Probability");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"overload_p")).addChild("span", new String[] { "title", "style" }, new String[]
{ "Probability of the node rejecting a request due to overload or causing a
timeout.", "border-bottom: 1px dotted; cursor: help;" }, "Overload
Probability");
}
-
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title",
"style" }, new String[] { l10n("idleTime"), "border-bottom: 1px dotted; cursor:
help;" }, l10n("idleTimeTitle"));
+ peerTableHeaderRow.addChild("th").addChild("a",
"href", sortString(isReversed, "idle")).addChild("span", new String[] {
"title", "style" }, new String[] { l10n("idleTime"), "border-bottom: 1px
dotted; cursor: help;" }, l10n("idleTimeTitle"));
if(hasPrivateNoteColumn())
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"privnote")).addChild("span", new String[] { "title", "style" }, new String[] {
l10n("privateNote"), "border-bottom: 1px dotted; cursor: help;" },
l10n("privateNoteTitle"));
if(mode >= PageMaker.MODE_ADVANCED) {
- peerTableHeaderRow.addChild("th",
"%\u00a0Time Routable");
- peerTableHeaderRow.addChild("th",
"Total\u00a0Traffic\u00a0(in/out/resent)");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"time_routable")).addChild("#", "%\u00a0Time Routable");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"total_traffic")).addChild("#", "Total\u00a0Traffic\u00a0(in/out/resent)");
peerTableHeaderRow.addChild("th",
"Congestion\u00a0Control");
- peerTableHeaderRow.addChild("th",
"Time\u00a0Delta");
- peerTableHeaderRow.addChild("th",
"Reported\u00a0Uptime");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"time_delta")).addChild("#", "Time\u00a0Delta");
+
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"uptime")).addChild("#", "Reported\u00a0Uptime");
}
SimpleColumn[] endCols = endColumnHeaders(mode
>= PageMaker.MODE_ADVANCED);
@@ -466,9 +499,9 @@
if (request.isPartSet("add")) {
// add a new node
- String urltext = request.getPartAsString("url", 100);
+ String urltext = request.getPartAsString("url", 200);
urltext = urltext.trim();
- String reftext = request.getPartAsString("ref", 2000);
+ String reftext = request.getPartAsString("ref",
Integer.MAX_VALUE);
reftext = reftext.trim();
if (reftext.length() < 200) {
reftext = request.getPartAsString("reffile",
2000);
@@ -488,7 +521,7 @@
// FIXME get charset encoding from
uc.getContentType()
in = new BufferedReader(new
InputStreamReader(uc.getInputStream()));
String line;
- while ( (line = in.readLine()) != null)
{
+ while ((line = in.readLine()) != null) {
ref.append( line ).append('\n');
}
} catch (IOException e) {
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -301,7 +301,7 @@
int bufProgress = 0;
while(offset < buf.length) {
byte b = buf[offset];
- if((int)b == (int)find.charAt(bufProgress)) {
+ if(b == find.charAt(bufProgress)) {
bufProgress++;
if(bufProgress == find.length()) return true;
} else {
@@ -337,7 +337,7 @@
if(logMINOR) Logger.minor(this, "Redirecting to
FreenetURI: "+newURI);
String type = httprequest.getParam("type");
- if (type != null) {
+ if ((type != null) && (type.length() > 0)) {
headers.put("Location", "/"+newURI +
"?type=" + type);
} else {
headers.put("Location", "/"+newURI);
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1309,6 +1309,14 @@
private void registerAlert(ClientRequest req) {
final String identifier = req.getIdentifier();
+ boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
+ if(logMINOR)
+ Logger.minor(this, "Registering alert for "+identifier);
+ if(!req.hasFinished()) {
+ if(logMINOR)
+ Logger.minor(this, "Request hasn't finished:
"+req+" for "+identifier, new Exception("debug"));
+ return;
+ }
if(req instanceof ClientGet) {
FreenetURI uri = ((ClientGet)req).getURI();
long size = ((ClientGet)req).getDataSize();
@@ -1344,6 +1352,10 @@
return;
}
long size = ((ClientPut)req).getDataSize();
+ if(uri == null) {
+ Logger.error(this, "uri is null for "+req+" for
"+identifier);
+ return;
+ }
String name = uri.getPreferredFilename();
String title = l10n("uploadSucceededTitle", "filename",
name);
HTMLNode text = new HTMLNode("div");
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/SimpleToadletServer.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/SimpleToadletServer.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/SimpleToadletServer.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -465,10 +465,12 @@
}
- private StartupToadlet startupToadlet;
+ public StartupToadlet startupToadlet;
public void removeStartupToadlet() {
unregister(startupToadlet);
+ // Ready to be GCed
+ startupToadlet = null;
// Not in the navbar.
}
@@ -520,6 +522,10 @@
}
}
+ public StartupToadlet getStartupToadlet() {
+ return startupToadlet;
+ }
+
public Toadlet findToadlet(URI uri) throws PermanentRedirectException {
Iterator i = toadlets.iterator();
String path = uri.getPath();
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/StartupToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/StartupToadlet.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/StartupToadlet.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1,5 +1,6 @@
package freenet.clients.http;
+import freenet.l10n.L10n;
import java.io.IOException;
import java.net.URI;
@@ -9,40 +10,52 @@
/**
* Toadlet for "Freenet is starting up" page.
*/
-class StartupToadlet extends Toadlet {
+public class StartupToadlet extends Toadlet {
- private StaticToadlet staticToadlet;
-
+ private StaticToadlet staticToadlet;
+ private volatile boolean isPRNGReady = false;
+
public StartupToadlet(StaticToadlet staticToadlet) {
super(null);
this.staticToadlet = staticToadlet;
}
-
- public void handleGet(URI uri, HTTPRequest req, ToadletContext ctx) throws
ToadletContextClosedException, IOException, RedirectException {
- // If we don't disconnect we will have pipelining issues
- ctx.forceDisconnect();
- String path = uri.getPath();
- if (path.startsWith(StaticToadlet.ROOT_URL) && staticToadlet != null) {
- staticToadlet.handleGet(uri, req, ctx);
- } else {
- String desc = "Freenet is starting up";
- HTMLNode pageNode = ctx.getPageMaker().getPageNode(desc, false,
ctx);
- HTMLNode headNode = ctx.getPageMaker().getHeadNode(pageNode);
- headNode.addChild("meta", new String[]{"http-equiv", "content"},
new String[]{"refresh", "20; url="});
- HTMLNode contentNode = ctx.getPageMaker().getContentNode(pageNode);
-
- HTMLNode infobox =
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-error", desc));
- HTMLNode infoboxContent = ctx.getPageMaker().getContentNode(infobox);
- infoboxContent.addChild("#", "Your freenet node is starting up, please
hold on.");
-
- WelcomeToadlet.maybeDisplayWrapperLogfile(ctx, contentNode);
- //TODO: send a Retry-After header ?
- writeHTMLReply(ctx, 503, desc, pageNode.generate());
- }
-}
-
- public String supportedMethods() {
- return "GET";
- }
+ public void handleGet(URI uri, HTTPRequest req, ToadletContext ctx)
throws ToadletContextClosedException, IOException, RedirectException {
+ // If we don't disconnect we will have pipelining issues
+ ctx.forceDisconnect();
+
+ String path = uri.getPath();
+ if(path.startsWith(StaticToadlet.ROOT_URL) && staticToadlet !=
null)
+ staticToadlet.handleGet(uri, req, ctx);
+ else {
+ String desc = L10n.getString("StartupToadlet.title");
+ HTMLNode pageNode =
ctx.getPageMaker().getPageNode(desc, false, ctx);
+ HTMLNode headNode =
ctx.getPageMaker().getHeadNode(pageNode);
+ headNode.addChild("meta", new String[]{"http-equiv",
"content"}, new String[]{"refresh", "20; url="});
+ HTMLNode contentNode =
ctx.getPageMaker().getContentNode(pageNode);
+
+ if(!isPRNGReady) {
+ HTMLNode prngInfobox =
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-error",
L10n.getString("StartupToadlet.entropyErrorTitle")));
+ HTMLNode prngInfoboxContent =
ctx.getPageMaker().getContentNode(prngInfobox);
+ prngInfoboxContent.addChild("#",
L10n.getString("StartupToadlet.entropyErrorContent"));
+ }
+
+ HTMLNode infobox =
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-error", desc));
+ HTMLNode infoboxContent =
ctx.getPageMaker().getContentNode(infobox);
+ infoboxContent.addChild("#",
L10n.getString("StartupToadlet.isStartingUp"));
+
+ WelcomeToadlet.maybeDisplayWrapperLogfile(ctx,
contentNode);
+
+ //TODO: send a Retry-After header ?
+ writeHTMLReply(ctx, 503, desc, pageNode.generate());
+ }
+ }
+
+ public String supportedMethods() {
+ return "GET";
+ }
+
+ public void setIsPRNGReady() {
+ isPRNGReady = true;
+ }
}
\ No newline at end of file
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/Bookmark.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/Bookmark.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/Bookmark.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1,36 +1,35 @@
package freenet.clients.http.bookmark;
+import freenet.l10n.L10n;
import freenet.support.SimpleFieldSet;
public abstract class Bookmark {
- protected String name;
+ protected String name;
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- protected void setName(String s) {
- name = s;
- }
+ protected void setName(String s) {
+ name = (s.length() > 0 ? s : L10n.getString("Bookmark.noName"));
+ }
- public boolean equals(Object o) {
- if (o == this)
- return true;
- if (o instanceof Bookmark) {
- Bookmark b = (Bookmark) o;
- if (!b.name.equals(name)) {
- return false;
- }
- return true;
- } else {
- return false;
- }
- }
-
- public int hashCode() {
- return name.hashCode();
- }
-
- public abstract SimpleFieldSet getSimpleFieldSet();
+ public boolean equals(Object o) {
+ if(o == this)
+ return true;
+ if(o instanceof Bookmark) {
+ Bookmark b = (Bookmark) o;
+ if(!b.name.equals(name))
+ return false;
+ return true;
+ } else
+ return false;
+ }
+
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ public abstract SimpleFieldSet getSimpleFieldSet();
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/filter/HTMLFilter.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/filter/HTMLFilter.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/filter/HTMLFilter.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1815,8 +1815,6 @@
}
}
}
- if (hn.isEmpty())
- return null;
return hn;
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-07-07 15:51:48 UTC (rev 20999)
@@ -7,19 +7,19 @@
BookmarkCategory0.Content.Bookmark0.Name=The Ultimate FreeNet Index
BookmarkCategory0.Content.Bookmark0.Description=A new one-page index with a
menu including categories
BookmarkCategory0.Content.Bookmark0.hasAnActivelink=true
-BookmarkCategory0.Content.Bookmark0.URI=USK at
0I8gctpUE32CM0iQhXaYpCMvtPPGfT4pjXm01oid5Zc,3dAcn4fX2LyxO6uCnWFTx-2HKZ89uruurcKwLSCxbZ4,AQACAAE/Ultimate-Freenet-Index/24/
+BookmarkCategory0.Content.Bookmark0.URI=USK at
0I8gctpUE32CM0iQhXaYpCMvtPPGfT4pjXm01oid5Zc,3dAcn4fX2LyxO6uCnWFTx-2HKZ89uruurcKwLSCxbZ4,AQACAAE/Ultimate-Freenet-Index/25/
BookmarkCategory0.Content.Bookmark3.Name=Index des sites Fran?ais
BookmarkCategory0.Content.Bookmark3.Description=A small French index with
descriptions
BookmarkCategory0.Content.Bookmark3.hasAnActivelink=true
-BookmarkCategory0.Content.Bookmark3.URI=USK at
RJnh1EnvOSPwOWVRS2nyhC4eIQkKoNE5hcTv7~yY-sM,pOloLxnKWM~AL24iDMHOAvTvCqMlB-p2BO9zK96TOZA,AQACAAE/index_fr/50/
+BookmarkCategory0.Content.Bookmark3.URI=USK at
RJnh1EnvOSPwOWVRS2nyhC4eIQkKoNE5hcTv7~yY-sM,pOloLxnKWM~AL24iDMHOAvTvCqMlB-p2BO9zK96TOZA,AQACAAE/index_fr/54/
BookmarkCategory0.Content.Bookmark2.Name=Freenet Activelink Index (SLOW:
graphical index, preloads all the sites, so takes *ages* to load)
BookmarkCategory0.Content.Bookmark2.hasAnActivelink=true
BookmarkCategory0.Content.Bookmark2.Description=A graphical freenet index
(this will take a long time to load as it preloads the sites)
-BookmarkCategory0.Content.Bookmark2.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index/60/
+BookmarkCategory0.Content.Bookmark2.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index/67/
BookmarkCategory0.Content.Bookmark1.Name=Freenet Activelink Index Text Version
(a quick-loading non-graphical index site, no porn)
BookmarkCategory0.Content.Bookmark1.hasAnActivelink=true
BookmarkCategory0.Content.Bookmark1.Description=Text version of the Activelink
Index
-BookmarkCategory0.Content.Bookmark1.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index-text/23/
+BookmarkCategory0.Content.Bookmark1.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index-text/30/
BookmarkCategory1.Name=Freenet devel's flogs
BookmarkCategory1.Content.BookmarkCategory=0
BookmarkCategory1.Content.Bookmark=5
@@ -34,7 +34,7 @@
BookmarkCategory1.Content.Bookmark2.Name=Bombe
BookmarkCategory1.Content.Bookmark2.Description=Bombe's flog
BookmarkCategory1.Content.Bookmark2.hasAnActivelink=true
-BookmarkCategory1.Content.Bookmark2.URI=USK at
e3myoFyp5avg6WYN16ImHri6J7Nj8980Fm~aQe4EX1U,QvbWT0ImE0TwLODTl7EoJx2NBnwDxTbLTE6zkB-eGPs,AQACAAE/bombe/38/
+BookmarkCategory1.Content.Bookmark2.URI=USK at
e3myoFyp5avg6WYN16ImHri6J7Nj8980Fm~aQe4EX1U,QvbWT0ImE0TwLODTl7EoJx2NBnwDxTbLTE6zkB-eGPs,AQACAAE/bombe/41/
BookmarkCategory1.Content.Bookmark1.Name=Nextgen$
BookmarkCategory1.Content.Bookmark1.Description=NextGen$' flog
BookmarkCategory1.Content.Bookmark1.hasAnActivelink=true
@@ -49,7 +49,7 @@
BookmarkCategory2.Content.Bookmark0.Name=Freenet Message System
BookmarkCategory2.Content.Bookmark0.Description=The official freesite of FMS,
a spam resistant message board system for Freenet
BookmarkCategory2.Content.Bookmark0.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark0.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/55/
+BookmarkCategory2.Content.Bookmark0.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/62/
BookmarkCategory2.Content.Bookmark1.Name=Freemail
BookmarkCategory2.Content.Bookmark1.Description=The official site for Freemail
- email over Freenet
BookmarkCategory2.Content.Bookmark1.hasAnActivelink=true
@@ -62,7 +62,7 @@
BookmarkCategory2.Content.Bookmark3.Name=Freesite HOWTO
BookmarkCategory2.Content.Bookmark3.Description=A more detailed explanation of
publishing freesites
BookmarkCategory2.Content.Bookmark3.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark4.URI=USK at
F-BKUq9vNTrvp7D90r5edQ4MfZCrx3pP7TofdDlCRoU,YFUeosm79Z3KZxC62qQCteCCUI3D-LYyRk6P9auVpPA,AQACAAE/freenetapps/22/
+BookmarkCategory2.Content.Bookmark4.URI=USK at
ugb~uuscsidMI-Ze8laZe~o3BUIb3S50i25RIwDH99M,9T20t3xoG-dQfMO94LGOl9AxRTkaz~TykFY-voqaTQI,AQACAAE/FAFS/4/
BookmarkCategory2.Content.Bookmark4.hasAnActivelink=true
BookmarkCategory2.Content.Bookmark4.Name=The Freenet Applications Freesite
BookmarkCategory2.Content.Bookmark4.Description=Various links to Freenet
applications, and instructions for using them
Modified: branches/saltedhashstore/freenet/src/freenet/crypt/Yarrow.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/crypt/Yarrow.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/crypt/Yarrow.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -50,6 +50,7 @@
* @author Scott G. Miller <scgmille at indiana.edu>
*/
public class Yarrow extends RandomSource {
+
private static final long serialVersionUID = -1;
/**
* Security parameters
@@ -57,36 +58,35 @@
private static final boolean DEBUG = false;
private static final int Pg = 10;
private final SecureRandom sr;
-
public final File seedfile; //A file to which seed data should be
dumped periodically
public Yarrow() {
- this("prng.seed", "SHA1", "Rijndael",true);
+ this("prng.seed", "SHA1", "Rijndael", true);
}
- public Yarrow(String seed, String digest, String cipher,boolean
updateSeed) {
- this(new File(seed), digest, cipher,updateSeed);
+ public Yarrow(String seed, String digest, String cipher, boolean
updateSeed) {
+ this(new File(seed), digest, cipher, updateSeed);
}
- public Yarrow(File seed, String digest, String cipher,boolean
updateSeed) {
- SecureRandom s;
- try {
- s = SecureRandom.getInstance("SHA1PRNG");
- } catch (NoSuchAlgorithmException e) {
- s = null;
- }
- sr = s;
- try {
- accumulator_init(digest);
- reseed_init(digest);
- generator_init(cipher);
- } catch (NoSuchAlgorithmException e) {
- Logger.error(this, "Could not init pools trying to
getInstance("+digest+"): "+e, e);
- throw new RuntimeException("Cannot initialize Yarrow!: "+e, e);
- }
+ public Yarrow(File seed, String digest, String cipher, boolean
updateSeed) {
+ SecureRandom s;
+ try {
+ s = SecureRandom.getInstance("SHA1PRNG");
+ } catch(NoSuchAlgorithmException e) {
+ s = null;
+ }
+ sr = s;
+ try {
+ accumulator_init(digest);
+ reseed_init(digest);
+ generator_init(cipher);
+ } catch(NoSuchAlgorithmException e) {
+ Logger.error(this, "Could not init pools trying to
getInstance(" + digest + "): " + e, e);
+ throw new RuntimeException("Cannot initialize Yarrow!:
" + e, e);
+ }
entropy_init(seed);
- seedFromExternalStuff(false);
- if (updateSeed && !(seed.toString()).equals("/dev/urandom"))
//Dont try to update the seedfile if we know that it wont be possible anyways
+ seedFromExternalStuff(true);
+ if(updateSeed && !(seed.toString()).equals("/dev/urandom"))
//Dont try to update the seedfile if we know that it wont be possible anyways
seedfile = seed;
else
seedfile = null;
@@ -100,85 +100,82 @@
public void seedFromExternalStuff(boolean canBlock) {
byte[] buf = new byte[32];
- if(File.separatorChar == '/') {
- DataInputStream dis = null;
- FileInputStream fis = null;
- File hwrng = new File("/dev/hwrng");
- if(hwrng.exists() && hwrng.canRead()) {
- try {
- fis = new FileInputStream(hwrng);
- dis = new DataInputStream(fis);
- dis.readFully(buf);
- consumeBytes(buf);
- dis.readFully(buf);
- consumeBytes(buf);
- dis.close();
- } catch (Throwable t) {
- Logger.normal(this, "Can't read /dev/hwrng even
though exists and is readable: "+t, t);
- } finally {
- Closer.close(dis);
- Closer.close(fis);
- }
- }
+ if(File.separatorChar == '/') {
+ DataInputStream dis = null;
+ FileInputStream fis = null;
+ File hwrng = new File("/dev/hwrng");
+ if(hwrng.exists() && hwrng.canRead())
+ try {
+ fis = new FileInputStream(hwrng);
+ dis = new DataInputStream(fis);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ dis.close();
+ } catch(Throwable t) {
+ Logger.normal(this, "Can't read
/dev/hwrng even though exists and is readable: " + t, t);
+ } finally {
+ Closer.close(dis);
+ Closer.close(fis);
+ }
- boolean isSystemEntropyAvailable = true;
- // Read some bits from /dev/urandom
- try {
- fis = new FileInputStream("/dev/urandom");
- dis = new DataInputStream(fis);
- dis.readFully(buf);
- consumeBytes(buf);
- dis.readFully(buf);
- consumeBytes(buf);
- } catch (Throwable t) {
- Logger.normal(this, "Can't read /dev/urandom: "+t, t);
- // We can't read it; let's skip /dev/random and seed from
SecureRandom.generateSeed()
- canBlock = true;
- isSystemEntropyAvailable = false;
- } finally {
- Closer.close(dis);
- Closer.close(fis);
- }
- if(canBlock && isSystemEntropyAvailable) {
- // Read some bits from /dev/random
- try {
- fis = new FileInputStream("/dev/random");
- dis = new DataInputStream(fis);
- dis.readFully(buf);
- consumeBytes(buf);
- dis.readFully(buf);
- consumeBytes(buf);
- } catch (Throwable t) {
- Logger.normal(this, "Can't read /dev/random: "+t, t);
- } finally {
- Closer.close(dis);
- Closer.close(fis);
- }
- }
- fis = null;
- } else {
- // Force generateSeed(), since we can't read random data from
anywhere else.
- // Anyway, Windows's CAPI won't block.
- canBlock = true;
- }
- if(canBlock) {
- // SecureRandom hopefully acts as a proxy for CAPI on
Windows
- buf = sr.generateSeed(32);
- consumeBytes(buf);
- buf = sr.generateSeed(32);
- consumeBytes(buf);
- }
- // A few more bits
- consumeString(Long.toHexString(Runtime.getRuntime().freeMemory()));
- consumeString(Long.toHexString(Runtime.getRuntime().totalMemory()));
+ boolean isSystemEntropyAvailable = true;
+ // Read some bits from /dev/urandom
+ try {
+ fis = new FileInputStream("/dev/urandom");
+ dis = new DataInputStream(fis);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ } catch(Throwable t) {
+ Logger.normal(this, "Can't read /dev/urandom: "
+ t, t);
+ // We can't read it; let's skip /dev/random and
seed from SecureRandom.generateSeed()
+ canBlock = true;
+ isSystemEntropyAvailable = false;
+ } finally {
+ Closer.close(dis);
+ Closer.close(fis);
+ }
+ if(canBlock && isSystemEntropyAvailable)
+ // Read some bits from /dev/random
+ try {
+ fis = new
FileInputStream("/dev/random");
+ dis = new DataInputStream(fis);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ dis.readFully(buf);
+ consumeBytes(buf);
+ } catch(Throwable t) {
+ Logger.normal(this, "Can't read
/dev/random: " + t, t);
+ } finally {
+ Closer.close(dis);
+ Closer.close(fis);
+ }
+ fis = null;
+ } else
+ // Force generateSeed(), since we can't read random
data from anywhere else.
+ // Anyway, Windows's CAPI won't block.
+ canBlock = true;
+ if(canBlock) {
+ // SecureRandom hopefully acts as a proxy for CAPI on
Windows
+ buf = sr.generateSeed(32);
+ consumeBytes(buf);
+ buf = sr.generateSeed(32);
+ consumeBytes(buf);
+ }
+ // A few more bits
+
consumeString(Long.toHexString(Runtime.getRuntime().freeMemory()));
+
consumeString(Long.toHexString(Runtime.getRuntime().totalMemory()));
}
-
- private void entropy_init(File seed) {
+
+ private void entropy_init(File seed) {
Properties sys = System.getProperties();
EntropySource startupEntropy = new EntropySource();
// Consume the system properties list
- for (Enumeration enu = sys.propertyNames();
enu.hasMoreElements();) {
+ for(Enumeration enu = sys.propertyNames();
enu.hasMoreElements();) {
String key = (String) enu.nextElement();
consumeString(key);
consumeString(sys.getProperty(key));
@@ -187,8 +184,8 @@
// Consume the local IP address
try {
consumeString(InetAddress.getLocalHost().toString());
- } catch (Exception e) {
- // Ignore
+ } catch(Exception e) {
+ // Ignore
}
readStartupEntropy(startupEntropy);
@@ -227,32 +224,29 @@
dis.close();
} catch(IOException e) {
Logger.error(this, "IOE trying to read the seedfile
from disk : " + e.getMessage());
- }
- finally {
+ } finally {
Closer.close(dis);
Closer.close(bis);
Closer.close(fis);
}
fast_pool_reseed();
}
+ private long timeLastWroteSeed = -1;
- private long timeLastWroteSeed = -1;
-
public void write_seed(File filename) {
write_seed(filename, false);
}
-
+
public void write_seed(File filename, boolean force) {
- if(!force) {
+ if(!force)
synchronized(this) {
long now = System.currentTimeMillis();
- if(now - timeLastWroteSeed <= 60*60*1000 /*
once per hour */) {
+ if(now - timeLastWroteSeed <= 60 * 60 * 1000 /*
once per hour */)
return;
- } else
+ else
timeLastWroteSeed = now;
}
- }
-
+
FileOutputStream fos = null;
BufferedOutputStream bos = null;
DataOutputStream dos = null;
@@ -263,25 +257,23 @@
for(int i = 0; i < 32; i++)
dos.writeLong(nextLong());
-
+
dos.flush();
dos.close();
} catch(IOException e) {
Logger.error(this, "IOE while saving the seed file! : "
+ e.getMessage());
- }
- finally {
+ } finally {
Closer.close(dos);
Closer.close(bos);
Closer.close(fos);
}
}
-
/**
* 5.1 Generation Mechanism
*/
private BlockCipher cipher_ctx;
- private byte[] output_buffer, counter, allZeroString, tmp;
- private int output_count, fetch_counter;
+ private byte[] output_buffer, counter, allZeroString, tmp;
+ private int output_count, fetch_counter;
private void generator_init(String cipher) {
cipher_ctx = Util.getCipherByName(cipher);
@@ -294,8 +286,8 @@
}
private final void counterInc() {
- for (int i = counter.length - 1; i >= 0; i--)
- if (++counter[i] != 0)
+ for(int i = counter.length - 1; i >= 0; i--)
+ if(++counter[i] != 0)
break;
}
@@ -305,7 +297,7 @@
output_buffer = new byte[counter.length];
cipher_ctx.encipher(counter, output_buffer);
- if (output_count++ > Pg) {
+ if(output_count++ > Pg) {
output_count = 0;
nextBytes(tmp);
rekey(tmp);
@@ -323,7 +315,7 @@
// an offset to the bytes
private synchronized int getBytes(int count) {
- if (fetch_counter + count > output_buffer.length) {
+ if(fetch_counter + count > output_buffer.length) {
fetch_counter = 0;
generateOutput();
return getBytes(count);
@@ -333,45 +325,72 @@
fetch_counter += count;
return rv;
}
+ static final int bitTable[][] = {{0, 0x0}, {
+ 1, 0x1
+ }, {
+ 1, 0x3
+ }, {
+ 1, 0x7
+ }, {
+ 1, 0xf
+ }, {
+ 1, 0x1f
+ }, {
+ 1, 0x3f
+ }, {
+ 1, 0x7f
+ }, {
+ 1, 0xff
+ }, {
+ 2, 0x1ff
+ }, {
+ 2, 0x3ff
+ }, {
+ 2, 0x7ff
+ }, {
+ 2, 0xfff
+ }, {
+ 2, 0x1fff
+ }, {
+ 2, 0x3fff
+ }, {
+ 2, 0x7fff
+ }, {
+ 2, 0xffff
+ }, {
+ 3, 0x1ffff
+ }, {
+ 3, 0x3ffff
+ }, {
+ 3, 0x7ffff
+ }, {
+ 3, 0xfffff
+ }, {
+ 3, 0x1fffff
+ }, {
+ 3, 0x3fffff
+ }, {
+ 3, 0x7fffff
+ }, {
+ 3, 0xffffff
+ }, {
+ 4, 0x1ffffff
+ }, {
+ 4, 0x3ffffff
+ }, {
+ 4, 0x7ffffff
+ }, {
+ 4, 0xfffffff
+ }, {
+ 4, 0x1fffffff
+ }, {
+ 4, 0x3fffffff
+ }, {
+ 4, 0x7fffffff
+ }, {
+ 4, 0xffffffff
+ }};
- static final int bitTable[][] = { { 0, 0x0 }, {
- 1, 0x1 }, {
- 1, 0x3 }, {
- 1, 0x7 }, {
- 1, 0xf }, {
- 1, 0x1f }, {
- 1, 0x3f }, {
- 1, 0x7f }, {
- 1, 0xff }, {
-
- 2, 0x1ff }, {
- 2, 0x3ff }, {
- 2, 0x7ff }, {
- 2, 0xfff }, {
- 2, 0x1fff }, {
- 2, 0x3fff }, {
- 2, 0x7fff }, {
- 2, 0xffff }, {
-
- 3, 0x1ffff }, {
- 3, 0x3ffff }, {
- 3, 0x7ffff }, {
- 3, 0xfffff }, {
- 3, 0x1fffff }, {
- 3, 0x3fffff }, {
- 3, 0x7fffff }, {
- 3, 0xffffff }, {
-
- 4, 0x1ffffff }, {
- 4, 0x3ffffff }, {
- 4, 0x7ffffff }, {
- 4, 0xfffffff }, {
- 4, 0x1fffffff }, {
- 4, 0x3fffffff }, {
- 4, 0x7fffffff }, {
- 4, 0xffffffff }
- };
-
// This may *look* more complicated than in is, but in fact it is
// loop unrolled, cache and operation optimized.
// So don't try to simplify it... Thanks. :)
@@ -382,52 +401,48 @@
int val = output_buffer[offset];
- if (parameters[0] == 4)
- val += (output_buffer[offset + 1] << 24)
- + (output_buffer[offset + 2] << 16)
- + (output_buffer[offset + 3] << 8);
- else if (parameters[0] == 3)
- val += (output_buffer[offset + 1] << 16)
- + (output_buffer[offset + 2] << 8);
- else if (parameters[0] == 2)
+ if(parameters[0] == 4)
+ val += (output_buffer[offset + 1] << 24) +
(output_buffer[offset + 2] << 16) + (output_buffer[offset + 3] << 8);
+ else if(parameters[0] == 3)
+ val += (output_buffer[offset + 1] << 16) +
(output_buffer[offset + 2] << 8);
+ else if(parameters[0] == 2)
val += output_buffer[offset + 2] << 8;
return val & parameters[1];
}
-
/**
* 5.2 Entropy Accumulator
*/
- private MessageDigest fast_pool, slow_pool;
- private int fast_entropy, slow_entropy;
+ private MessageDigest fast_pool, slow_pool;
+ private int fast_entropy, slow_entropy;
private boolean fast_select;
private Hashtable entropySeen;
private void accumulator_init(String digest) throws
NoSuchAlgorithmException {
- fast_pool = MessageDigest.getInstance(digest);
- slow_pool = MessageDigest.getInstance(digest);
+ fast_pool = MessageDigest.getInstance(digest);
+ slow_pool = MessageDigest.getInstance(digest);
entropySeen = new Hashtable();
}
public int acceptEntropy(EntropySource source, long data, int
entropyGuess) {
return acceptEntropy(source, data, entropyGuess, 1.0);
}
-
- public int acceptEntropyBytes(EntropySource source, byte[] buf, int
offset,
- int length, double bias) {
- int totalRealEntropy = 0;
- for(int i=0;i<length;i+=8) {
- long thingy = 0;
- int bytes = 0;
- for(int j=0;j<Math.min(length,i+8);j++) {
- thingy = (thingy << 8) + buf[j];
- bytes++;
- }
- totalRealEntropy += acceptEntropy(source, thingy, bytes*8, bias);
- }
- return totalRealEntropy;
- }
-
+
+ public int acceptEntropyBytes(EntropySource source, byte[] buf, int
offset,
+ int length, double bias) {
+ int totalRealEntropy = 0;
+ for(int i = 0; i < length; i += 8) {
+ long thingy = 0;
+ int bytes = 0;
+ for(int j = 0; j < Math.min(length, i + 8); j++) {
+ thingy = (thingy << 8) + buf[j];
+ bytes++;
+ }
+ totalRealEntropy += acceptEntropy(source, thingy, bytes
* 8, bias);
+ }
+ return totalRealEntropy;
+ }
+
public int acceptEntropy(
EntropySource source,
long data,
@@ -437,15 +452,15 @@
data,
source,
(int) (bias * Math.min(
- 32,
- Math.min(estimateEntropy(source, data),
entropyGuess))));
+ 32,
+ Math.min(estimateEntropy(source, data),
entropyGuess))));
}
private int accept_entropy(long data, EntropySource source, int
actualEntropy) {
boolean performedPoolReseed = false;
- synchronized (this) {
+ synchronized(this) {
fast_select = !fast_select;
MessageDigest pool = (fast_select ? fast_pool :
slow_pool);
pool.update((byte) data);
@@ -457,33 +472,33 @@
pool.update((byte) (data >> 48));
pool.update((byte) (data >> 56));
- if (fast_select) {
+ if(fast_select) {
fast_entropy += actualEntropy;
- if (fast_entropy > FAST_THRESHOLD) {
+ if(fast_entropy > FAST_THRESHOLD) {
fast_pool_reseed();
performedPoolReseed = true;
}
} else {
slow_entropy += actualEntropy;
- if (source != null) {
+ if(source != null) {
Integer contributedEntropy = (Integer)
entropySeen.get(source);
- if (contributedEntropy == null)
+ if(contributedEntropy == null)
contributedEntropy = new
Integer(actualEntropy);
else
contributedEntropy = new
Integer(actualEntropy + contributedEntropy.intValue());
entropySeen.put(source,
contributedEntropy);
- if (slow_entropy >= (SLOW_THRESHOLD *
2)) {
+ if(slow_entropy >= (SLOW_THRESHOLD *
2)) {
int kc = 0;
- for (Enumeration enu =
entropySeen.keys(); enu.hasMoreElements();) {
+ for(Enumeration enu =
entropySeen.keys(); enu.hasMoreElements();) {
Object key =
enu.nextElement();
Integer v = (Integer)
entropySeen.get(key);
- if (DEBUG)
+ if(DEBUG)
Logger.normal(this, "Key: <" + key + "> " + v);
- if (v.intValue() >
SLOW_THRESHOLD) {
+ if(v.intValue() >
SLOW_THRESHOLD) {
kc++;
- if (kc >=
SLOW_K) {
+ if(kc >=
SLOW_K) {
slow_pool_reseed();
performedPoolReseed = true;
break;
@@ -493,18 +508,20 @@
}
}
}
- if (DEBUG)
+ if(DEBUG)
// Core.logger.log(this,"Fast pool:
"+fast_entropy+"\tSlow pool:
// "+slow_entropy, Logger.NORMAL);
System.err.println("Fast pool: " + fast_entropy
+ "\tSlow pool: " + slow_entropy);
}
- if (performedPoolReseed && (seedfile != null)) {
+ if(performedPoolReseed && (seedfile != null)) {
//Dont do this while synchronized on 'this' since
//opening a file seems to be suprisingly slow on windows
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
- if(logMINOR) Logger.minor(this, "Writing seedfile");
- write_seed(seedfile);
- if(logMINOR) Logger.minor(this, "Written seedfile");
+ if(logMINOR)
+ Logger.minor(this, "Writing seedfile");
+ write_seed(seedfile);
+ if(logMINOR)
+ Logger.minor(this, "Written seedfile");
}
return actualEntropy;
@@ -518,15 +535,15 @@
int delta3 = delta2 - source.lastDelta2;
source.lastDelta2 = delta2;
- if (delta < 0)
+ if(delta < 0)
delta = -delta;
- if (delta2 < 0)
+ if(delta2 < 0)
delta2 = -delta2;
- if (delta3 < 0)
+ if(delta3 < 0)
delta3 = -delta3;
- if (delta > delta2)
+ if(delta > delta2)
delta = delta2;
- if (delta > delta3)
+ if(delta > delta3)
delta = delta3;
/*
@@ -555,9 +572,9 @@
}
public int acceptTimerEntropy(EntropySource timer) {
- return acceptTimerEntropy(timer, 1.0);
+ return acceptTimerEntropy(timer, 1.0);
}
-
+
public int acceptTimerEntropy(EntropySource timer, double bias) {
long now = System.currentTimeMillis();
return acceptEntropy(timer, now - timer.lastVal, 32, bias);
@@ -570,7 +587,6 @@
*/
public void waitForEntropy(int bits) {
}
-
/**
* 5.3 Reseed mechanism
*/
@@ -586,7 +602,7 @@
byte[] v0 = fast_pool.digest();
byte[] vi = v0;
- for (byte i = 0; i < Pt; i++) {
+ for(byte i = 0; i < Pt; i++) {
reseed_ctx.update(vi, 0, vi.length);
reseed_ctx.update(v0, 0, v0.length);
reseed_ctx.update(i);
@@ -600,7 +616,7 @@
fast_entropy = 0;
long endTime = System.currentTimeMillis();
if(endTime - startTime > 5000)
- Logger.normal(this, "Fast pool reseed took
"+(endTime-startTime)+"ms");
+ Logger.normal(this, "Fast pool reseed took " + (endTime
- startTime) + "ms");
}
private void slow_pool_reseed() {
@@ -611,16 +627,13 @@
slow_entropy = 0;
Integer ZERO = new Integer(0);
- for (Enumeration enu = entropySeen.keys();
enu.hasMoreElements();)
+ for(Enumeration enu = entropySeen.keys();
enu.hasMoreElements();)
entropySeen.put(enu.nextElement(), ZERO);
}
-
/**
* 5.4 Reseed Control parameters
*/
- private static final int FAST_THRESHOLD = 100,
- SLOW_THRESHOLD = 160,
- SLOW_K = 2;
+ private static final int FAST_THRESHOLD = 100, SLOW_THRESHOLD = 160,
SLOW_K = 2;
/**
* If the RandomSource has any resources it wants to close, it can do so
@@ -633,58 +646,53 @@
* Test routine
*/
public static void main(String[] args) throws Exception {
- Yarrow r = new Yarrow(new File("/dev/urandom"), "SHA1",
"Rijndael",true);
+ Yarrow r = new Yarrow(new File("/dev/urandom"), "SHA1",
"Rijndael", true);
byte[] b = new byte[1024];
- if ((args.length == 0) || args[0].equalsIgnoreCase("latency")) {
- if (args.length == 2)
+ if((args.length == 0) || args[0].equalsIgnoreCase("latency")) {
+ if(args.length == 2)
b = new byte[Integer.parseInt(args[1])];
long start = System.currentTimeMillis();
- for (int i = 0; i < 100; i++)
+ for(int i = 0; i < 100; i++)
r.nextBytes(b);
System.out.println(
- (double) (System.currentTimeMillis() - start)
- / (100 * b.length)
- * 1024
- + " ms/k");
+ (double) (System.currentTimeMillis() - start) /
(100 * b.length) * 1024 + " ms/k");
start = System.currentTimeMillis();
- for (int i = 0; i < 1000; i++)
+ for(int i = 0; i < 1000; i++)
r.nextInt();
System.out.println(
- (double) (System.currentTimeMillis() - start) /
1000
- + " ms/int");
+ (double) (System.currentTimeMillis() - start) /
1000 + " ms/int");
start = System.currentTimeMillis();
- for (int i = 0; i < 1000; i++)
+ for(int i = 0; i < 1000; i++)
r.nextLong();
System.out.println(
- (double) (System.currentTimeMillis() - start) /
1000
- + " ms/long");
- } else if (args[0].equalsIgnoreCase("randomness")) {
+ (double) (System.currentTimeMillis() - start) /
1000 + " ms/long");
+ } else if(args[0].equalsIgnoreCase("randomness")) {
int kb = Integer.parseInt(args[1]);
- for (int i = 0; i < kb; i++) {
+ for(int i = 0; i < kb; i++) {
r.nextBytes(b);
System.out.write(b);
}
- } else if (args[0].equalsIgnoreCase("gathering")) {
+ } else if(args[0].equalsIgnoreCase("gathering")) {
System.gc();
EntropySource t = new EntropySource();
long start = System.currentTimeMillis();
- for (int i = 0; i < 100000; i++)
+ for(int i = 0; i < 100000; i++)
r.acceptEntropy(t, System.currentTimeMillis(),
32);
System.err.println(
(double) (System.currentTimeMillis() - start) /
100000);
System.gc();
start = System.currentTimeMillis();
- for (int i = 0; i < 100000; i++)
+ for(int i = 0; i < 100000; i++)
r.acceptTimerEntropy(t);
System.err.println(
(double) (System.currentTimeMillis() - start) /
100000);
- } else if (args[0].equalsIgnoreCase("volume")) {
+ } else if(args[0].equalsIgnoreCase("volume")) {
b = new byte[1020];
long duration =
System.currentTimeMillis() +
Integer.parseInt(args[1]);
- while (System.currentTimeMillis() < duration) {
+ while(System.currentTimeMillis() < duration) {
r.nextBytes(b);
System.out.write(b);
}
@@ -697,71 +705,68 @@
// r.nextBytes(buffer);
// System.out.write(buffer);
// }
- } else if (args[0].equalsIgnoreCase("bitstream")) {
- while (true) {
+ } else if(args[0].equalsIgnoreCase("bitstream"))
+ while(true) {
int v = r.nextInt();
- for (int i = 0; i < 32; i++) {
- if (((v >> i) & 1) == 1)
+ for(int i = 0; i < 32; i++) {
+ if(((v >> i) & 1) == 1)
System.out.print('1');
else
System.out.print('0');
}
}
- } else if (args[0].equalsIgnoreCase("sample")) {
- if ((args.length == 1) || args[1].equals("general")) {
+ else if(args[0].equalsIgnoreCase("sample"))
+ if((args.length == 1) || args[1].equals("general")) {
System.out.println("nextInt(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextInt());
System.out.println("nextLong(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextLong());
System.out.println("nextFloat(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextFloat());
System.out.println("nextDouble(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextDouble());
System.out.println("nextFullFloat(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextFullFloat());
System.out.println("nextFullDouble(): ");
- for (int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++)
System.out.println(r.nextFullDouble());
- } else if (args[1].equals("normalized")) {
- for (int i = 0; i < 20; i++)
+ } else if(args[1].equals("normalized"))
+ for(int i = 0; i < 20; i++)
System.out.println(r.nextDouble());
- }
- }
}
private void consumeString(String str) {
byte[] b;
try {
b = str.getBytes("UTF-8");
- } catch (UnsupportedEncodingException e) {
+ } catch(UnsupportedEncodingException e) {
throw new Error("Impossible: JVM doesn't support UTF-8:
" + e, e);
}
consumeBytes(b);
}
private void consumeBytes(byte[] bytes) {
- if (fast_select) {
+ if(fast_select)
fast_pool.update(bytes, 0, bytes.length);
- } else {
+ else
slow_pool.update(bytes, 0, bytes.length);
- }
fast_select = !fast_select;
}
- public String getCheckpointName() {
- return "Yarrow random number generator checkpoint";
- }
+ public String getCheckpointName() {
+ return "Yarrow random number generator checkpoint";
+ }
- public long nextCheckpoint() {
- return System.currentTimeMillis() + 60*60*1000;
- }
+ public long nextCheckpoint() {
+ return System.currentTimeMillis() + 60 * 60 * 1000;
+ }
- public void checkpoint() {
- seedFromExternalStuff(true);
- }
+ public void checkpoint() {
+ seedFromExternalStuff(true);
+ }
}
Modified: branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java 2008-07-07
15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java 2008-07-07
15:51:48 UTC (rev 20999)
@@ -34,19 +34,19 @@
public static final String FALLBACK_DEFAULT = "en";
/** @see http://www.omniglot.com/language/names.htm */
public static final String[][] AVAILABLE_LANGUAGES = {
- new String[] { "en", "English" },
- new String[] { "es", "Espa?ol" },
- new String[] { "da", "Dansk" },
- new String[] { "de", "Deutsch" },
- new String[] { "fi", "Suomi" },
- new String[] { "fr", "Fran?ais" },
- new String[] { "it", "Italiano" },
- new String[] { "no", "Norsk" },
- new String[] { "pl", "Polski" },
- new String[] { "se", "Svenska" },
- new String[] { "zh-cn", "??(??)" },
- new String[] { "zh-tw", "??(??)" },
- new String[] { "unlisted", "unlisted"},
+ new String[] { "en", "English", "eng" },
+ new String[] { "es", "Espa?ol", "spa" },
+ new String[] { "da", "Dansk", "dan" },
+ new String[] { "de", "Deutsch", "deu" },
+ new String[] { "fi", "Suomi", "fin" },
+ new String[] { "fr", "Fran?ais", "fra" },
+ new String[] { "it", "Italiano", "ita" },
+ new String[] { "no", "Norsk", "nor" },
+ new String[] { "pl", "Polski", "pol" },
+ new String[] { "se", "Svenska", "svk" },
+ new String[] { "zh-cn", "??(??)", "chn" },
+ new String[] { "zh-tw", "??(??)", "zh-tw" },
+ new String[] { "unlisted", "unlisted", "unlisted"},
};
private final String selectedLanguage;
@@ -59,7 +59,7 @@
L10n(String selected) {
selectedLanguage = selected;
- File tmpFile = new File(L10n.PREFIX + selected +
L10n.OVERRIDE_SUFFIX);
+ File tmpFile = new File(L10n.PREFIX +
mapLanguageNameToShortCode(selected) + L10n.OVERRIDE_SUFFIX);
try {
if(tmpFile.exists() && tmpFile.canRead() &&
tmpFile.length() > 0) {
@@ -361,8 +361,9 @@
for(int i=0; i<AVAILABLE_LANGUAGES.length; i++) {
String currentShortCode = AVAILABLE_LANGUAGES[i][0];
String currentLongName = AVAILABLE_LANGUAGES[i][1];
+ String currentCountryCodeName =
AVAILABLE_LANGUAGES[i][2];
- if(currentShortCode.equalsIgnoreCase(name) ||
currentLongName.equalsIgnoreCase(name))
+ if(currentShortCode.equalsIgnoreCase(name) ||
currentLongName.equalsIgnoreCase(name) ||
currentCountryCodeName.equalsIgnoreCase(name))
return currentShortCode;
}
return null;
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
2008-07-07 15:51:48 UTC (rev 20999)
@@ -9,6 +9,7 @@
Announcer.announceDisabledTooOldShort=The node has tried to connect to the
network but your copy of Freenet is too old. You should upgrade.
Announcer.announceAlertShort=The node is trying to connect to the network, it
will be slow for a while.
Announcer.coolingOff=For the next ${time} seconds, the node is waiting for the
nodes that it just announced to to connect, if there are not enough nodes it
will try a different node.
+Bookmark.noName=no name
BookmarkEditorToadlet.addBookmark=Add Bookmark
BookmarkEditorToadlet.addCategory=Add Category
BookmarkEditorToadlet.addNewBookmark=Add a new bookmark
@@ -1045,6 +1046,10 @@
SSL.keyPassLong=Password of private key access
SSL.version=Version of SSL
SSL.versionLong=Version of SSL, SSLv3 or TLSv1 (default SSLv3)
+StartupToadlet.entropyErrorTitle=Not enough entropy is available!
+StartupToadlet.entropyErrorContent=There isn't enough entropy available on
your system... Freenet won't start until it can gather enough.
+StartupToadlet.isStartingUp=Your freenet node is starting up, please hold on.
+StartupToadlet.title=Freenet is starting up
StaticToadlet.pathInvalidChars=The given URI contains disallowed characters.
StaticToadlet.pathNotFound=The path you specified doesn't exist.
StaticToadlet.pathNotFoundTitle=Path Not Found
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-07-07 15:51:48 UTC (rev 20999)
@@ -85,6 +85,10 @@
ConfigToadlet.fproxy=fproxy
ConfigToadlet.fullTitle=Configuration du noeud ${name}
ConfigToadlet.logger=enregistreur de logs
+ConfigToadlet.modeAdvanced=Options de configuration avanc?es
+ConfigToadlet.modeAdvancedTooltip=Options de configuration utiles uniquement
aux utilisateurs exp?riment?s et aux d?veloppeurs
+ConfigToadlet.modeSimple=Options de configuration simple
+ConfigToadlet.modeSimpleTooltip=Options de configuration utiles ? tous les
utilisateurs
ConfigToadlet.node=noeud
ConfigToadlet.pluginmanager=gestionnaire de plugins
ConfigToadlet.pluginmanager2=gestionnaire de plugins 2
@@ -439,7 +443,7 @@
FirstTimeWizardToadlet.noNetworkIF=Pas d'autre carte r?seau trouv?e
FirstTimeWizardToadlet.noNetworkIFLong=Freenet n'a pas trouv? d'autre carte
r?seau. Il consid?rera que vous vous y connectez seulement depuis votre
ordinateur.
FirstTimeWizardToadlet.opennetNo=Oui, j'ai au moins 5 amis qui utilisent
Freenet et je vais les ajouter manuellement sur la page Amis.
-FirstTimeWizardToadlet.opennetWarning=Freenet est peut-?tre ill?gal dans votre
pays, car il permet une libert? d'expression sans restrictions. Si c'est le
cas, et que vous utilisez la connexion automatique ? des inconnus, votre
gouvernement pourra savoir facilement que vous utilisez Freenet; vous ne
devriez donc pas activer ce mode et ne devriez vous connecter qu'? des gens que
vous connaissez (et en qui vous avez confiance). Freenet est toujours en
version b?ta, nous ne garantissons pas qu'il est exempt de bugs, et par
cons?quent, ne pouvons garantir votre anonymat/s?curit?. Il faut faire
particuli?rement attention aux gens avec qui vous vous connectez: ce sont eux
qui sont eux qui occupent la meilleure place pour espionner vos requ?tes.
+FirstTimeWizardToadlet.opennetWarning=Freenet est peut-?tre ill?gal dans votre
pays, car il permet une libert? d'expression sans restrictions. Si c'est le
cas, et que vous utilisez la connexion automatique ? des inconnus, votre
gouvernement pourra savoir facilement que vous utilisez Freenet; vous ne
devriez donc pas activer ce mode et ne devriez vous connecter qu'? des gens que
vous connaissez (et en qui vous avez confiance). Freenet est toujours
exp?rimental, nous ne garantissons pas qu'il est exempt de bugs, et par
cons?quent, ne pouvons garantir votre anonymat/s?curit?. Il faut faire
particuli?rement attention aux gens avec qui vous vous connectez: ils occupent
la meilleure place pour espionner vos requ?tes.
FirstTimeWizardToadlet.opennetYes=Non, je veux que le n?ud trouve
automatiquement des gens ? qui se connecter.
FirstTimeWizardToadlet.skipWizard=Je ne suis pas un d?butant, passer
l'assistant !
FirstTimeWizardToadlet.step1Title=Assistant de d?marrage Freenet ! - Amis et
Inconnus
@@ -665,6 +669,9 @@
Node.inBWLimit=Limite de t?l?chargement (octet/seconde)
Node.inBWLimitLong=Limite de t?l?chargement (octets/seconde); le noeud
essaiera de ne pas la d?passer ; -1 correspond ? 4x la limite d'upload
Node.invalidStoreSize=Le store doit faire au moins 32Mo
+Node.java14ShortText=Java 1.4 ne sera pas support? tr?s longtemps, veuillez
passer en version 1.5.
+Node.java14Text=Vous utilisez Freenet avec Java 1.4. Veuillez passer en
version 1.5 au moins. Les mises ? jour automatiques ont ?t? d?sactiv?es car les
prochaines versions risquent de ne pas fonctionner du tout.
+Node.java14Title=Java 1.4 n'est plus support?
Node.l10nLanguage=Langue utilis?e pour afficher les messages
Node.l10nLanguageLong=Le param?tre change la langue d'affichage des messages.
Certaines cha?nes ne seront traduites qu'au prochain red?marrage.
Node.maxHTL=HTL maximum
@@ -785,6 +792,10 @@
OpennetUserAlert.warningTitle=Attention : Mode peu s?curis? : Votre n?ud va se
connecter ? des inconnus
PNGFilter.invalidHeader=Ce fichier n'est pas une image PNG. Il ne contient pas
d'en-t?te PNG valide. Il peut s'agir de n'importe quoi et votre navigateur
risque de faire quelque chose de dangereux avec. Nous l'avons donc bloqu?.
PNGFilter.invalidHeaderTitle=Ceci n'est pas une image PNG - en-t?te invalide
+PageMaker.modeAdvanced=Interface avanc?e
+PageMaker.modeAdvancedTooltip=Une interface avanc?e dont seuls les
utilisateurs exp?riment?s de Freenet et les d?veloppeurs ont besoin
+PageMaker.modeSimple=Interface simple
+PageMaker.modeSimpleTooltip=Une interface simple que tous les utilisateurs
peuvent utiliser
PeerManagerUserAlert.clockProblem=${count} noeuds ne peuvent pas se connecter
? vous car leur horloge et la votre sont d?call?es de plus de 24 heures.
Veuillez vous assurer que votre ordinateur est ? l'heure. Une heure erron?e
g?ne le fonctionnement du noeud et des clients.
PeerManagerUserAlert.clockProblemTitle=Probl?me d'horloge
PeerManagerUserAlert.connError=${count} noeud ne peuvent pas se connecter pour
une raison inconnue, peut-?tre parce que votre noeud est bugg? ou votre
r?f?rence corrompue.
@@ -908,8 +919,12 @@
QueueToadlet.completedUDirectory=Insertions de dossiers termin?es (${size})
QueueToadlet.delete=Supprimer
QueueToadlet.download=T?l?chargement
+QueueToadlet.downloadFiles=T?l?chargement group?s
+QueueToadlet.downloadFilesInstructions=Vous pouvez coller une liste de cl?s ?
t?l?charger dans la boite ci-dessous (une par ligne)
QueueToadlet.downloadSucceeded=Le fichier ${origlink}${filename}${/origlink} a
?t? t?l?charg? avec succ?s. ${link}Cliquez ici${/link} pour ouvrir ce fichier
(${size}).
QueueToadlet.downloadSucceededTitle=T?l?chargement r?ussi : ${filename}
+QueueToadlet.enqueuedFailure=Les ${number} cl?s suivantes n'ont pas pu ?tre
mises en file :
+QueueToadlet.enqueuedSuccessfully=Les ${number} cl?s suivantes ont ?t? mises
en file :
QueueToadlet.errorAccessDenied=Erreur : Acc?s refus? !
QueueToadlet.errorAccessDeniedFile=La configuration du noeud vous interdit
d'ins?rer le fichier "${file}".
QueueToadlet.errorDToDisk=Le t?l?chargement sur le disque a ?chou?
@@ -1131,6 +1146,7 @@
Toadlet.permRedirectWithReason=Redirection permanente : ${reason}
Toadlet.returnToNodeHomepage=Revenir ? la page d'accueil
Toadlet.returnToPrevPage=Retour ? la page pr?c?dente
+Toadlet.returnToQueuepage=Retour ? la file d'attente
Toadlet.tempRedirectWithReason=Redirection temporaire : ${reason}
Toadlet.unauthorized=Vous n'?tes pas autoris? ? acc?der ? cette page.
Toadlet.unauthorizedTitle=Acc?s refus?
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-07-07 15:51:48 UTC (rev 20999)
@@ -263,7 +263,7 @@
FProxyToadlet.alerts=Messaggi dettagliati sullo stato del nodo
FProxyToadlet.alertsTitle=Avvertenze
FProxyToadlet.backToFProxy=${link}Clicca qui${/link} per andare alla homepage
di FProxy
-FProxyToadlet.backToReferrer=${link}Clicka qui${/link} per tornare alla pagina
referente.
+FProxyToadlet.backToReferrer=${link}Clicca qui${/link} per tornare alla pagina
referente.
FProxyToadlet.cantBindPort=Non ? possibile abbinare FProxy a quella porta!
FProxyToadlet.config=configura il nodo
FProxyToadlet.configTitle=Configurazione
@@ -297,10 +297,10 @@
FProxyToadlet.notEnoughMetaStrings=Non ci sono abbastanza meta-strings
FProxyToadlet.notFoundTitle=Non Trovato
FProxyToadlet.openAsText=${link}Clicca qui${/link} per aprire il file come
testo 'liscio' (plain text) . Questo non dovrebbe essere pericoloso ma la
visualizzazione pu? risultare disturbata.
-FProxyToadlet.openForce=${link}Clicka qui${/link} per aprire il file come
${mime} (leggi l'avvertenza sopra!).
-FProxyToadlet.openForceDisk=${link}Clicka qui${/link} per forzare il browser a
scaricare il file su disco.
+FProxyToadlet.openForce=${link}Clicca qui${/link} per aprire il file come
${mime} (leggi l'avvertenza sopra!).
+FProxyToadlet.openForceDisk=${link}Clicca qui${/link} per forzare il browser a
scaricare il file su disco.
FProxyToadlet.openPossRSSAsForceDisk=${link}Clicka qui${/link} per scaricare
il file su disco (${bold}possibile pericolo${/bold} se si sta usando Firefox
2.0.0.0; il problema dovrebbe essere stato risolto in 2.0.0.1
-FProxyToadlet.openPossRSSAsPlainText=${link}Clicka qui${/link} per aprire il
file come testo 'liscio' (plain text) (ci? ${bold}pu? rappresentare un
pericolo${/bold} se si sta usando IE7 o FF2).
+FProxyToadlet.openPossRSSAsPlainText=${link}Clicca qui${/link} per aprire il
file come testo 'liscio' (plain text) (ci? ${bold}pu? rappresentare un
pericolo${/bold} se si sta usando IE7 o FF2).
FProxyToadlet.openPossRSSForceDisk=${link}Clicca qui${/link} per cercare di
costringere il browser a scaricare il file su disco (${bold}Pu? essere
pericoloso se si sta usando Firefox 2.0.0${/bold} ; il problema dovrebbe essere
risolto in 2.0.1).
FProxyToadlet.openRSSAsRSS=${link}Clicca qui${/link} per aprire il file come
RSS (ci? ${bold}rappresenta un pericolo${/bold} se l'autore del sito ? mal
intenzionato, perch? il filtraggio di RSS in Freenet non ? ancora stato
implementato).
FProxyToadlet.openRSSForce=${link}Clicca qui${/link} per aprire il file come
${mime} (ci? ${bold}pu? costituire un pericolo${/bold} se si usa IE7 o FF2).
@@ -575,7 +575,7 @@
JPEGFilter.tooShortTitle=Troppo corto
KnownUnsafeContentTypeException.dangerousInlines=Contenuto di questo tipo pu?
includere immagini o video che vengono caricati direttamente da internet,
esponendo l'indirizzo IP dell'utente e quindi compromettendone gravemente
l'anonimato.
KnownUnsafeContentTypeException.dangerousInlinesLabel=Collegamenti esterni
pericolosi:
-KnownUnsafeContentTypeException.dangerousLinks=Contenuto di questo tipo pu?
includere dei link a pagine pubblicate al di fuori di Freenet. Clickando su
tali link (e possono essere camuffati) si espone il proprio indirizzo IP,
compromettendo l'anonimato.
+KnownUnsafeContentTypeException.dangerousLinks=Contenuto di questo tipo pu?
includere dei link a pagine pubblicate al di fuori di Freenet. Cliccando su
tali link (e possono essere camuffati) si espone il proprio indirizzo IP,
compromettendo l'anonimato.
KnownUnsafeContentTypeException.dangerousLinksLabel=Link pericolosi:
KnownUnsafeContentTypeException.dangerousMetadata=Contenuto di questo tipo pu?
includere metadati, i quali possono essere visualizzati da alcuni browser o con
l'aiuto di altri programmi: i metadati possono contenere link o immagini
caricate direttamente da internet, che possono compromettere l'anonimato.
KnownUnsafeContentTypeException.dangerousMetadataLabel=Metadati pericolosi:
@@ -688,6 +688,9 @@
Node.inBWLimit=Limite ampiezza di banda in entrata (bytes per secondo)
Node.inBWLimitLong=Limite dell'ampiezza di banda in entrata (bytes/sec); il
nodo cerca di non eccedere tale limite; -1 siglifica quattro volte il limite
impostato per l'ampiezza di banda in uscita (outputBandwidthLimit)
Node.invalidStoreSize=Il datastore (magazzino dati) deve essere di dimensioni
uguali o superiori a 32MB
+Node.java14ShortText=Tra breve non sara pi? possibile operare un nodo Freenet
su Java 1.4. Si prega di aggiornare a 1.5 o 1.6
+Node.java14Text=Freenet sta girando su una versione 1.4 di Java. Si prega di
aggiornare almeno a Java 1.5. Gli aggiornamenti automatici di Freenet sono
stati temporaneamente disabilitati in quanto versioni future potrebbero non non
girare del tutto.
+Node.java14Title=Freenet non ? pi? compatibile con Java 1.4
Node.l10nLanguage=Lingua dell' interfaccia grafica
Node.l10nLanguageLong=Cambia la lingua in cui messaggi sono visualizzati.
Alcune frasi e messaggi saranno visibili in versione tradotta solo dopo il
prossimo riavvio del nodo.
Node.maxHTL=HTL massimo
@@ -808,6 +811,10 @@
OpennetUserAlert.warningTitle=Avvertenza: Modo Promiscuo Attivato: Il nodo si
connetter? a degli sconosciuti
PNGFilter.invalidHeader=Il file che si sta cercando di richiamare non e' un
PNG: esso non include un header PNG valido. Potrebbe trattarsi di un file in
altro formato e il browser potrebbe fare qualcosa di pericoloso a causa della
confusione creata dalla mancata corrispondenza; il file ? stato pertanto
bloccato.
PNGFilter.invalidHeaderTitle=Header PNG non valido
+PageMaker.modeAdvanced=Interfaccia avanzata
+PageMaker.modeAdvancedTooltip=Un'interfaccia pi? complessa, utile soltanto
agli utenti esperti
+PageMaker.modeSimple=Interfaccia semplice
+PageMaker.modeSimpleTooltip=Un'interfaccia semplice che pu? essere usata da
ogni utente
PeerManagerUserAlert.clockProblem=${count} peer non riescono a connettersi
perch? il loro orologio di sistema differisce di oltre 24 ore da quello locale.
Si prega di verificare che l'orologio di sistema del computer sia regolato
sull'ora esatta. Regolazioni inaccurate dell'orologio causano molti problemi
nel funzionamento dei meccanismi tra nodo e client.
PeerManagerUserAlert.clockProblemTitle=Problema di sincronizzazione.
PeerManagerUserAlert.connError=${count} peer non riescono a connettersi per
motivi sconosciuti, forse per causa di 'bug' nel nodo o di una referenza di un
nodo che e' corrotta.
@@ -932,9 +939,12 @@
QueueToadlet.completedUDirectory=Directory Upload Completati:(${size})
QueueToadlet.delete=Elimina
QueueToadlet.download=Scarica
+QueueToadlet.downloadFilesInstructions=E' possibile incollare una serie di
chiavi da scaricare nello spazio sottostante (una per rigo)
QueueToadlet.downloadSucceeded=Il file ${origlink}${filename}${/origlink} ?
stato scaricato. ${link}Click qui${/link} per aprile il file (${size}).
QueueToadlet.downloadSucceededTitle=Download effettuato: ${filename}
QueueToadlet.emergency=urgenza estrema
+QueueToadlet.enqueuedFailure=Non ? stato possibile agguingere alla coda le
${number} chiavi qui elencate:
+QueueToadlet.enqueuedSuccessfully=Le ${number} chiavi elencate di seguito sono
state aggiunte alla coda con successo:
QueueToadlet.errorAccessDenied=Errore: Accesso Negato
QueueToadlet.errorAccessDeniedFile=L'attuale configurazione del nodo non
consente l'upload del file "${file}".
QueueToadlet.errorDToDisk=Non ? stato possibile scaricare su disco
@@ -1149,7 +1159,7 @@
TimeSkewDetectedUserAlert.text=Una discrepanza temporale ? stata rilevata dal
nodo. Questo ? un inconveniente grave; il nodo non potr? funzionare
correttamente finch? non vi si sar? ovviato. Tra le cause pi? comuni, la
modalit? powersafe mal configurata, cattiva sincronizzazione tra i client in
rete, problemi di hardware.
TimeSkewDetectedUserAlert.title=Discrepanza temporale rilevata!
Toadlet.cancel=Cancella
-Toadlet.clickHere=Clicka qui
+Toadlet.clickHere=Clicca qui
Toadlet.homepage=Homepage
Toadlet.internalErrorPleaseReport=Errore interno: riportarlo se possibile
Toadlet.internalErrorTitle=Errore Interno
@@ -1162,6 +1172,7 @@
Toadlet.returnToHomepage=Torna alla homepage del nodo
Toadlet.returnToNodeHomepage=Torna alla homepage del nodo
Toadlet.returnToPrevPage=Torna alla pagina precedente
+Toadlet.returnToQueuepage=Torna alla pagina della coda
Toadlet.tempRedirectWithReason=Redirect temporaneo: ${reason}
Toadlet.unauthorized=L'accesso a questa pagina ? interdetto.
Toadlet.unauthorizedTitle=Non Autorizzato
@@ -1180,7 +1191,7 @@
TranslationToadlet.confirmRemoveOverride=Conferma: elimina chiave di
traduzione : (${key} - ${value}) ?
TranslationToadlet.contributingToLabelWithLang=Stai contribuendo alla
traduzione: ${lang}:
TranslationToadlet.currentTranslationLabel=Traduzione corrente
-TranslationToadlet.downloadTranslationsFile=Scarica file della traduzione
eseguita
+TranslationToadlet.downloadTranslationsFile=Scarica il file della traduzione
TranslationToadlet.hideAlreadyTranslated=Nascondi stringhe tradotte
TranslationToadlet.noCustomTranslations=Nessuna traduzione personalizzata
disponibile.
TranslationToadlet.originalVersionLabel=Originale (versione inglese)
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1,9 +1,21 @@
+Persistence=forever. ??????????????????????; ???????????, ???????????????.
+Announcer.announceAlertIntro=Freenet ??????? - ???????????. ????????,
????????. ??????? Freenet ????????, ????????, ????? 24 ??????.
+Announcer.announceAlertNoSeednodes=??? seednodes.fref ??,
????????????????(opennet)?. ?????????, ???
http://downloads.freenetproject.org/alpha/opennet/ ???????.
+Announcer.announceAlertShort=???????????, ????????.
+Announcer.announceAlertTitle=?????
+Announcer.announceDetails=??????? ${recentSentAnnouncements} ?????, ???
${runningAnnouncements} ??????, ????? ${addedNodes} ???(??? ${refusedNodes}
??????). ??????? ${connectedSeednodes} ???????, ????????
${disconnectedSeednodes} ?????.
+Announcer.announceDisabledTooOld=?????????, ???????? Freenet ????. ?????????,
????????????. ???????????(????????????????, ???????).
+Announcer.announceDisabledTooOldShort=??????????, ???? Freenet ?????.
?????????.
+Announcer.announceDisabledTooOldTitle=???????(????)
+Announcer.announceLoading=Freenet ?????????, ?????????????. ??????????????.
+Announcer.coolingOff=????? ${time} ???, ??????????????????????, ?????????????,
??????????.
+Bookmark.noName=??
BookmarkEditorToadlet.addBookmark=????
BookmarkEditorToadlet.addCategory=????
-BookmarkEditorToadlet.addDefaultBookmarks=??????????.
+BookmarkEditorToadlet.addDefaultBookmarks=??????????.
BookmarkEditorToadlet.addNewBookmark=??????
BookmarkEditorToadlet.addNewCategory=?????
-BookmarkEditorToadlet.addedNewBookmark=??????????.
+BookmarkEditorToadlet.addedNewBookmark=??????????.
BookmarkEditorToadlet.addedNewBookmarkTitle=???????
BookmarkEditorToadlet.bookmarkDoesNotExist="${bookmark}"???????.
BookmarkEditorToadlet.cancelCut=????
@@ -24,41 +36,58 @@
BookmarkEditorToadlet.editBookmarkTitle=????
BookmarkEditorToadlet.editCategoryTitle=????
BookmarkEditorToadlet.error=??
-BookmarkEditorToadlet.hasAnActivelinkLabel=? freesite ?????????
+BookmarkEditorToadlet.hasAnActivelinkLabel=?? freesite ?????????
BookmarkEditorToadlet.invalidKey=???Freenet??.
BookmarkEditorToadlet.invalidKeyTitle=????
-BookmarkEditorToadlet.invalidKeyWithReason=???Freenet??.
+BookmarkEditorToadlet.invalidKeyWithReason=??? Freenet ??.
BookmarkEditorToadlet.keyLabel=??:
BookmarkEditorToadlet.moveDown=??
BookmarkEditorToadlet.moveUp=??
BookmarkEditorToadlet.myBookmarksTitle=????
BookmarkEditorToadlet.nameLabel=??:
BookmarkEditorToadlet.paste=??
-BookmarkEditorToadlet.pasteOrCancel=?????????????,??????.
+BookmarkEditorToadlet.pasteOrCancel=???????????, ??????.
BookmarkEditorToadlet.pasteTitle=??/??
BookmarkEditorToadlet.save=??
BookmarkEditorToadlet.title=?????
BookmarkEditorToadlet.urlDecodeError=URL????
+BookmarkItem.bookmarkUpdated=???????? ${name} ?????? ${edition} ?.
+BookmarkItem.bookmarkUpdatedShort=?????? freesite ????: ${name}
+BookmarkItem.bookmarkUpdatedTitle=??????: ${name}
+BookmarkItem.bookmarkUpdatedWithLink=???????? ${link}${name}${/link} ??????
${edition} ?.
+BookmarkItem.deleteBookmarkUpdateNotification=????
+BookmarkItem.unnamedBookmark=?????
BookmarkManager.list=????
+BookmarkManager.listLong=?????? freesite ??
+BookmarkManager.malformedBookmark=???????
BooleanOption.parseError=????????: ${val} - ??? true ? false
-BuildOldAgeUserAlert.tooOld=?????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
??????????????)
-BuildOldAgeUserAlert.tooOldShort=??????? Freenet ??????, ???????????????!
?????!
-BuildOldAgeUserAlert.tooOldTitle=?????
+BuildOldAgeUserAlert.tooOld=????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
???????????????)
+BuildOldAgeUserAlert.tooOldShort=????? Freenet ????????, ???????????????!
?????!
+BuildOldAgeUserAlert.tooOldTitle=????
+CSSTokenizerFilter.supplementalCharsNotSupported=??????? 0xFFFF ? UCS-4 ??!
ClockProblemDetectedUserAlert.shortText=???????????, Freenet ??????.
ClockProblemDetectedUserAlert.text=Freenet ??????????(?????)????.
??????????????, Freenet ??????.
ClockProblemDetectedUserAlert.title=???????.
+ConfigToadlet.appliedFailureExceptions=?????????, ?????????:
+ConfigToadlet.appliedFailureTitle=??????
ConfigToadlet.appliedSuccess=??????????.
ConfigToadlet.appliedTitle=???????
ConfigToadlet.apply=??
ConfigToadlet.configNavTitle=????
ConfigToadlet.contributeTranslation=????????
+ConfigToadlet.defaultIs=???: '${default}'.
+ConfigToadlet.false=?
ConfigToadlet.fullTitle=${name} ? Freenet ????
+ConfigToadlet.modeAdvanced=??????
+ConfigToadlet.modeSimple=??????
ConfigToadlet.possibilitiesTitle=??
ConfigToadlet.reset=??
ConfigToadlet.returnToNodeConfig=??????
ConfigToadlet.shortTitle=??
ConfigToadlet.title=Freenet ????
-ConfigToadlet.wrapper=??
+ConfigToadlet.true=?
+ConfigToadlet.wrapper=????
+ConfigToadlet.wrapperSettingsTitle=??????
ConfigurablePersister.doesNotExistCannotCreate=?????????????.
ConfigurablePersister.existsCannotReadWrite=??????????????
ConnectionsToadlet.nodeStatus.BACKED OFF=???
@@ -73,12 +102,25 @@
ConnectionsToadlet.nodeStatus.LISTEN ONLY=???
ConnectionsToadlet.nodeStatus.LISTENING=???
ConnectionsToadlet.nodeStatus.NEVER CONNECTED=????
+ConnectionsToadlet.nodeStatus.ROUTING DISABLED=?????
ConnectionsToadlet.nodeStatus.TOO NEW=??
ConnectionsToadlet.nodeStatus.TOO OLD=??
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=????
+ConnectivityToadlet.addressTitle=??
+ConnectivityToadlet.byIPTitle=${ip} ?????????? - ${status} (???????
${tunnelLength})
+ConnectivityToadlet.byPortTitle=${port} ?????????? - ${status} (???????
${tunnelLength})
+ConnectivityToadlet.connectivity=?????
ConnectivityToadlet.connectivityTitle=??
+ConnectivityToadlet.firstReceiveLeadTime=?????????
+ConnectivityToadlet.firstSendLeadTime=?????????
+ConnectivityToadlet.local=??
+ConnectivityToadlet.localRemoteTitle=??/??
+ConnectivityToadlet.noreply=????
+ConnectivityToadlet.remote=??
+ConnectivityToadlet.sentReceivedTitle=??/?????
ConnectivityToadlet.summaryTitle=??
-ContentDataFilter.unknownCharset=?????????????????. ????????????????,
????????????.
+ConnectivityToadlet.title=${nodeName} ??????
+ContentDataFilter.unknownCharset=?????????????????. ????????????????,
????????????.
ContentDataFilter.unknownCharsetTitle=?????!
ContentDataFilter.warningUnknownCharsetTitle=??: ?????? (${charset})
DarknetConnectionsToadlet.activityInserts=??: ??${totalSenders}????,
${CHKhandlers}?CHK???, ${SSKhandlers}?SSK???
@@ -86,10 +128,10 @@
DarknetConnectionsToadlet.activityTitle=????
DarknetConnectionsToadlet.add=??
DarknetConnectionsToadlet.addPeerTitle=??????
-DarknetConnectionsToadlet.backedOff=???????:????????????,???????????.
+DarknetConnectionsToadlet.backedOff=???????: ????????????, ???????????.
DarknetConnectionsToadlet.backedOffShort=???
DarknetConnectionsToadlet.burstingShort=???
-DarknetConnectionsToadlet.busy=??:????????,??????????????????,??????????????.
+DarknetConnectionsToadlet.busy=??: ????????, ??????????????????, ?????????????.
DarknetConnectionsToadlet.busyShort=??
DarknetConnectionsToadlet.cancel=??
DarknetConnectionsToadlet.cantFetchNoderefURL=??? ${url} ??????.?????.
@@ -100,49 +142,52 @@
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=????
DarknetConnectionsToadlet.connected=???:??????????
DarknetConnectionsToadlet.connectedShort=???
-DarknetConnectionsToadlet.disabled=???????:????????????????.
+DarknetConnectionsToadlet.darknetFnpPort=????(Darknet) FNP: ${port}/UDP
(?????????, ???"??", ????; ???????????????)
+DarknetConnectionsToadlet.disabled=???????: ???????????????????.
DarknetConnectionsToadlet.disabledShort=???
DarknetConnectionsToadlet.disconnectingShort=???
DarknetConnectionsToadlet.enterDescription=?????:
DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=??????:????
DarknetConnectionsToadlet.failedToAddNodeTitle=??????
-DarknetConnectionsToadlet.fcpPort=FCP: ${port}/tcp (?Frost,Thaw?Freenet???????)
-DarknetConnectionsToadlet.fileReference=??????????????:
+DarknetConnectionsToadlet.fcpPort=FCP: ${port}/TCP (? Frost, Thaw ? Freenet
???????)
+DarknetConnectionsToadlet.fileReference=???????????????:
DarknetConnectionsToadlet.fnpPort=FNP: ${port}/udp (???????;??????????????)
DarknetConnectionsToadlet.forceRemove=????
DarknetConnectionsToadlet.fproxyDisabled=FProxy???????)?????
-DarknetConnectionsToadlet.fproxyPort=FProxy: ${port}/tcp (?web????)
+DarknetConnectionsToadlet.fproxyPort=FProxy: ${port}/TCP (??????)
DarknetConnectionsToadlet.fullTitle=${name}?${counts}???
DarknetConnectionsToadlet.go=??
DarknetConnectionsToadlet.idleTime=??????????????????
DarknetConnectionsToadlet.idleTimeTitle=???????
DarknetConnectionsToadlet.invalidSignature=??????????????(${error}).
DarknetConnectionsToadlet.ipAddressTitle=??
+DarknetConnectionsToadlet.listenOnlyShort=???
DarknetConnectionsToadlet.listeningShort=???
DarknetConnectionsToadlet.myFriends=????
DarknetConnectionsToadlet.myReferenceHeader=${linkref}??????${/linkref}
(${linktext}????${/linktext})
-DarknetConnectionsToadlet.nameClickToMessage=????.????????????????????
+DarknetConnectionsToadlet.nameClickToMessage=????. ????????????????????
DarknetConnectionsToadlet.nameTitle=??
-DarknetConnectionsToadlet.neverConnected=????:????????????????.
+DarknetConnectionsToadlet.neverConnected=????: ???????????????.
DarknetConnectionsToadlet.neverConnectedShort=????
DarknetConnectionsToadlet.noPeersFirstHalf=Freenet?????????????,???????.??
DarknetConnectionsToadlet.noPeersSecondHalf=??,???????????????.
DarknetConnectionsToadlet.noRefOrURL=???????????????URL. ?????.
-DarknetConnectionsToadlet.nodePortsTitle=????????
-DarknetConnectionsToadlet.notConnected=???:?????,??????????????????.
+DarknetConnectionsToadlet.nodePortsTitle=???????
+DarknetConnectionsToadlet.notConnected=???: ?????, ??????????????
DarknetConnectionsToadlet.notConnectedShort=???
-DarknetConnectionsToadlet.pasteReference=???????????:
-DarknetConnectionsToadlet.privateNote=??????????
+DarknetConnectionsToadlet.opennetFnpPort=????(Opennet) FNP: ${port}/UDP
(??????????, ???"???", ????; ??????????????)
+DarknetConnectionsToadlet.pasteReference=???????????:
+DarknetConnectionsToadlet.privateNote=???????????
DarknetConnectionsToadlet.privateNoteTitle=????
DarknetConnectionsToadlet.referenceCopyWarning=???????${bold}????${/bold}??.??????${bold}????${/bold}.
DarknetConnectionsToadlet.remove=???!
DarknetConnectionsToadlet.removePeers=???????
DarknetConnectionsToadlet.seedServersShort=??
DarknetConnectionsToadlet.selectAction=-- ???? --
-DarknetConnectionsToadlet.sendMessageTitle=?????????
-DarknetConnectionsToadlet.sendMessageToPeers=???????????????
+DarknetConnectionsToadlet.sendMessageTitle=?????????
+DarknetConnectionsToadlet.sendMessageToPeers=???????????????
DarknetConnectionsToadlet.statusTitle=??
-DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/tcp (??telnet????????)
+DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/TCP (?? telnet ????????)
DarknetConnectionsToadlet.tooNewShort=??
DarknetConnectionsToadlet.tooOldShort=??
DarknetConnectionsToadlet.transferringRequests=????: ${senders}????,
${receivers}????
@@ -154,110 +199,359 @@
ExtOldAgeUserAlert.extTooOld=?? freenet-ext.jar ?????????,
???????????????????: http://downloads.freenetproject.org/alpha/freenet-ext.jar.
ExtOldAgeUserAlert.extTooOldShort=?? freenet-ext.jar ?????. ?????.
ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext ??
+FProxyToadlet.abortToHomepage=?????? FProxy ??
+FProxyToadlet.alerts=???????
FProxyToadlet.alertsTitle=??
+FProxyToadlet.backToFProxy=${link}???${/link}?? FProxy ??.
+FProxyToadlet.backToReferrer=${link}???${/link}??????.
FProxyToadlet.config=??/??????
FProxyToadlet.configTitle=??
FProxyToadlet.dangerousContentTitle=????????
+FProxyToadlet.dangerousRSS=Freenet ??????????????? RSS ??. Freenet ?????? RSS
??, ?? RSS ?????????(?????????, ??????????????????, ????????). Firefox 2.0 ?
Internet Explorer 7.0 ???????? RSS ????, ??????????? "${type}".
+FProxyToadlet.dangerousRSSSubtitle=RSS ??????????
FProxyToadlet.dangerousRSSTitle=???????? (RSS)
+FProxyToadlet.downloadInBackgroundToDisk=?????????????????
+FProxyToadlet.errorIsFatal=???????. ?????????????.
+FProxyToadlet.errorWithReason=??: ${error}
+FProxyToadlet.expectedKeyButGot=???? Freenet ??, ??????:
+FProxyToadlet.expectedMimeType=?? MIME ??: ${mime}
+FProxyToadlet.explanationTitle=??
+FProxyToadlet.fetchLargeFileAnywayAndDisplay=?????, ???????????????
+FProxyToadlet.fileInformationTitle=????
+FProxyToadlet.filenameLabel=??:
FProxyToadlet.friends=??????
FProxyToadlet.friendsTitle=??
FProxyToadlet.goBack=?????
+FProxyToadlet.goBackToPrev=?????
FProxyToadlet.homepage=??
+FProxyToadlet.invalidKeyTitle=??????
+FProxyToadlet.invalidKeyWithReason=??????: ${reason}
+FProxyToadlet.largeFile=??
+FProxyToadlet.largeFileExplanationAndOptions=??? Freenet ???????.
????????????????????, ?? Freenet ?????????????. ???????:
+FProxyToadlet.mayChange=(???)
FProxyToadlet.mimeType=MIME ???${mime}
-FProxyToadlet.openForce=?${link}??${/link}????? ${mime} ????????????????
+FProxyToadlet.notFoundTitle=???
+FProxyToadlet.openAsText=${link}???${/link}??????????? (???????, ??????????).
+FProxyToadlet.openForce=${link}???${/link}????? ${mime} ????????????????.
+FProxyToadlet.openForceDisk=${link}???${/link}????????????????.
+FProxyToadlet.openPossRSSAsPlainText=${link}???${/link}???????????(? IE7 ??
FF2 ?${bold}??????s${/bold}).
+FProxyToadlet.openPossRSSForceDisk=${link}???${/link}????????????????(?????
Firefox 2.0.0, ${bold}??????????${/bold}, 2.0.1 ???????????).
+FProxyToadlet.openRSSAsRSS=${link}???${/link}?? RSS ??????
(?????????????${bold}????${/bold}, Freenet ???????? RSS ????).
+FProxyToadlet.openRSSForce=${link}????${/link}?? ${mime} ??????(? IE7 ?? FF2
?${bold}??????${/bold}).
+FProxyToadlet.opennet=????????
FProxyToadlet.opennetTitle=???
+FProxyToadlet.options=?????:
+FProxyToadlet.pathNotFound=???????.
FProxyToadlet.pathNotFoundTitle=???????
+FProxyToadlet.plugins=???????
FProxyToadlet.pluginsTitle=??
FProxyToadlet.queue=????????
FProxyToadlet.queueTitle=??
+FProxyToadlet.retryNow=????
+FProxyToadlet.sizeLabel=??:
FProxyToadlet.sizeUnknown=??????
+FProxyToadlet.stats=??????
FProxyToadlet.statsTitle=??
FProxyToadlet.translationTitle=??
+FProxyToadlet.unableToRetrieve=Freenet ????????.
FProxyToadlet.unknownMIMEType=MIME ??????
FProxyToadlet.welcome=??
FProxyToadlet.welcomeTitle=??
FcpServer.allowedHosts=??????(????????)
FcpServer.allowedHostsFullAccess=???????????
FcpServer.allowedHostsLong=??????????IP??????????????????????IP?????CIDR???IP????(?
192.168.0.0/24)?
+FcpServer.assumeDownloadDDAIsAllowed=??????? DDA?
+FcpServer.assumeDownloadDDAIsAllowedLong=???????????????(DDA)? ???, ?????? DDA
??????? TestDDARequest ??.
+FcpServer.assumeUploadDDAIsAllowed=??????? DDA?
+FcpServer.assumeUploadDDAIsAllowedLong=???????????????(DDA)? ???, ?????? DDA
??????? TestDDARequest ??.
+FcpServer.downloadsFileCanCreateCannotReadOrWrite=???????????
+FcpServer.downloadsFileExistsCannotReadOrWrite=???????????
+FcpServer.enablePersistentDownload=????????
+FcpServer.enablePersistentDownloadLong=????? FCP ????
+FcpServer.filenameToStorePData=??????????
+FcpServer.filenameToStorePDataLong=?????????????
+FcpServer.intervalBetweenWrites=???????????????
+FcpServer.intervalBetweenWritesLong=???????????????.
FcpServer.isEnabled=??FCP???
+FcpServer.isEnabledLong=???? Freenet ?????(FCP)???
FcpServer.portNumber=FCP?
+FcpServer.ssl=?? SSL?
+FcpServer.sslLong=??? FCP ?????? SSL
+FileOffer.commentLabel=??:
+FileOffer.fileLabel=??:
+FileOffer.mimeLabel=MIME ??:
+FileOffer.senderLabel=???:
+FileOffer.sizeLabel=??:
FirstTimeWizardToadlet.bandwidthLimit=????
FirstTimeWizardToadlet.bandwidthLimitLong=?????????????????????
FirstTimeWizardToadlet.bwlimitHigherSpeed=???
FirstTimeWizardToadlet.bwlimitLowerSpeed=???
FirstTimeWizardToadlet.chooseNodeName=????????
+FirstTimeWizardToadlet.chooseNodeNameLong=?????????????(???????,
????????????). ?????????(???????????????)???????????.
???(???????????????)???????. ???, ???????????????????????????, ????????????,
??????????????????.
FirstTimeWizardToadlet.clickContinue=??????
FirstTimeWizardToadlet.congratz=????????
+FirstTimeWizardToadlet.congratzLong=??, ??????????? Freenet ???.
????"??"???????????????, ????????????????. ???, Freenet ?????????, ???????.
?????????????? Freenet. ?????? Freenet ??????.
FirstTimeWizardToadlet.connectToStrangers=???????
-FirstTimeWizardToadlet.connectToStrangersLong=??????? Freenet
????????????????????????????????????
Freenet????????????????????Freenet??????????????????????????????
+FirstTimeWizardToadlet.connectToStrangersLong=??????? Freenet
???????????????????????????????????? Freenet??????????????? Freenet
????????????????????????????????????
FirstTimeWizardToadlet.continue=??
FirstTimeWizardToadlet.continueEnd=???????Freenet?
+FirstTimeWizardToadlet.datastoreSize=??????
FirstTimeWizardToadlet.datastoreSizeLong=????????????????????????????????????????????????????????????????????????????????????
FirstTimeWizardToadlet.enableOpennet=????????? Freenet ??
-FirstTimeWizardToadlet.fivePercentDisk=?? 5% ??????
+FirstTimeWizardToadlet.fivePercentDisk=(? 5% ???????)
FirstTimeWizardToadlet.homepageTitle=Freenet ???????
FirstTimeWizardToadlet.iDoTrust=???????? ${interface} (${ip}) ????
FirstTimeWizardToadlet.isNetworkTrusted=???????????
+FirstTimeWizardToadlet.isNetworkTrustedLong=????????????? ??????,
?????????????????????????????. ??????????, ????????????????????.
+FirstTimeWizardToadlet.memoryLimit=?????
FirstTimeWizardToadlet.memoryLimitLong=???? Freenet
??????????????????/???Freenet ??????????????????????????????????? 128MB ???????
1GB ??????????? 256MB??????????? Freenet ?????
FirstTimeWizardToadlet.noNetworkIF=?????????
FirstTimeWizardToadlet.noNetworkIFLong=Freenet ??????????????????????? Freenet?
FirstTimeWizardToadlet.opennetNo=???????????????? Freenet ???????????????????
-FirstTimeWizardToadlet.opennetWarning=?? Freenet ?????????????????? Freenet
?????????????????????????????????????????????Freenet ???????????????????????
+FirstTimeWizardToadlet.opennetWarning=?? Freenet ?????????????????? Freenet
?????????????????????????????????????????????Freenet ??????????????????????
FirstTimeWizardToadlet.opennetYes=???????????????????
FirstTimeWizardToadlet.skipWizard=??????????????
+FirstTimeWizardToadlet.step1Title=Freenet ??????? - ??????
+FirstTimeWizardToadlet.step2Title=Freenet ??????! - ??????
FirstTimeWizardToadlet.step3Title=Freenet ?????? - ????
FirstTimeWizardToadlet.step4Title=Freenet ?????? - ??????
+FirstTimeWizardToadlet.step5Title=Freenet ??????! - ????
FirstTimeWizardToadlet.step6Title=Freenet ?????? - ??????
+FirstTimeWizardToadlet.step7Title=Freenet ??????! - ??, ??????????
+FirstTimeWizardToadlet.tenPercentDisk=(? 10% ???????)
+FirstTimeWizardToadlet.warningTitle=??!
+FirstTimeWizardToadlet.welcomeInfoboxContent1=Freenet ????????????.
??????????????????????????.
FirstTimeWizardToadlet.welcomeInfoboxTitle=???? Freenet ???????
+FirstTimeWizardToadlet.memory.128M=128 ???(MiB) - ??????
+FirstTimeWizardToadlet.memory.192M=192 ???(MiB) - ??????
+FirstTimeWizardToadlet.memory.256M=256 ???(MiB) - ?????? 1GB ??
+FirstTimeWizardToadlet.memory.512M=512 ???(MiB) - ?????????
+FirstTimeWizardToadlet.memory.64M=64 ???(MiB) - ?????????
GIFFilter.invalidHeader=????????? GIF ??.
GIFFilter.invalidHeaderTitle=??????
-GIFFilter.notGif=????????????? GIF ?. ???????????, ?????????????????,
?????????.
+GIFFilter.notGif=????????????? GIF ?. ???????????, ?????????????????,
?????????.
GIFFilter.tooShort=? GIF ???????????.
GIFFilter.tooShortTitle=????
+GenericReadFilterCallback.couldNotParseAbsoluteFreenetURI=???????? Freenet URI
+GenericReadFilterCallback.couldNotParseFormURIWithError=???????? URI ??:
${error}
+GenericReadFilterCallback.couldNotParseRelativeFreenetURI=???????? Freenet URI
+GenericReadFilterCallback.couldNotParseURIWithError=???????? URI: ${error}
+GenericReadFilterCallback.invalidFormURI=????? URI: ??????
+GenericReadFilterCallback.invalidFormURIAttemptToEscape=????????
GenericReadFilterCallback.malformedAbsoluteURL=?????? URL ???${error}
GenericReadFilterCallback.malformedRelativeURL=?????? URL ???${error}
+GenericReadFilterCallback.protocolNotEscaped=????????: ${protocol}
+HTMLFilter.couldNotParseStyle=???????????
+HTMLFilter.deletedUnknownStyle=???????
+HTMLFilter.failedToParseLabel=HTML ???????????
+HTMLFilter.tooManyNestedStyleOrScriptTags=????????????? - ?????????????
+HTMLFilter.tooManyNestedStyleOrScriptTagsLong=?? </style> ????? -
?????????????, ?????????, ???????????? - ????????????????
+HTMLFilter.unknownTag=????? ${tag}
+IPDetectorPluginManager.connectionProblems=????:
+IPDetectorPluginManager.forwardPortShortMaybeForwarded=?? UDP ? ${port} ????
(?????????).
+IPDetectorPluginManager.forwardPortShortNotForwarded=?? UDP ? ${port} ????
(???????).
+IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=?? UDP ? ${port1} ?
${port2} ???? (?????????).
+IPDetectorPluginManager.forwardTwoPortsShortNotForwarded=?? UDP ? ${port1} and
${port2} ???? (???????).
+IPUndetectedUserAlert.detecting=Freenet ??????????. ????????????, ???????...
+IPUndetectedUserAlert.detectingShort=Freenet ??????????.
+IPUndetectedUserAlert.detectingWithConfigLink=Freenet ??????????.
????????????, ???????, ???????${link}??${/link}???????.
+IPUndetectedUserAlert.suggestForwardPort=??, ??????????????? ${port} ?(UDP),
????????????????.
+IPUndetectedUserAlert.suggestForwardTwoPorts=??, ??????????????? ${port1} ?
${port2} ?(UDP), ????????????????.
+IPUndetectedUserAlert.unknownAddress=Freenet
?????????????(????????(NAT)?????????). ???????????????,
??????????????????????????????. ????????????, Freenet ??????????????.
??????????, ?'???????????'${link}????${/link}???????.
+IPUndetectedUserAlert.unknownAddressShort=Freenet ???????????. ?????????.
+IPUndetectedUserAlert.unknownAddressTitle=??????
+IPUndetectedUserAlert.unknownAddressWithConfigLink=Freenet
?????????????(??????(NAT)???????????). ???????????????,
??????????????????????????????. ????????????, Freenet ??????????????.
??????????, ?'???????????'${link}????${/link}???????.
InsertException.shortError.10=???
InsertException.shortError.3=????
IntOption.parseError=??????????? 32 ??? : ${val}
-JPEGFilter.notJpeg=?????????????JPEG????????????????????????????????????
+InvalidAddressOverrideUserAlert.unknownAddress=Freenet ??????
ipAddressOverride ??????, ????????????????, IPv4 ??, ?? IPv6 ?????(IPv6
??????????????????).
+InvalidAddressOverrideUserAlert.unknownAddressShort=???? ipAddressOverride
???. ???????.
+InvalidAddressOverrideUserAlert.unknownAddressTitle=?????????
+InvalidAddressOverrideUserAlert.unknownAddressWithConfigLink=Freenet ??????
ipAddressOverride ??????, ????????????????, IPv4 ??, ?? IPv6 ?????(IPv6
??????????????????). ?????"????????"??${link}????${/link}
+JPEGFilter.notJpeg=????????????? JPEG ????????????????????????????????????
JPEGFilter.tooShort=???????????JPEG???
JPEGFilter.tooShortTitle=????
+KnownUnsafeContentTypeException.title=???????: ${type}
+LocalFileInsertToadlet.checkPathExist=???????????.
+LocalFileInsertToadlet.checkPathIsDir=??????????????.
+LocalFileInsertToadlet.checkPathReadable=????????????????????????.
+LocalFileInsertToadlet.dirAccessDenied=???????
+LocalFileInsertToadlet.dirCannotBeRead=?????? "${path}"
LocalFileInsertToadlet.fileHeader=??
LocalFileInsertToadlet.insert=??
+LocalFileInsertToadlet.listing=????: ${path}
+LocalFileInsertToadlet.listingTitle=${path} ???
LocalFileInsertToadlet.sizeHeader=??
-LogConfigHandler.minLoggingPriority=??????????
-LogConfigHandler.minLoggingPriorityLong=???????????. ??????????? debug, minor,
normal ? error.
+LogConfigHandler.detaildPriorityThreshold=???????????
+LogConfigHandler.detaildPriorityThresholdLong=???????????, ??? freenet:normal,
freenet.node:minor
+LogConfigHandler.dirName=????
+LogConfigHandler.dirNameLong=???????????
+LogConfigHandler.enabled=???????
+LogConfigHandler.enabledLong=?????????????
+LogConfigHandler.maxCachedBytes=????? RAM ???????
+LogConfigHandler.maxCachedBytesLong=???????????(RAM)???????
+LogConfigHandler.maxCachedLines=????? RAM ??????
+LogConfigHandler.maxCachedLinesLong=???????????(RAM)??????
+LogConfigHandler.maxZippedLogsSize=????????????
+LogConfigHandler.maxZippedLogsSizeLong=???????????????
+LogConfigHandler.minLoggingPriority=??????????
+LogConfigHandler.minLoggingPriorityLong=?????????????. ??????????? debug,
minor, normal ? error.
+LogConfigHandler.rotationInterval=??????
+LogConfigHandler.rotationIntervalLong=????????? - ??????????????.
????????????????(??????????), ????????????? maxZippedLogsSize ????????.
LoggerHook.unrecognizedPriority=??????????: ${name}.
LongOption.parseError=??????????? 64 ??? : ${val}
-MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????"????"????????????, ????????)
+MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????????(darknet)????????????,
????????)
MeaningfulNodeNameUserAlert.noNodeNickShort=????(??)????????
MeaningfulNodeNameUserAlert.noNodeNickTitle=????(??)????????
+N2NTMToadlet.composingMessageLabel=????????????, ????????:
+N2NTMToadlet.delayed=???: ??????????????
+N2NTMToadlet.delayedTitle=???
+N2NTMToadlet.failed=?????????: ?????
+N2NTMToadlet.failedTitle=??
N2NTMToadlet.friends=??
+N2NTMToadlet.noSuchFileOrCannotRead=??????: ???????, ??????.
+N2NTMToadlet.peerName=????
+N2NTMToadlet.peerNotFoundTitle=?????
+N2NTMToadlet.peerNotFoundWithHash=??????? \u201C${hash}\u201D ???.
N2NTMToadlet.processingSend=???????????
+N2NTMToadlet.queued=?????: ?????, ?????????, ???????
+N2NTMToadlet.queuedTitle=?????
N2NTMToadlet.returnToFriends=??????
+N2NTMToadlet.sendMessage=?????????
+N2NTMToadlet.sendMessageShort=????
+N2NTMToadlet.sendStatus=??????
+N2NTMToadlet.sent=????????
N2NTMToadlet.sentTitle=??
+N2NTMToadlet.tooLong=?????????? 1024 ?????
N2NTMToadlet.tooLongTitle=??
N2NTMUserAlert.delete=??
-N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ??>?
${received})
+N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ???
${received})
N2NTMUserAlert.headerShort=?? ${from} ???
N2NTMUserAlert.reply=??
N2NTMUserAlert.title=?${peername}(${peer})?????????${number}
-Node.inBWLimit=?????????????
-Node.inBWLimitLong=???????????????; ??????????????; ?? -1 ?????????
+Node.acceptSeedConnections=???, ????????????????????, ????????????.
??????????????????????, ?????????: ????????????????????(????????,
????????"???"????).
+Node.acceptSeedConnectionsShort=???????
+Node.alwaysAllowLocalAddresses=???????????????????
+Node.alwaysAllowLocalAddressesLong=???, ???????????, ???????????????,
?????????(???????)????. ????, ???????????????(??????????)??????.
???????????????, ?????????????????? UDP ???????????, ?????.
+Node.buggyJVM=????? JVM ??(${version})?????. ????????, ?????? OutOfMemoryError
??. ?????? Sun ???? Java 1.4.2_13 ?, 1.5.0_10 ?, ?? 1.6 ?(????). ????
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795 .
+Node.buggyJVMShort=Freenet ???? Java ?? ${version} ??????. ?????, ??????? Java
?????????.
+Node.buggyJVMTitle=JVM ????
+Node.buggyJVMWithLink=????? JVM ??(${version})???${link}??${/link}. ????????,
?????? OutOfMemoryError ??. ?????? Sun ???? Java 1.4.2_13 ?, 1.5.0_10 ?, ?? 1.6
?(????).
+Node.databaseMemory=????????????
+Node.databaseMemoryLong=????????????????????. 0 ??????(????? 30% ??????)
+Node.disablePHTLSLong=Disable probabilistic HTL (???????, ???????????)
+Node.dropPacketEvery=????????
+Node.dropPacketEveryLong=???????. ???????????, ????????. 0 ??????????. ???????!
+Node.enableARKs=?? ARKs? (????!)
+Node.enableARKsLong=???? ARKs? (??????!).
+Node.enablePerNodeFailureTables=??????????????
+Node.enablePerNodeFailureTablesLong=?????? 10 ???????????????????
+Node.enableSwapQueueing=??????????? (????!)
+Node.enableSwapQueueingLong=???????????????? (??????!)
+Node.enableSwapping=??????? (????!)
+Node.enableSwappingLong=????????? (??????! ????????????).
+Node.enableULPRDataPropagation=?? ULRP ??????
+Node.enableULPRDataPropagationLong=????????????, ???????????????????
(????????????; ULPR)
+Node.extraPeerDir=????????
+Node.extraPeerDirLong=??????????????
+Node.forceBigShrink=????????
+Node.forceBigShrinkLong=?????????(?? 10%)???????(????????????).
??????????????????, ?????????; ?????????????????.
+Node.inBWLimit=????????????
+Node.inBWLimitLong=???????????????; ??????????????; ?? -1 ?????????
+Node.java14ShortText=???????? Java 1.4 ?, ???? 1.5 ?.
+Node.java14Text=???? Java 1.4 ??? Freenet ??. ?????? 1.5 ?. ??????????????,
?????????????????? Java ????.
+Node.java14Title=???? Java 1.4 ?
Node.l10nLanguage=????????
Node.l10nLanguageLong=?????????????????????????????
+Node.maxHTL=HTL ???
+Node.maxHTLLong=HTL ???(???????!)
+Node.maxOpennetPeers=????????????
+Node.maxOpennetPeersLong=????(Opennet)????????(??? 0 ? 20 ??,
?????????????(darknet)?????)
+Node.mustBePositive=????????
+Node.nodeDir=????
+Node.nodeDirLong=????????(???????)?????
Node.nodeName=??????
Node.nodeNameLong=????????????????
+Node.notUsingSunVM=??????? Sun ??? JVM ?????: ${vendor} ${version}. ????????:
??????????. ?????? http://www.java.com/getjava/ ?? Sun ??? Java ??.
+Node.notUsingSunVMShort=Freenet ????? Sun ??? Java ??????, ????????, ??????
Sun Java ??.
+Node.notUsingSunVMTitle=???? Sun ? JVM
+Node.notUsingWrapper=????????????. ????????. ???????????, ??????????, ???? JVM
?????, ???????. ???????????????, ??????????.
+Node.notUsingWrapperShort=Freenet ??????????. ????????.
+Node.notUsingWrapperTitle=????????!
+Node.oneConnectionPerIP=??????????????
+Node.oneConnectionPerIPLong=???????????????????? ????????????????????,
???????????????????, ???????????????.
???????????????????(darknet)?????(opennet).
Node.opennetEnabled=??????????(?????????????)?
-Node.opennetEnabledLong=??????????(???"????")? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
+Node.opennetEnabledLong=??????????(???????(opennet))? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
Node.outBWLimit=?????????????
-Node.outBWLimitLong=?????????(???????); ????????????????
+Node.outBWLimitLong=?????????(???????); ????????????????
+Node.passOpennetPeersThroughDarknet=???????????????????
+Node.passOpennetPeersThroughDarknetLong=????,
??????(opennet)??????(??????????)??????????(darknet)????.
?????(??????????)??????????????????. ??????, ???????????, ???????????,
?????????????????. ????????????????, ?????????????.
+Node.storeDirectory=????
+Node.storeDirectoryLong=???????????
Node.storeSize=?????????
Node.storeSizeLong=?????????
-NodeStats.mustBePercentValueNotFull=???????, ???? 0 ? 99 ??.
-NodeStats.valueTooLow=?????????????, ???????!
+Node.storeType=????(????)
+Node.storeTypeLong=??????. ????? bdb-index ?? ram (bdb-index ?
BerkeleyDBFreenetStore ?????, ??????????????; ram ??????????????).
?????????????, ?????????????????, ??? ram (??????????????)!
+Node.throttleLocalTraffic=???????
+Node.throttleLocalTrafficLong=???????????? ?????,
???????(LAN)??????????????????.
+NodeClientCore.couldNotFindOrCreateDir=?????????
+NodeClientCore.downloadAllowedDirs=?????????
+NodeClientCore.downloadDir=??????
+NodeClientCore.downloadDirLong=??????????????
+NodeClientCore.fileForClientStats=????????????
+NodeClientCore.fileForClientStatsLong=??????????????(???????????)
+NodeClientCore.lazyResume=?????????????? (????????)
+NodeClientCore.lazyResumeLong=???????????????, ??????????????,
????????????????. ???????, ??????????.
+NodeClientCore.maxUSKFetchers=??? USK ???????
+NodeClientCore.maxUSKFetchersLong=??? USK ???????
+NodeClientCore.maxUSKFetchersMustBeGreaterThanZero=?????
+NodeClientCore.movingTempDirOnTheFlyNotSupported=????????????????
+NodeClientCore.persistentTempDir=?????????
+NodeClientCore.persistentTempDirLong=?????????????
+NodeClientCore.startingUp=?? Freenet ???????????, ???????????????,
?????????????.
+NodeClientCore.startingUpShort=Freenet ?????, ??????????, ?????????.
+NodeClientCore.startingUpTitle=Freenet ?????
+NodeClientCore.tempDir=??????
+NodeClientCore.tempDirLong=??????????
+NodeClientCore.uploadAllowedDirs=?????????
+NodeIPDectector.inclLocalAddress=???????????????
+NodeIPDectector.inclLocalAddressLong=???????????????????(????????????????).
???????????????????? allowLocalAddresses=true (???????????????????), ?????????.
+NodeIPDectector.ipOverride=????????
+NodeIPDectector.ipOverrideLong=?????????(????????) - ?????????????*??*?(?????:
???, ?? dyndns ??), ????????????, ????????????????.
+NodeIPDectector.tempAddressHint=???????????
+NodeIPDectector.tempAddressHintLong=??????????; ????????
+NodeIPDetector.maybeSymmetric=??????????????????(NAT)??. ?????????:
?????????????????????, ??????????????????????.
+NodeIPDetector.maybeSymmetricShort=????: ???????????????(NAT)??.
+NodeIPDetector.maybeSymmetricTitle=????
+NodeIPDetector.unknownHostErrorInIPOverride=?????: ${error}
+NodeStat.aggressiveGC=AggressiveGC ???
+NodeStat.aggressiveGCLong=??????????? (GC) ?????????. ????????????, ??????! ??
-1 ??: ??? System.gc() ? System.runFinalization() ???????
+NodeStat.memCheck=???????
+NodeStat.memCheckLong=????????? (???????????, aggressiveGC ????????????!)
+NodeStat.statsPersister=???????????
+NodeStat.statsPersisterLong=???????????(?????????, ?????????????, ????????)
+NodeStat.threadLimit=????
+NodeStat.threadLimitLong=??????????????????, ???????.
+NodeStats.mustBePercentValueNotFull=????????, ???? 0 ? 99 ??.
+NodeStats.valueTooLow=????????, ??????, ???????!
+NodeUpdateManager.enabled=?????????
+NodeUpdateManager.enabledLong=???????????? Freenet ??. ??, ???????????,
????????, ????????. ???????????????, ???????????.
+NodeUpdateManager.extURI=????????? freenet-ext.jar ????
+NodeUpdateManager.extURILong=????????? freenet-ext.jar ????
NodeUpdateManager.installNewVersions=????????
-NodeUpdateManager.installNewVersionsLong=??????????????????? Freenet ??,
???????
+NodeUpdateManager.installNewVersionsLong=???????????, ??????????? Freenet ???
+NodeUpdateManager.invalidExtURI=???????? URI: ${error}
+NodeUpdateManager.invalidRevocationURI=????????? URI: ${error}
+NodeUpdateManager.invalidUpdateURI=????????? URI: ${error}
+NodeUpdateManager.noUpdateWithoutWrapper=??????????, ??????????
+NodeUpdateManager.revocationURI=??????????????
+NodeUpdateManager.revocationURILong=????? URI. ????????????, ????????,
??????????.
+NodeUpdateManager.updateCatastropheTitle=????????!
+NodeUpdateManager.updateFailed=????: ${reason}
+NodeUpdateManager.updateFailedShort=????: ${reason}
+NodeUpdateManager.updateFailedTitle=????!
+NodeUpdateManager.updateURI=????????????
+NodeUpdateManager.updateURILong=????????????
NotEnoughNiceLevelsUserAlert.content=?????????????????????. ????????????????,
??????????. ?????????????????! (? run.sh ??? PRIORITY ???, ??????) ???????
${available} ???????, ?????? ${required} ?.
NotEnoughNiceLevelsUserAlert.short=???????????! ?????????????? Freenet.
NotEnoughNiceLevelsUserAlert.title=???????????!
@@ -265,51 +559,130 @@
OpennetConnectionsToadlet.peersListTitle=??????????(??????????????????)
OpennetConnectionsToadlet.successTime=?????????????? CHK ???
OpennetConnectionsToadlet.successTimeTitle=??????
+OpennetUserAlert.warning=Freenet ????????????. ????????????? Freenet,
?????????????. ???????????????, ????????????????????, ????????????. ????? 10
???????(??????????????, ???????????????), ???????????, ?? Freenet
????????????????.
OpennetUserAlert.warningShort=????????.
OpennetUserAlert.warningTitle=??: ????????: ??????????
-PNGFilter.invalidHeader=????????????? PNG ?, ?????????? PNG ??. ???????????,
?????????????????, ?????????.
+PNGFilter.invalidHeader=????????????? PNG ?, ?????????? PNG ??. ???????????,
?????????????????, ?????????.
PNGFilter.invalidHeaderTitle=??? PNG - ??????
-PluginToadlet.addPluginTitle=??plugin
-PluginToadlet.failedToLoadPluginTitle=Plugin????
-PluginToadlet.noWebInterfaceTitle=?plugin?????
-PluginToadlet.pluginList=Plugin??
-PluginToadlet.pluginListTitle=Plugin??
-PluginToadlet.pluginNameTitle=Plugin??
-PluginToadlet.pluginNotFoundTitle=????plugin
-PluginToadlet.unsupportedMethod=????method.
+PageMaker.modeAdvanced=??????
+PageMaker.modeAdvancedTooltip=????? Freenet ???????????????????
+PageMaker.modeSimple=??????
+PageMaker.modeSimpleTooltip=?????????????
+PeerManagerUserAlert.clockProblem=??? ${count} ???????, ??????????????? 24
????. ??????????????. ??????????????????????????.
+PeerManagerUserAlert.clockProblemTitle=????
+PeerManagerUserAlert.connError=? ${count} ??????????????, ???????????,
???????????.
+PeerManagerUserAlert.connErrorTitle=????????
+PeerManagerUserAlert.noConns=?????????????????, ??????. ?????????????;
?????????, ??????????. ????????? 3 ?????, ???????? 5 ? 10 ?.
+PeerManagerUserAlert.noConnsTitle=???????
+PeerManagerUserAlert.noPeersDarknet=???????????, ????????.
?????????????????(????????, ??????????, ????????????). ????????? 3 ??????, ????
5 ? 10 ?. ???????????(????; opennet), ?????????????.
+PeerManagerUserAlert.noPeersTestnet=???????????, ????????.
?????????????????(????????, ??????????, ????????????). ????????? 3 ??????, ????
5 ? 10 ?. ???????????(????; opennet), ?????????????.
+PeerManagerUserAlert.noPeersTitle=????
+PeerManagerUserAlert.oneConn=????????. ?????????, ???????; ?????????,
???????????????. ????"??"?????????, ???????????. ????????????? 3 ???(?? 5 ? 10
????).
+PeerManagerUserAlert.onlyFewConnsTitle=?? ${count} ??????
+PeerManagerUserAlert.tooHighBwlimitDelayTime=????????????????(${delay}ms >
${max}ms). ???????????, ??/????????, ????????.
+PeerManagerUserAlert.tooHighBwlimitDelayTimeTitle=bwlimitDelayTime ????
+PeerManagerUserAlert.tooHighPingTime=??????????????(${ping}ms > ${max}ms).
???????????, ??/????????, ????????.
+PeerManagerUserAlert.tooHighPingTimeTitle=nodeAveragePingTime ????
+PeerManagerUserAlert.tooManyConns=????????(${count} > ${max}).
??????????????????, ???????, ???????????????.
+PeerManagerUserAlert.tooManyConnsTitle=????????
+PeerManagerUserAlert.tooManyDisconnected=???????????(${count} > ${max}).
?????????????????, ??????????????????????. ???"??"??????. ???,
????????????????. ??????, ????????????????????????.
+PeerManagerUserAlert.tooManyDisconnectedTitle=????????
+PeerManagerUserAlert.tooManyNeverConnected=?????????(?? ${count} ?)???????.
????????????????????????, ??????????.
+PeerManagerUserAlert.tooManyNeverConnectedTitle=???????????
+PeerManagerUserAlert.tooManyNeverConnectedWithLink=?????????(?? ${count}
?)???????. ???????????${link}????${/link}?????????, ??????????.
+PeerManagerUserAlert.tooManyPeers=?????????(${count} > ${max}).
???????????????????????, ???????????????. ????, ?????????????????????,
??????????. ???"??"??????.
+PeerManagerUserAlert.tooManyPeersTitle=????????
+PeerManagerUserAlert.tooOldNeverConnectedPeers=?????????, ????????????????.
???????, ???????????(??????????????).
+PeerManagerUserAlert.tooOldNeverConnectedPeersTitle=??????????
+PeerManagerUserAlert.twoConns=????????. ????????????, ??????????????.
???"??"?????????, ???????????(????). ????????????? 3 ???(?? 5 ? 10 ????).
+PeersSayKeyBlownAlert.connectedSayBlownLabel=????????????????(?????????????????):
+PeersSayKeyBlownAlert.disconnectedSayBlownLabel=???????????????, ????????,
????????????:
+PeersSayKeyBlownAlert.failedFetch=????????????. ?????????????,
??????????????????, ???????????????. ??????????? Freenet ????????.
+PeersSayKeyBlownAlert.failedTransferSayBlownLabel=??????????????, ????????????:
+PeersSayKeyBlownAlert.fetching=?????????????????????.
+PeersSayKeyBlownAlert.intro=????????????????????! ??????????????????????,
?????????????????(?????????)! ?????????????. ???????????????.
+PeersSayKeyBlownAlert.short=?????????????????!
+PeersSayKeyBlownAlert.titleWithCount=${count} ???: ????????!
+PluginManager.cannotSetOnceLoaded=??????????????
+PluginManager.loadedOnStartup=????????
+PluginManager.loadedOnStartupLong=?????, ???????????, ?????.
+PluginManager.loadedPlugins=????????
+PluginManager.loadedPluginsLong=??????, ?????????
+PluginManager.pluginLoadingFailed=????? ${name} ????
+PluginManager.pluginLoadingFailedShort=?????? ${name}!
+PluginManager.pluginLoadingFailedTitle=??????!
+PluginManager.pluginLoadingFailedWithMessage=????? ${name} ????: ${message}
+PluginManager.pluginReqNewerJVM=?? ${name} ??????? JVM ????. ?????? Sun Java
1.5 ???? JVM, ???????.
+PluginManager.pluginReqNewerJVMTitle=?? ${name} ????? JVM ????.
+PluginToadlet.addPluginTitle=????
+PluginToadlet.failedToLoadPlugin=??????.
+PluginToadlet.failedToLoadPluginCheckClass=???????????. ??????????????, ??????
URL ??????.
+PluginToadlet.failedToLoadPluginTitle=??????
+PluginToadlet.internalNameTitle=????
+PluginToadlet.loadPluginCommand=????
+PluginToadlet.noWebInterface=???????????, ??????????.
+PluginToadlet.noWebInterfaceTitle=??????????
+PluginToadlet.pluginList=????
+PluginToadlet.pluginListTitle=????
+PluginToadlet.pluginNameTitle=????
+PluginToadlet.pluginNotFound=????????.
+PluginToadlet.pluginNotFoundTitle=??????
+PluginToadlet.returnToPluginsWithLinks=? ${link}??${/link} ????.
+PluginToadlet.unsupportedMethod=??????.
+PluginToadlet.unsupportedMethodTitle=??????
PluginToadlet.visit=??
-PproxyToadlet.Load=??
+PproxyToadlet.Error=??
+PproxyToadlet.Load=??
PproxyToadlet.cancel=??
-PproxyToadlet.classNameTitle=Class??
-PproxyToadlet.internalIDTitle=????
+PproxyToadlet.changeReloadOnStartup=??
+PproxyToadlet.classNameTitle=????
+PproxyToadlet.downloadNotAllowedFromRemoteServer=??????????????.
+PproxyToadlet.internalIDTitle=?????
PproxyToadlet.loadOfficialPlugin=??????
-PproxyToadlet.loadOfficialPluginLabel=??????
-PproxyToadlet.loadOfficialPluginText=???????? Freenet ???????.
????????????????, ????????.
-PproxyToadlet.loadOfficialPluginWarning=??: ?????????????????, ??? Freenet ??.
?????????????, ?????. ?????????????, ??????????.
+PproxyToadlet.loadOfficialPluginLabel=??????
+PproxyToadlet.loadOfficialPluginText=?????? Freenet ???????. ????????????????,
????????.
+PproxyToadlet.loadOfficialPluginWarning=??: ????????????????, ??? Freenet ??.
?????????????, ?????. ?????????????, ??????????.
PproxyToadlet.loadOtherPlugin=???????
-PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ???????????????????, ???????.
+PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ????????????????????, ????????.
PproxyToadlet.loadOtherURLLabel=??? URL
PproxyToadlet.loadPluginLabel=??Plugin:
-PproxyToadlet.noPlugins=??????plugins
+PproxyToadlet.noPlugins=????????
PproxyToadlet.noVersion=?
-PproxyToadlet.pluginNotFoundReload=??????????plugin.
-PproxyToadlet.pluginNotFoundReloadTitle=?????Plugin(??)
-PproxyToadlet.pluginUnloaded=?plugin????
-PproxyToadlet.pluginUnloadedWithName=${name}??plugin????.
-PproxyToadlet.plugins=Plugins
-PproxyToadlet.pluginsWithNodeName=${name}?plugins
+PproxyToadlet.pluginDirectoryNotCreated=????????.
+PproxyToadlet.pluginNotDownloaded=??????.
+PproxyToadlet.pluginNotFoundReload=???????????.
+PproxyToadlet.pluginNotFoundReloadTitle=??????(??)
+PproxyToadlet.pluginStopping=?????
+PproxyToadlet.pluginUnloaded=??????
+PproxyToadlet.pluginUnloadedWithName=?????? ${name} ?.
+PproxyToadlet.plugins=??
+PproxyToadlet.pluginsWithNodeName=${name} ???
+PproxyToadlet.refreshOnStartup=?????????
PproxyToadlet.reload=??
-PproxyToadlet.reloadPurgeWarning=?????????????????. ??????????????????,
??????????!
-PproxyToadlet.returnToPluginPage=??plugin??
-PproxyToadlet.startedAtTitle=????
+PproxyToadlet.reloadExplanation=???????????????????.
+PproxyToadlet.reloadOnStartupShort=?????
+PproxyToadlet.reloadPluginTitle=????
+PproxyToadlet.reloadPurgeWarning=?????????????. ???????????????, ??????????!
+PproxyToadlet.reloadWarning=?????????????!
+PproxyToadlet.returnToPluginPage=??????
+PproxyToadlet.startedAtTitle=????
+PproxyToadlet.startingPluginName=????
+PproxyToadlet.startingPluginStatus=????
+PproxyToadlet.startingPluginTime=????
+PproxyToadlet.startingPluginsTitle=?????
+PproxyToadlet.unauthorized=??????????.
+PproxyToadlet.unauthorizedTitle=????
PproxyToadlet.unload=??
-PproxyToadlet.unloadPluginTitle=???plugin?
-PproxyToadlet.unloadPluginWithName=??????${name}??
+PproxyToadlet.unloadPluginTitle=???????
+PproxyToadlet.unloadPluginWithName=?????? ${name} ??
+PproxyToadlet.unloadPurge=????????
PproxyToadlet.versionTitle=??
+PproxyToadlet.startingPluginStatus.downloading=??????
+PproxyToadlet.startingPluginStatus.starting=???
QueueToadlet.DUinProgress=???????? (${size})
QueueToadlet.DinProgress=???????? (${size})
QueueToadlet.UinProgress=???????? (${size})
-QueueToadlet.change=???
+QueueToadlet.change=??
QueueToadlet.completedDU=?????????? (${size})
QueueToadlet.completedDinDownloadDirectory=???????????????? (${size})
QueueToadlet.completedDinTempDirectory=???????????????? (${size})
@@ -319,26 +692,40 @@
QueueToadlet.completedUDirectory=???????? (${size})
QueueToadlet.delete=??
QueueToadlet.download=??
+QueueToadlet.downloadFiles=????
+QueueToadlet.downloadFilesInstructions=??????????????????(??????)
QueueToadlet.downloadSucceeded=?? ${origlink}${filename}${/origlink} ???????.
?${link}???${/link}???? (${size}).
QueueToadlet.downloadSucceededTitle=????: ${filename}
+QueueToadlet.enqueuedFailure=?? ${number} ?????????:
+QueueToadlet.enqueuedSuccessfully=?? ${number} ???????????:
QueueToadlet.errorAccessDenied=????: ????!
+QueueToadlet.errorNoKeyToD=??????????.
QueueToadlet.failedD=????? (${size})
QueueToadlet.failedDU=????????? (${size})
QueueToadlet.failedU=??????? (${size})
QueueToadlet.fileName=??
-QueueToadlet.identifier=??
+QueueToadlet.files=??
+QueueToadlet.globalQueueIsEmpty=?????????
+QueueToadlet.identifier=???
QueueToadlet.insertAs=???:
QueueToadlet.insertFile=????
QueueToadlet.insertFileBrowseLabel=?????????
+QueueToadlet.insertFileCompressLabel=??
QueueToadlet.insertFileInsertFileLabel=????
QueueToadlet.insertFileLabel=??????????(???!)
+QueueToadlet.insertFileResetForm=????
QueueToadlet.key=??
QueueToadlet.legend=??
QueueToadlet.mimeType=MIME ??
QueueToadlet.none=?
-QueueToadlet.persistence=??
+QueueToadlet.notLoadedYet=??????????????. ?????.
+QueueToadlet.notLoadedYetTitle=??????
+QueueToadlet.panicButton=????
+QueueToadlet.panicButtonConfirmation=??????????????!
+QueueToadlet.persistence=???
QueueToadlet.persistenceForever=??
QueueToadlet.persistenceNone=?
+QueueToadlet.persistenceReboot=??
QueueToadlet.persistenceRebootr=??
QueueToadlet.priority=???
QueueToadlet.priority0=??
@@ -358,52 +745,129 @@
QueueToadlet.title=${nodeName}?????
QueueToadlet.totalSize=????
QueueToadlet.unknown=??
+QueueToadlet.uploadSucceeded=?? ${filename} (?? ${size}) ??????? Freenet ?.
?${link}???${/link} ????.
+QueueToadlet.uploadSucceededTitle=????: ${filename}
+QueueToadlet.warningUnsafeContent=???????
QueueToadlet.wipD=???: ?? (${size})
QueueToadlet.wipDU=???: ???? (${size})
QueueToadlet.wipU=???: ?? (${size})
+RequestStarterGroup.schedulerCHKInserts=????????(CHK ??)
+RequestStarterGroup.schedulerCHKRequests=????????(CHK ??)
+RequestStarterGroup.schedulerLong=?????????????.
+RequestStarterGroup.schedulerSSKInserts=????????(SSK ??)
+RequestStarterGroup.schedulerSSKRequests=????????(SSK ??)
RevocationKeyFoundUserAlert.text=??????????????????????. ????????????????????!
??, ?????????????, ???"???"?????????. ?????????????????????. ???????????????.
?????: ${message}.
RevocationKeyFoundUserAlert.title=????????????!
+SSL.enable=??? SSL ????
+SSL.enableLong=??? SSL ????
+SSL.keyPass=??????
+SSL.keyPassLong=??????
+SSL.keyStore=???????????
+SSL.keyStoreLong=???????????
+SSL.keyStorePass=????????
+SSL.keyStorePassLong=????????
+SSL.version=SSL ??
+SSL.versionLong=SSL ??, ????? SSLv3 ?? TLSv1 (???? SSLv3)
ShortOption.parseError=????????????????: ${error}
+SimpleToadletServer.advancedMode=?????????
+SimpleToadletServer.advancedModeLong=????????????????????. ???????????.
SimpleToadletServer.cssName=??????
-SimpleToadletServer.cssNameLong=?? Freenet ?????????
+SimpleToadletServer.cssNameLong=?? Freenet ???????
+SimpleToadletServer.cssOverride=???? CSS ?????(??!)
+SimpleToadletServer.cssOverrideCantRead=??????? CSS ???: ${filename}
+SimpleToadletServer.cssOverrideLong=???????????? CSS ????????. ??: CSS ??????,
??????? CSS ????! ???????. (?????? CSS ?? devl at freenetproject
???????????????? ;))
+SimpleToadletServer.cssOverrideNotInUploads=?????????: ?? ${filename}
???????????!
+SimpleToadletServer.doRobots=? robots.txt ???????
+SimpleToadletServer.doRobotsLong=???? /robots.txt ?? google, ????, ?? wget
?????
+SimpleToadletServer.enableInlinePrefetch=?????????????
+SimpleToadletServer.enableInlinePrefetchLong=???????????????????, ??????????.
??????.
+SimpleToadletServer.enableJS=? FProxy ?? Javascript?
+SimpleToadletServer.enableJSLong=???? FProxy ?? Javascript "????". ??????????.
???, ????????, freesite ????? Javascript.
+SimpleToadletServer.enablePersistentConnections=?????? HTTP ??? (???????)
+SimpleToadletServer.enablePersistentConnectionsLong=?????????,
??????????????????? HTTP ??, ????????.
+SimpleToadletServer.enabled=???? FProxy?
+SimpleToadletServer.enabledLong=????? FProxy ???? HTTP ??
+SimpleToadletServer.illegalCSSName=CSS ???????????!
+SimpleToadletServer.panicButton=?????????
+SimpleToadletServer.panicButtonLong=???????'????', ????????????????, ?????????.
+SimpleToadletServer.port=FProxy ????
+SimpleToadletServer.ssl=?? SSL?
+SimpleToadletServer.sslLong=??? FProxy ??? SSL
+StartupToadlet.entropyErrorContent=?????????... Freenet ???????????.
+StartupToadlet.entropyErrorTitle=????!
+StartupToadlet.isStartingUp=???????, ???.
+StartupToadlet.title=Freenet ?????
StaticToadlet.pathInvalidChars=??? URI ??????????.
StaticToadlet.pathNotFound=????????.
StaticToadlet.pathNotFoundTitle=??????
-StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
-StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
+StatisticsToadlet.ackOnlyBytes=???????: ${total}
+StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
? CHK ???, ${SSKhandlers} ? SSK ???
+StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
? CHK ???, ${SSKhandlers} ? SSK ???
+StatisticsToadlet.adminBytes=????: ${initial} ?????, ${changedIP} ?????????,
${disconn} ?????, ${routingStatus} ???????
StatisticsToadlet.allocMemory=Java ??????: ${memory}
+StatisticsToadlet.announceBytes=????: ${total}
+StatisticsToadlet.authBytes=????: ?? ${total}
StatisticsToadlet.bandwidthTitle=??
StatisticsToadlet.cpus=???CPU??: ${count}
+StatisticsToadlet.debuggingBytes=????: ${netColoring} ?????, ${ping} ? ping,
${probe} ?????, ${routed} ???????.
+StatisticsToadlet.fullTitle=${name} ?????
StatisticsToadlet.getLogs=?????????
StatisticsToadlet.inputRate=????: ?? ${rate} (???? ${max})
+StatisticsToadlet.insertOutput=????(?????): CHK ${chk} SSK ${ssk}.
StatisticsToadlet.javaVersion=Java ??: ${version}
-StatisticsToadlet.jeDumpButton=????JE??
+StatisticsToadlet.jeDumpButton=?? JE ??
StatisticsToadlet.jvmInfoTitle=JVM??
StatisticsToadlet.jvmVendor=JVM ???? ${vendor}
StatisticsToadlet.jvmVersion=JVM??: ${version}
StatisticsToadlet.maxMemory=Java ?????: ${memory}
+StatisticsToadlet.noRequests=?????????????.
+StatisticsToadlet.nodeToNodeBytes=?????: ${total}
+StatisticsToadlet.offerReplys=????????: ${chk} ? CHK, ${ssk} ? SSK.
+StatisticsToadlet.offeredKeyOutput=????: ???? ${total}, ???? ${offered}
StatisticsToadlet.osArch=????????: ${arch}
StatisticsToadlet.osName=??????: ${name}
StatisticsToadlet.osVersion=??????: ${version}
StatisticsToadlet.outputRate=????: ?? ${rate} (???? ${max})
StatisticsToadlet.payloadOutput=????: ${total} (?? ${rate}) (${percent}%)
StatisticsToadlet.peerStatsTitle=????
+StatisticsToadlet.priority=???
+StatisticsToadlet.requestOutput=????(?????): CHK ${chk} SSK ${ssk}.
+StatisticsToadlet.resendBytes=????: ${total}
+StatisticsToadlet.routingDisabled=??????(??????????, ????????????)
+StatisticsToadlet.routingDisabledShort=??????
+StatisticsToadlet.running=???
StatisticsToadlet.statisticGatheringTitle=????
-StatisticsToadlet.threadDumpButton=????????
+StatisticsToadlet.swapOutput=????: ${total}.
+StatisticsToadlet.threadDumpButton=??????
StatisticsToadlet.threads=??????: ${running}/${max}
+StatisticsToadlet.threadsByPriority=?????????
StatisticsToadlet.totalInput=????: ${total} (?? ${rate})
StatisticsToadlet.totalOutput=????: ${total} (?? ${rate})
-StatisticsToadlet.transferringRequests=????: ?? ${senders}, ?? ${receivers}
+StatisticsToadlet.totalOverhead=???????: ?? ${rate} (${percent}%).
+StatisticsToadlet.transferringRequests=??????: ${senders} ?????, ${receivers}
?????
+StatisticsToadlet.unaccountedBytes=????: ${total} (${percent}%)
+StatisticsToadlet.uomBytes=??????: ${total}
StatisticsToadlet.usedMemory=Java ??????: ${memory}
StatisticsToadlet.versionTitle=??????
+StatisticsToadlet.waiting=???
SymlinkerToadlet.symlinks=ToadletServer??????
+TestnetHandler.cannotEnableDisableOnTheFly=?????????????(testnet)??;
????????????
+TestnetHandler.enable=????????(testnet)???(??!)
+TestnetHandler.enableLong=?????????(testnet)??(??!). ???????????????????????,
??????????????.
+TestnetHandler.port=????(Testnet)????
+TestnetHandler.portLong=????(Testnet)???? (-1 = listenPort+1000)
TextModeClientInterfaceServer.allowedHosts=??????
+TextModeClientInterfaceServer.allowedHostsLong=????????????????????.
???????????: ???, ???????, ??? CIDR ???????(?? 192.168.0.0/24).
TextModeClientInterfaceServer.bindTo=??????
TextModeClientInterfaceServer.bindToLong=?????IP??
TextModeClientInterfaceServer.enableInputOutput=???stdout/stdin?
+TextModeClientInterfaceServer.enableInputOutputLong=????????????????????????
(??????????? telnet ??????, ???????? socket ????)
TextModeClientInterfaceServer.enabled=??????
TextModeClientInterfaceServer.enabledLong=?????????????
+TextModeClientInterfaceServer.ssl=?? SSL?
+TextModeClientInterfaceServer.sslLong=???????????????? SSL
TextModeClientInterfaceServer.telnetPortNumber=?????
+TextModeClientInterfaceServer.telnetPortNumberLong=???????????? TCP ????
TimeSkewDetectedUserAlert.shortText=???????????????. Freenet ?????????!
TimeSkewDetectedUserAlert.text=?????????????????. ?????. ??????????, ????????.
?????????????????, ??????, ????????.
TimeSkewDetectedUserAlert.title=???????!
@@ -414,17 +878,26 @@
Toadlet.internalErrorTitle=????
Toadlet.no=?
Toadlet.nodeHomepage=????
-Toadlet.notSupportedTitle=???
+Toadlet.notSupportedTitle=???
Toadlet.notSupportedWithClass=?????????? Freenet (${class}) ???????.
Toadlet.ok=?
Toadlet.permRedirectWithReason=????: ${reason}
Toadlet.returnToNodeHomepage=??????
Toadlet.returnToPrevPage=?????
+Toadlet.returnToQueuepage=??????
Toadlet.tempRedirectWithReason=????: ${reason}
-Toadlet.unauthorized=??????????.
+Toadlet.unauthorized=???????????.
Toadlet.unauthorizedTitle=????
Toadlet.yes=?
-TranslationToadlet.bracketRemoveOverride=(???????!)
+ToadletContextImpl.cannotParseContentLength=????????: ${error}
+ToadletContextImpl.cannotParseContentLengthWithError=????????: ${error}
+ToadletContextImpl.headersLineTooLong=???????????????
+ToadletContextImpl.methodNotAllowed=HTTP ?????
+ToadletContextImpl.noContentLengthInPOST=? POST ???????????
+ToadletContextImpl.noSuchToadlet=???????? Toadlet
+ToadletContextImpl.parseErrorWithError=????: ${error}
+ToadletContextImpl.uriParseErrorTitle=URI ????
+TranslationToadlet.bracketRemoveOverride=(????????!)
TranslationToadlet.bracketTranslateIt=(?????????!)
TranslationToadlet.bracketUpdateTranslation=(??????)
TranslationToadlet.confirmRemoveOverride=????????????:(${key} - ${value})??
@@ -435,81 +908,120 @@
TranslationToadlet.originalVersionLabel=?????(????)
TranslationToadlet.reEdit=????????
TranslationToadlet.remove=??
+TranslationToadlet.removeOverrideTitle=???????
+TranslationToadlet.removeOverrideWarningTitle=????????????!
TranslationToadlet.returnToTranslations=??????
TranslationToadlet.showEverything=????,???????????
TranslationToadlet.translationKeyLabel=????
TranslationToadlet.translationUpdateTitle=????
TranslationToadlet.translationUpdatedTitle=??????!
TranslationToadlet.updateTranslationCommand=??????!
-UnknownContentTypeException.explanation=?? Freenet ??????? MIME ??. ????,
?????????????????????, ????????. ???, ?????????????????????, ?????????????;
??????????, ???????????, ???????????(???????????????, ???????????????).
???????, ??????????????????, ?????? script ???????????????.
+UnknownContentTypeException.explanation=?? Freenet ??????? MIME ??. ????,
?????????????????????, ????????. ???, ?????????????????????, ?????????????;
??????????, ???????????, ???????????(???????????????, ???????????????).
???????, ????????????????, ?????? script ???????????????.
UnknownContentTypeException.title=??????????????: ${type}
-UpdatedVersionAvailableUserAlert.armed=?????????????????Freenet???,??????.
+UpdateDeployContext.cannotUpdateNoExtJar=??? wrapper.conf ?????
freenet-ext.jar (??????? freenet.jar: ${mainFilename})
+UpdateDeployContext.cannotUpdateNoJars=??? wrapper.conf ??? Freenet ??? jar ??
+UpdateDeployContext.cannotUpdateNoMainJar=??? wrapper.conf ????? freenet.jar
(??????? freenet-ext.jar: ${extFilename})
+UpdateDeployContext.updateCatastrophe=??????: ??????? ${old}, ???????? ${new}
??? ${old}, ??*???????*! ???????? ${new} ??? ${old} ???????.
+UpdateDeployContext.updateFailedCannotDeleteOldConfig=??????? ${old},
??????????????. ??????.
+UpdateDeployContext.updateFailedNonStandardConfig=???????????????????: ????
main=${main} ext=${ext} - ????????! ???????????, ????? wrapper.conf ??.
+UpdatedVersionAvailableUserAlert.alsoDownloadedNewExtJar=????????? Freenet
????, ??? ${version}
+UpdatedVersionAvailableUserAlert.armed=?????????? Freenet ????????,??????.
+UpdatedVersionAvailableUserAlert.clickToUpdateASAP=??????, ?????????????.
UpdatedVersionAvailableUserAlert.clickToUpdateNow=????????????????.
-UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????????Freenet????,???${version}.
-UpdatedVersionAvailableUserAlert.downloadedNewJar=?????????????Freenet??,???${version}.
-UpdatedVersionAvailableUserAlert.fetchingNewNode=???????????????Freenet??(????
${nodeVersion}).
-UpdatedVersionAvailableUserAlert.notLatest=??????????????????.
-UpdatedVersionAvailableUserAlert.title=Freenet????????????
+UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????? Freenet ????,
??? ${version}.
+UpdatedVersionAvailableUserAlert.downloadedNewJar=?????????? Freenet ??, ???
${version}.
+UpdatedVersionAvailableUserAlert.fetchingNewBoth=????????? Freenet ?? (?????
${nodeVersion}, ??????? ${extVersion}).
+UpdatedVersionAvailableUserAlert.fetchingNewExt=????????? Freenet ?? (?
${extVersion} ?????? jar ??).
+UpdatedVersionAvailableUserAlert.fetchingNewNode=??????????? Freenet ?? (?????
${nodeVersion}).
+UpdatedVersionAvailableUserAlert.finalCheck=???????????????????? (??:
${count}/${max}, ????????: ${time}).
+UpdatedVersionAvailableUserAlert.notLatest=?????????????????.
+UpdatedVersionAvailableUserAlert.shortArmed=????????? Freenet ??, ?????????.
+UpdatedVersionAvailableUserAlert.shortNotReadyNotArmed=????????? Freenet ??,
?????????????.
+UpdatedVersionAvailableUserAlert.shortReadyNotArmed=?????????? Freenet ??,
?????????????.
+UpdatedVersionAvailableUserAlert.title=???? Freenet ??????
UpdatedVersionAvailableUserAlert.updateASAPButton=????
-UpdatedVersionAvailableUserAlert.updateASAPQuestion=????????????????????????
+UpdatedVersionAvailableUserAlert.updateASAPQuestion=?????????????????, ????????
UpdatedVersionAvailableUserAlert.updateNowButton=????!
UserAlert.apply=??
UserAlert.hide=??
UserAlert.reset=??
UserAlertManager.alertsOnAlertsPage=| ??${link}????${/link}??????.
UserAlertManager.alertsTitle=?????
-UserAlertManager.clickForMore=?????????????????, ??????.
-UserAlertManager.criticalErrorCountLabel=????:
+UserAlertManager.clickForMore=????????????????, ??????.
+UserAlertManager.criticalErrorCountLabel=????:
UserAlertManager.dumpEventsButton=???????
UserAlertManager.errorCountLabel=??:
UserAlertManager.minorCountLabel=??:
UserAlertManager.totalLabel=??:
UserAlertManager.warningCountLabel=??:
UserAlertsToadlet.titleWithName=${name} ?????
-WelcomeToadlet.activityTitle=????
+WelcomeToadlet.activityTitle=????
WelcomeToadlet.alertsSummary=??????
WelcomeToadlet.arkFetchCount=ARK???: ${total}
WelcomeToadlet.confirmAddBookmarkSubTitle=??????
-WelcomeToadlet.confirmExternalLinkTitle=???????
-WelcomeToadlet.confirmExternalLinkWithURL=??????????????${url}???????? Freenet
???????????????????????????????
+WelcomeToadlet.confirmAddBookmarkTitle=????
+WelcomeToadlet.confirmAddBookmarkWithKey=???????? ${key} ??????, ?????????:
+WelcomeToadlet.confirmExternalLinkSubTitle=??????
+WelcomeToadlet.confirmExternalLinkTitle=??: ????
+WelcomeToadlet.confirmExternalLinkWithURL=??????????????${url}?????????
Freenet ???????????????????????????????
+WelcomeToadlet.confirmFIN=?????????? Frost ???
+WelcomeToadlet.databaseStatsSubTitle=?????
+WelcomeToadlet.databaseStatsTitle=?? JE ??
WelcomeToadlet.disabledAlert=????
WelcomeToadlet.extVersion=Freenet-ext ????:${build} r${rev}
WelcomeToadlet.extVersionWithRecommended=Freenet-ext ????:${build}
(??????${recbuild}) ????:${rev}
WelcomeToadlet.fetch=??
WelcomeToadlet.fetchKeyLabel=????
-WelcomeToadlet.finInsertSuccessWithKey=??????????? ${key} ?
+WelcomeToadlet.finInsertSuccessWithKey=????????? ${key}.
+WelcomeToadlet.finInsertedTitle=??
+WelcomeToadlet.finTitle=?? Frost ????
+WelcomeToadlet.fromHeader=??
+WelcomeToadlet.goToExternalLink=???????
WelcomeToadlet.homepageFullTitleWithName=${name} ? Freenet FProxy ??
WelcomeToadlet.ieWarning=?????????Internet Explorer?????????????????
+WelcomeToadlet.ieWarningTitle=??????!
WelcomeToadlet.insertCount=??: ${total}
-WelcomeToadlet.insertFailedTitle=????
-WelcomeToadlet.insertSucceededTitle=??????
-WelcomeToadlet.insertedTitle=????
-WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?????? key
${link}${name}${/link}?
+WelcomeToadlet.insertFailedTitle=????
+WelcomeToadlet.insertFailedWithMessage=?????, ?????: ${message}
+WelcomeToadlet.insertSucceededTitle=????
+WelcomeToadlet.insertedTitle=??
+WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?? ${link}${name}${/link}
???????.
WelcomeToadlet.keyRequestLabel=??:
+WelcomeToadlet.messageHeader=??
WelcomeToadlet.nodeUpdateConfirm=????????Freenet????
WelcomeToadlet.nodeUpdateConfirmTitle=??????
+WelcomeToadlet.post=??
WelcomeToadlet.privateKeyHeader=??
WelcomeToadlet.publicKeyHeader=??
-WelcomeToadlet.requestCount=??: ${total}
+WelcomeToadlet.requestCount=??: ${total}
WelcomeToadlet.restart=??
WelcomeToadlet.restartConfirm=??????????Freenet????
WelcomeToadlet.restartConfirmTitle=????
WelcomeToadlet.restartNode=????
-WelcomeToadlet.restarting=??????????????,?????????????.?????Freenet.
-WelcomeToadlet.restartingTitle=?Freenet???????.
+WelcomeToadlet.restarting=?????????????, ?????????????. ?????Freenet.
+WelcomeToadlet.restartingTitle=Freenet ???????.
WelcomeToadlet.shutdown=??
WelcomeToadlet.shutdownConfirm=???????? Freenet ????
WelcomeToadlet.shutdownConfirmTitle=????
+WelcomeToadlet.shutdownDone=Freenet ???????.
WelcomeToadlet.shutdownNode=????
WelcomeToadlet.splitfileErrorLabel=??????
+WelcomeToadlet.subjectHeader=??
+WelcomeToadlet.targetBoardHeader=?????
WelcomeToadlet.testnetWarningTitle=??(????)??
WelcomeToadlet.thanks=???? Freenet.
-WelcomeToadlet.transferringRequestCount=????: ${total}
+WelcomeToadlet.threadDumpNotUsingWrapper=???????????, ????????????!
+WelcomeToadlet.threadDumpSubTitle=????????
+WelcomeToadlet.threadDumpTitle=??????
+WelcomeToadlet.threadDumpWithFilename=????????, ????? ${filename} ?????.
+WelcomeToadlet.transferringRequestCount=??????: ${total}
WelcomeToadlet.update=??
WelcomeToadlet.updating=?Freenet??????,???????????.?????????????????,?????????????.
WelcomeToadlet.updatingTitle=?????
+WelcomeToadlet.uriWouldHaveBeen=URI ???: ${uri}
WelcomeToadlet.version=Freenet ??:${fullVersion} ????:${build} r${rev}
WelcomeToadlet.versionHeader=???????
-WrapperConfig.wrapper.java.maxmemory.long=Freenet ???????. ???????????,
Freenet ?????????; ?????????????, ????????. ?????????? Freenet ??????.
+WelcomeToadlet.writtenDatabaseStats=????????????????????????
+WrapperConfig.wrapper.java.maxmemory.long=Freenet ???????. ???????????,
Freenet ?????????; ??????????????, ????????. ?????????? Freenet ??????.
WrapperConfig.wrapper.java.maxmemory.short=?????(???MiB)
End
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
2008-07-07 15:51:48 UTC (rev 20999)
@@ -1,3 +1,14 @@
+Announcer.announceAlertIntro=Freenet ??????? - ???????????. ????????,
????????. ??????? Freenet ????????, ????????, ????? 24 ??????.
+Announcer.announceAlertNoSeednodes=??? seednodes.fref ??,
????????????????(opennet)?. ?????????, ???
http://downloads.freenetproject.org/alpha/opennet/ ???????.
+Announcer.announceAlertShort=???????????, ????????.
+Announcer.announceAlertTitle=?????
+Announcer.announceDetails=??????? ${recentSentAnnouncements} ?????, ???
${runningAnnouncements} ??????, ????? ${addedNodes} ???(??? ${refusedNodes}
??????). ??????? ${connectedSeednodes} ???????, ????????
${disconnectedSeednodes} ?????.
+Announcer.announceDisabledTooOld=?????????, ???????? Freenet ????. ?????????,
????????????. ???????????(????????????????, ???????).
+Announcer.announceDisabledTooOldShort=??????????, ???? Freenet ?????.
?????????.
+Announcer.announceDisabledTooOldTitle=???????(????)
+Announcer.announceLoading=Freenet ?????????, ?????????????. ??????????????.
+Announcer.coolingOff=????? ${time} ???, ??????????????????????, ?????????????,
??????????.
+Bookmark.noName=??
BookmarkEditorToadlet.addBookmark=????
BookmarkEditorToadlet.addCategory=????
BookmarkEditorToadlet.addDefaultBookmarks=??????????.
@@ -3,5 +14,5 @@
BookmarkEditorToadlet.addNewBookmark=??????
BookmarkEditorToadlet.addNewCategory=?????
-BookmarkEditorToadlet.addedNewBookmark=??????????.
+BookmarkEditorToadlet.addedNewBookmark=??????????.
BookmarkEditorToadlet.addedNewBookmarkTitle=???????
BookmarkEditorToadlet.bookmarkDoesNotExist="${bookmark}"???????.
@@ -24,41 +35,58 @@
BookmarkEditorToadlet.editBookmarkTitle=????
BookmarkEditorToadlet.editCategoryTitle=????
BookmarkEditorToadlet.error=??
-BookmarkEditorToadlet.hasAnActivelinkLabel=? freesite ?????????
+BookmarkEditorToadlet.hasAnActivelinkLabel=?? freesite ?????????
BookmarkEditorToadlet.invalidKey=???Freenet??.
BookmarkEditorToadlet.invalidKeyTitle=????
-BookmarkEditorToadlet.invalidKeyWithReason=???Freenet??.
+BookmarkEditorToadlet.invalidKeyWithReason=??? Freenet ??.
BookmarkEditorToadlet.keyLabel=??:
BookmarkEditorToadlet.moveDown=??
BookmarkEditorToadlet.moveUp=??
BookmarkEditorToadlet.myBookmarksTitle=????
BookmarkEditorToadlet.nameLabel=??:
BookmarkEditorToadlet.paste=??
-BookmarkEditorToadlet.pasteOrCancel=??????????????,??????.
+BookmarkEditorToadlet.pasteOrCancel=????????????, ??????.
BookmarkEditorToadlet.pasteTitle=??/??
BookmarkEditorToadlet.save=??
BookmarkEditorToadlet.title=?????
BookmarkEditorToadlet.urlDecodeError=URL????
+BookmarkItem.bookmarkUpdated=???????? ${name} ?????? ${edition} ?.
+BookmarkItem.bookmarkUpdatedShort=?????? freesite ????: ${name}
+BookmarkItem.bookmarkUpdatedTitle=??????: ${name}
+BookmarkItem.bookmarkUpdatedWithLink=???????? ${link}${name}${/link} ??????
${edition} ?.
+BookmarkItem.deleteBookmarkUpdateNotification=????
+BookmarkItem.unnamedBookmark=?????
BookmarkManager.list=????
+BookmarkManager.listLong=?????? freesite ??
+BookmarkManager.malformedBookmark=???????
BooleanOption.parseError=????????: ${val} - ??? true ? false
-BuildOldAgeUserAlert.tooOld=?????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
??????????????)
-BuildOldAgeUserAlert.tooOldShort=??????? Freenet ??????, ???????????????!
?????!
-BuildOldAgeUserAlert.tooOldTitle=?????
+BuildOldAgeUserAlert.tooOld=????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
???????????????)
+BuildOldAgeUserAlert.tooOldShort=????? Freenet ????????, ???????????????!
?????!
+BuildOldAgeUserAlert.tooOldTitle=????
+CSSTokenizerFilter.supplementalCharsNotSupported=??????? 0xFFFF ? UCS-4 ??!
ClockProblemDetectedUserAlert.shortText=??????????, Freenet ??????.
ClockProblemDetectedUserAlert.text=Freenet ?????????(?????)????.
??????????????, Freenet ??????.
-ClockProblemDetectedUserAlert.title=??????.
+ClockProblemDetectedUserAlert.title=??????.
+ConfigToadlet.appliedFailureExceptions=?????????, ?????????:
+ConfigToadlet.appliedFailureTitle=??????
ConfigToadlet.appliedSuccess=??????????.
ConfigToadlet.appliedTitle=???????
ConfigToadlet.apply=??
ConfigToadlet.configNavTitle=????
ConfigToadlet.contributeTranslation=????????
+ConfigToadlet.defaultIs=???: '${default}'.
+ConfigToadlet.false=?
ConfigToadlet.fullTitle=${name} ? Freenet ????
+ConfigToadlet.modeAdvanced=??????
+ConfigToadlet.modeSimple=??????
ConfigToadlet.possibilitiesTitle=??
ConfigToadlet.reset=??
ConfigToadlet.returnToNodeConfig=??????
ConfigToadlet.shortTitle=??
ConfigToadlet.title=Freenet ????
-ConfigToadlet.wrapper=??
+ConfigToadlet.true=?
+ConfigToadlet.wrapper=????
+ConfigToadlet.wrapperSettingsTitle=??????
ConfigurablePersister.doesNotExistCannotCreate=?????????????.
ConfigurablePersister.existsCannotReadWrite=??????????????
ConnectionsToadlet.nodeStatus.BACKED OFF=???
@@ -73,12 +101,25 @@
ConnectionsToadlet.nodeStatus.LISTEN ONLY=???
ConnectionsToadlet.nodeStatus.LISTENING=???
ConnectionsToadlet.nodeStatus.NEVER CONNECTED=????
+ConnectionsToadlet.nodeStatus.ROUTING DISABLED=?????
ConnectionsToadlet.nodeStatus.TOO NEW=??
ConnectionsToadlet.nodeStatus.TOO OLD=??
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=????
+ConnectivityToadlet.addressTitle=??
+ConnectivityToadlet.byIPTitle=${ip} ?????????? - ${status} (???????
${tunnelLength})
+ConnectivityToadlet.byPortTitle=${port} ????????? - ${status} (???????
${tunnelLength})
+ConnectivityToadlet.connectivity=??????
ConnectivityToadlet.connectivityTitle=??
+ConnectivityToadlet.firstReceiveLeadTime=?????????
+ConnectivityToadlet.firstSendLeadTime=?????????
+ConnectivityToadlet.local=??
+ConnectivityToadlet.localRemoteTitle=??/??
+ConnectivityToadlet.noreply=????
+ConnectivityToadlet.remote=??
+ConnectivityToadlet.sentReceivedTitle=??/?????
ConnectivityToadlet.summaryTitle=??
-ContentDataFilter.unknownCharset=?????????????????. ????????????????,
????????????.
+ConnectivityToadlet.title=${nodeName} ???????
+ContentDataFilter.unknownCharset=?????????????????. ????????????????,
????????????.
ContentDataFilter.unknownCharsetTitle=?????!
ContentDataFilter.warningUnknownCharsetTitle=??: ?????? (${charset})
DarknetConnectionsToadlet.activityInserts=??: ??${totalSenders}????,
${CHKhandlers}?CHK???, ${SSKhandlers}?SSK???
@@ -86,63 +127,66 @@
DarknetConnectionsToadlet.activityTitle=????
DarknetConnectionsToadlet.add=??
DarknetConnectionsToadlet.addPeerTitle=??????
-DarknetConnectionsToadlet.backedOff=???????:????????????,???????????.
+DarknetConnectionsToadlet.backedOff=???????: ????????????, ???????????.
DarknetConnectionsToadlet.backedOffShort=???
DarknetConnectionsToadlet.burstingShort=???
-DarknetConnectionsToadlet.busy=??:????????,??????????????????,??????????????.
+DarknetConnectionsToadlet.busy=??: ????????, ??????????????????, ?????????????.
DarknetConnectionsToadlet.busyShort=??
DarknetConnectionsToadlet.cancel=??
DarknetConnectionsToadlet.cantFetchNoderefURL=??? ${url} ??????.?????.
DarknetConnectionsToadlet.cantParseTryAgain=????????????:(${error}).?????.
DarknetConnectionsToadlet.cantParseWrongEnding=?????????:???????????End??,???????????:${end}
-DarknetConnectionsToadlet.clockProblemShort=????
+DarknetConnectionsToadlet.clockProblemShort=????
DarknetConnectionsToadlet.confirmRemoveNodeTitle=???
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=????
DarknetConnectionsToadlet.connected=???:??????????
DarknetConnectionsToadlet.connectedShort=???
-DarknetConnectionsToadlet.disabled=???????:????????????????.
+DarknetConnectionsToadlet.darknetFnpPort=????(Darknet) FNP: ${port}/UDP
(?????????, ???"??", ????; ???????????????)
+DarknetConnectionsToadlet.disabled=???????: ???????????????????.
DarknetConnectionsToadlet.disabledShort=???
DarknetConnectionsToadlet.disconnectingShort=???
DarknetConnectionsToadlet.enterDescription=?????:
DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=??????:????
DarknetConnectionsToadlet.failedToAddNodeTitle=??????
-DarknetConnectionsToadlet.fcpPort=FCP: ${port}/tcp (?Frost,Thaw?Freenet???????)
-DarknetConnectionsToadlet.fileReference=??????????????:
+DarknetConnectionsToadlet.fcpPort=FCP: ${port}/TCP (? Frost, Thaw ? Freenet
???????)
+DarknetConnectionsToadlet.fileReference=???????????????:
DarknetConnectionsToadlet.fnpPort=FNP: ${port}/udp (???????;??????????????)
DarknetConnectionsToadlet.forceRemove=????
DarknetConnectionsToadlet.fproxyDisabled=FProxy???????)?????
-DarknetConnectionsToadlet.fproxyPort=FProxy: ${port}/tcp (?web????)
+DarknetConnectionsToadlet.fproxyPort=FProxy: ${port}/TCP (??????)
DarknetConnectionsToadlet.fullTitle=${name}?${counts}???
DarknetConnectionsToadlet.go=??
DarknetConnectionsToadlet.idleTime=??????????????????
DarknetConnectionsToadlet.idleTimeTitle=???????
DarknetConnectionsToadlet.invalidSignature=??????????????(${error}).
DarknetConnectionsToadlet.ipAddressTitle=??
+DarknetConnectionsToadlet.listenOnlyShort=???
DarknetConnectionsToadlet.listeningShort=???
DarknetConnectionsToadlet.myFriends=????
DarknetConnectionsToadlet.myReferenceHeader=${linkref}??????${/linkref}
(${linktext}????${/linktext})
-DarknetConnectionsToadlet.nameClickToMessage=????.????????????????????
+DarknetConnectionsToadlet.nameClickToMessage=????. ????????????????????
DarknetConnectionsToadlet.nameTitle=??
-DarknetConnectionsToadlet.neverConnected=????:????????????????.
+DarknetConnectionsToadlet.neverConnected=????: ???????????????.
DarknetConnectionsToadlet.neverConnectedShort=????
DarknetConnectionsToadlet.noPeersFirstHalf=Freenet?????????????,???????.??
DarknetConnectionsToadlet.noPeersSecondHalf=??,???????????????.
DarknetConnectionsToadlet.noRefOrURL=???????????????URL. ?????.
-DarknetConnectionsToadlet.nodePortsTitle=????????
-DarknetConnectionsToadlet.notConnected=???:?????,??????????????????.
+DarknetConnectionsToadlet.nodePortsTitle=???????
+DarknetConnectionsToadlet.notConnected=???: ?????, ??????????????
DarknetConnectionsToadlet.notConnectedShort=???
-DarknetConnectionsToadlet.pasteReference=???????????:
-DarknetConnectionsToadlet.privateNote=??????????
+DarknetConnectionsToadlet.opennetFnpPort=????(Opennet) FNP: ${port}/UDP
(??????????, ???"???", ????; ??????????????)
+DarknetConnectionsToadlet.pasteReference=???????????:
+DarknetConnectionsToadlet.privateNote=???????????
DarknetConnectionsToadlet.privateNoteTitle=????
DarknetConnectionsToadlet.referenceCopyWarning=???????${bold}????${/bold}??.??????${bold}????${/bold}.
DarknetConnectionsToadlet.remove=???!
DarknetConnectionsToadlet.removePeers=???????
DarknetConnectionsToadlet.seedServersShort=??
DarknetConnectionsToadlet.selectAction=-- ???? --
-DarknetConnectionsToadlet.sendMessageTitle=?????????
-DarknetConnectionsToadlet.sendMessageToPeers=???????????????
+DarknetConnectionsToadlet.sendMessageTitle=?????????
+DarknetConnectionsToadlet.sendMessageToPeers=???????????????
DarknetConnectionsToadlet.statusTitle=??
-DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/tcp (??telnet????????)
+DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/TCP (?? telnet ????????)
DarknetConnectionsToadlet.tooNewShort=??
DarknetConnectionsToadlet.tooOldShort=??
DarknetConnectionsToadlet.transferringRequests=????: ${senders}????,
${receivers}????
@@ -154,110 +198,359 @@
ExtOldAgeUserAlert.extTooOld=?? freenet-ext.jar ?????????,
???????????????????: http://downloads.freenetproject.org/alpha/freenet-ext.jar.
ExtOldAgeUserAlert.extTooOldShort=?? freenet-ext.jar ?????. ?????.
ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext ??
+FProxyToadlet.abortToHomepage=?????? FProxy ??
+FProxyToadlet.alerts=???????
FProxyToadlet.alertsTitle=??
+FProxyToadlet.backToFProxy=${link}???${/link}?? FProxy ??.
+FProxyToadlet.backToReferrer=${link}???${/link}??????.
FProxyToadlet.config=??/??????
FProxyToadlet.configTitle=??
FProxyToadlet.dangerousContentTitle=????????
+FProxyToadlet.dangerousRSS=Freenet ??????????????? RSS ??. Freenet ?????? RSS
??, ?? RSS ?????????(?????????, ??????????????????, ????????). Firefox 2.0 ?
Internet Explorer 7.0 ???????? RSS ????, ??????????? "${type}".
+FProxyToadlet.dangerousRSSSubtitle=RSS ??????????
FProxyToadlet.dangerousRSSTitle=???????? (RSS)
+FProxyToadlet.downloadInBackgroundToDisk=?????????????????
+FProxyToadlet.errorIsFatal=???????. ?????????????.
+FProxyToadlet.errorWithReason=??: ${error}
+FProxyToadlet.expectedKeyButGot=???? Freenet ??, ??????:
+FProxyToadlet.expectedMimeType=?? MIME ??: ${mime}
+FProxyToadlet.explanationTitle=??
+FProxyToadlet.fetchLargeFileAnywayAndDisplay=?????, ??????????????
+FProxyToadlet.fileInformationTitle=????
+FProxyToadlet.filenameLabel=??:
FProxyToadlet.friends=??????
FProxyToadlet.friendsTitle=??
FProxyToadlet.goBack=?????
+FProxyToadlet.goBackToPrev=?????
FProxyToadlet.homepage=??
+FProxyToadlet.invalidKeyTitle=??????
+FProxyToadlet.invalidKeyWithReason=??????: ${reason}
+FProxyToadlet.largeFile=??
+FProxyToadlet.largeFileExplanationAndOptions=??? Freenet ???????.
????????????????????, ?? Freenet ?????????????. ???????:
+FProxyToadlet.mayChange=(???)
FProxyToadlet.mimeType=MIME ???${mime}
-FProxyToadlet.openForce=?${link}??${/link}????? ${mime} ????????????????
+FProxyToadlet.notFoundTitle=???
+FProxyToadlet.openAsText=${link}???${/link}??????????? (???????, ??????????).
+FProxyToadlet.openForce=${link}???${/link}????? ${mime} ????????????????.
+FProxyToadlet.openForceDisk=${link}???${/link}????????????????.
+FProxyToadlet.openPossRSSAsPlainText=${link}???${/link}???????????(? IE7 ??
FF2 ?${bold}??????s${/bold}).
+FProxyToadlet.openPossRSSForceDisk=${link}???${/link}????????????????(?????
Firefox 2.0.0, ${bold}??????????${/bold}, 2.0.1 ???????????).
+FProxyToadlet.openRSSAsRSS=${link}???${/link}?? RSS ??????
(?????????????${bold}????${/bold}, Freenet ???????? RSS ????).
+FProxyToadlet.openRSSForce=${link}????${/link}?? ${mime} ??????(? IE7 ?? FF2
?${bold}??????${/bold}).
+FProxyToadlet.opennet=????????
FProxyToadlet.opennetTitle=???
+FProxyToadlet.options=?????:
+FProxyToadlet.pathNotFound=???????.
FProxyToadlet.pathNotFoundTitle=???????
+FProxyToadlet.plugins=???????
FProxyToadlet.pluginsTitle=????
FProxyToadlet.queue=????????
FProxyToadlet.queueTitle=??
+FProxyToadlet.retryNow=????
+FProxyToadlet.sizeLabel=??:
FProxyToadlet.sizeUnknown=??????
+FProxyToadlet.stats=??????
FProxyToadlet.statsTitle=??
FProxyToadlet.translationTitle=??
+FProxyToadlet.unableToRetrieve=Freenet ????????.
FProxyToadlet.unknownMIMEType=MIME ??????
FProxyToadlet.welcome=??
FProxyToadlet.welcomeTitle=??
FcpServer.allowedHosts=??????(????????)
FcpServer.allowedHostsFullAccess=???????????
FcpServer.allowedHostsLong=???????????IP???????????????????????IP?????CIDR???IP????(?
192.168.0.0/24)?
+FcpServer.assumeDownloadDDAIsAllowed=??????? DDA?
+FcpServer.assumeDownloadDDAIsAllowedLong=???????????????(DDA)? ???, ?????? DDA
??????? TestDDARequest ??.
+FcpServer.assumeUploadDDAIsAllowed=??????? DDA?
+FcpServer.assumeUploadDDAIsAllowedLong=???????????????(DDA)? ???, ?????? DDA
??????? TestDDARequest ??.
+FcpServer.downloadsFileCanCreateCannotReadOrWrite=???????????
+FcpServer.downloadsFileExistsCannotReadOrWrite=???????????
+FcpServer.enablePersistentDownload=????????
+FcpServer.enablePersistentDownloadLong=????? FCP ???? Persistence=forever.
??????????????????????; ???????????, ???????????????.
+FcpServer.filenameToStorePData=??????????
+FcpServer.filenameToStorePDataLong=??????????????
+FcpServer.intervalBetweenWrites=???????????????
+FcpServer.intervalBetweenWritesLong=???????????????.
FcpServer.isEnabled=??FCP???
+FcpServer.isEnabledLong=???? Freenet ?????(FCP)???
FcpServer.portNumber=FCP?
+FcpServer.ssl=?? SSL?
+FcpServer.sslLong=??? FCP ?????? SSL
+FileOffer.commentLabel=??:
+FileOffer.fileLabel=??:
+FileOffer.mimeLabel=MIME ??:
+FileOffer.senderLabel=???:
+FileOffer.sizeLabel=??:
FirstTimeWizardToadlet.bandwidthLimit=????
FirstTimeWizardToadlet.bandwidthLimitLong=???????????????????????
FirstTimeWizardToadlet.bwlimitHigherSpeed=???
FirstTimeWizardToadlet.bwlimitLowerSpeed=???
FirstTimeWizardToadlet.chooseNodeName=????????
+FirstTimeWizardToadlet.chooseNodeNameLong=?????????????(???????,
????????????). ?????????(???????????????)???????????.
???(???????????????)???????. ???, ????????????????????????????, ????????????,
??????????????????.
FirstTimeWizardToadlet.clickContinue=??????
FirstTimeWizardToadlet.congratz=????????
+FirstTimeWizardToadlet.congratzLong=??, ??????????? Freenet ???.
????"??"???????????????, ????????????????. ???, Freenet ?????????, ???????.
?????????????? Freenet. ?????? Freenet ??????.
FirstTimeWizardToadlet.connectToStrangers=???????
-FirstTimeWizardToadlet.connectToStrangersLong=??????? Freenet
????????????????????????????????????
Freenet????????????????????Freenet??????????????????????????????
+FirstTimeWizardToadlet.connectToStrangersLong=??????? Freenet
???????????????????????????????????? Freenet??????????????? Freenet
????????????????????????????????????
FirstTimeWizardToadlet.continue=??
FirstTimeWizardToadlet.continueEnd=???????Freenet?
+FirstTimeWizardToadlet.datastoreSize=??????
FirstTimeWizardToadlet.datastoreSizeLong=???????????????????????????????????????????????????????????????????????????????????
FirstTimeWizardToadlet.enableOpennet=????????? Freenet ??
-FirstTimeWizardToadlet.fivePercentDisk=?? 5% ??????
+FirstTimeWizardToadlet.fivePercentDisk=(? 5% ???????)
FirstTimeWizardToadlet.homepageTitle=Freenet ???????
FirstTimeWizardToadlet.iDoTrust=???????? ${interface} (${ip}) ????
FirstTimeWizardToadlet.isNetworkTrusted=???????????
+FirstTimeWizardToadlet.isNetworkTrustedLong=????????????? ??????,
??????????????????????????????. ??????????, ????????????????????.
+FirstTimeWizardToadlet.memoryLimit=??????
FirstTimeWizardToadlet.memoryLimitLong=???? Freenet
????????????????????/???Freenet ??????????????????????????????????????? 128MB
??????? 1GB ????????????? 256MB??????????? Freenet ?????
FirstTimeWizardToadlet.noNetworkIF=?????????
FirstTimeWizardToadlet.noNetworkIFLong=Freenet ??????????????????????? Freenet?
FirstTimeWizardToadlet.opennetNo=???????????????? Freenet ???????????????????
-FirstTimeWizardToadlet.opennetWarning=?? Freenet ?????????????????? Freenet
?????????????????????????????????????????????Freenet ???????????????????????
+FirstTimeWizardToadlet.opennetWarning=?? Freenet ?????????????????? Freenet
?????????????????????????????????????????????Freenet ??????????????????????
FirstTimeWizardToadlet.opennetYes=???????????????????
FirstTimeWizardToadlet.skipWizard=??????????????
+FirstTimeWizardToadlet.step1Title=Freenet ??????? - ??????
+FirstTimeWizardToadlet.step2Title=Freenet ??????! - ??????
FirstTimeWizardToadlet.step3Title=Freenet ?????? - ????
FirstTimeWizardToadlet.step4Title=Freenet ?????? - ??????
+FirstTimeWizardToadlet.step5Title=Freenet ??????! - ????
FirstTimeWizardToadlet.step6Title=Freenet ?????? - ????????
+FirstTimeWizardToadlet.step7Title=Freenet ??????! - ??, ??????????
+FirstTimeWizardToadlet.tenPercentDisk=(? 10% ???????)
+FirstTimeWizardToadlet.warningTitle=??!
+FirstTimeWizardToadlet.welcomeInfoboxContent1=Freenet ????????????.
??????????????????????????.
FirstTimeWizardToadlet.welcomeInfoboxTitle=???? Freenet ???????
+FirstTimeWizardToadlet.memory.128M=128 ?????(MiB) - ??????
+FirstTimeWizardToadlet.memory.192M=192 ?????(MiB) - ??????
+FirstTimeWizardToadlet.memory.256M=256 ?????(MiB) - ?????? 1GB ???
+FirstTimeWizardToadlet.memory.512M=512 ?????(MiB) - ??????????
+FirstTimeWizardToadlet.memory.64M=64 ?????(MiB) - ?????????
GIFFilter.invalidHeader=????????? GIF ??.
GIFFilter.invalidHeaderTitle=??????
GIFFilter.notGif=????????????? GIF ?. ???????????, ?????????????????,
?????????.
GIFFilter.tooShort=? GIF ???????????.
GIFFilter.tooShortTitle=????
+GenericReadFilterCallback.couldNotParseAbsoluteFreenetURI=???????? Freenet URI
+GenericReadFilterCallback.couldNotParseFormURIWithError=???????? URI ??:
${error}
+GenericReadFilterCallback.couldNotParseRelativeFreenetURI=???????? Freenet URI
+GenericReadFilterCallback.couldNotParseURIWithError=???????? URI: ${error}
+GenericReadFilterCallback.invalidFormURI=????? URI: ??????
+GenericReadFilterCallback.invalidFormURIAttemptToEscape=????????
GenericReadFilterCallback.malformedAbsoluteURL=?????? URL ???${error}
GenericReadFilterCallback.malformedRelativeURL=?????? URL ???${error}
+GenericReadFilterCallback.protocolNotEscaped=????????: ${protocol}
+HTMLFilter.couldNotParseStyle=???????????
+HTMLFilter.deletedUnknownStyle=???????
+HTMLFilter.failedToParseLabel=HTML ???????????
+HTMLFilter.tooManyNestedStyleOrScriptTags=????????????? - ?????????????
+HTMLFilter.tooManyNestedStyleOrScriptTagsLong=?? </style> ????? -
?????????????, ?????????, ???????????? - ????????????????
+HTMLFilter.unknownTag=????? ${tag}
+IPDetectorPluginManager.connectionProblems=????:
+IPDetectorPluginManager.forwardPortShortMaybeForwarded=?? UDP ? ${port} ????
(?????????).
+IPDetectorPluginManager.forwardPortShortNotForwarded=?? UDP ? ${port} ????
(???????).
+IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=?? UDP ? ${port1} ?
${port2} ???? (?????????).
+IPDetectorPluginManager.forwardTwoPortsShortNotForwarded=?? UDP ? ${port1} and
${port2} ???? (???????).
+IPUndetectedUserAlert.detecting=Freenet ??????????. ????????????, ???????...
+IPUndetectedUserAlert.detectingShort=Freenet ??????????.
+IPUndetectedUserAlert.detectingWithConfigLink=Freenet ??????????.
????????????, ???????, ???????${link}??${/link}???????.
+IPUndetectedUserAlert.suggestForwardPort=??, ??????????????? ${port} ?(UDP),
????????????????.
+IPUndetectedUserAlert.suggestForwardTwoPorts=??, ??????????????? ${port1} ?
${port2} ?(UDP), ????????????????.
+IPUndetectedUserAlert.unknownAddress=Freenet
??????????????(????????(NAT)?????????). ???????????????,
??????????????????????????????. ????????????, Freenet ??????????????.
??????????, ?'????????????'${link}????${/link}???????.
+IPUndetectedUserAlert.unknownAddressShort=Freenet ????????????. ?????????.
+IPUndetectedUserAlert.unknownAddressTitle=??????
+IPUndetectedUserAlert.unknownAddressWithConfigLink=Freenet
??????????????(??????(NAT)???????????). ???????????????,
??????????????????????????????. ????????????, Freenet ??????????????.
??????????, ?'????????????'${link}????${/link}???????.
InsertException.shortError.10=???
InsertException.shortError.3=????
IntOption.parseError=??????????? 32 ???? : ${val}
-JPEGFilter.notJpeg=?????????????JPEG????????????????????????????????????
+InvalidAddressOverrideUserAlert.unknownAddress=Freenet ??????
ipAddressOverride ??????, ?????????????????, IPv4 ??, ?? IPv6 ?????(IPv6
??????????????????).
+InvalidAddressOverrideUserAlert.unknownAddressShort=???? ipAddressOverride
???. ???????.
+InvalidAddressOverrideUserAlert.unknownAddressTitle=?????????
+InvalidAddressOverrideUserAlert.unknownAddressWithConfigLink=Freenet ??????
ipAddressOverride ??????, ?????????????????, IPv4 ??, ?? IPv6 ?????(IPv6
??????????????????). ?????"?????????"??${link}????${/link}
+JPEGFilter.notJpeg=????????????? JPEG ????????????????????????????????????
JPEGFilter.tooShort=???????????JPEG???
JPEGFilter.tooShortTitle=????
+KnownUnsafeContentTypeException.title=???????: ${type}
+LocalFileInsertToadlet.checkPathExist=???????????.
+LocalFileInsertToadlet.checkPathIsDir=??????????????.
+LocalFileInsertToadlet.checkPathReadable=????????????????????????.
+LocalFileInsertToadlet.dirAccessDenied=???????
+LocalFileInsertToadlet.dirCannotBeRead=?????? "${path}"
LocalFileInsertToadlet.fileHeader=??
LocalFileInsertToadlet.insert=??
+LocalFileInsertToadlet.listing=????: ${path}
+LocalFileInsertToadlet.listingTitle=${path} ???
LocalFileInsertToadlet.sizeHeader=??
-LogConfigHandler.minLoggingPriority=??????????
-LogConfigHandler.minLoggingPriorityLong=???????????. ??????????? debug, minor,
normal ? error.
+LogConfigHandler.detaildPriorityThreshold=???????????
+LogConfigHandler.detaildPriorityThresholdLong=???????????, ??? freenet:normal,
freenet.node:minor
+LogConfigHandler.dirName=????
+LogConfigHandler.dirNameLong=??????????
+LogConfigHandler.enabled=???????
+LogConfigHandler.enabledLong=?????????????
+LogConfigHandler.maxCachedBytes=????? RAM ????????
+LogConfigHandler.maxCachedBytesLong=????????????(RAM)????????
+LogConfigHandler.maxCachedLines=????? RAM ??????
+LogConfigHandler.maxCachedLinesLong=????????????(RAM)??????
+LogConfigHandler.maxZippedLogsSize=????????????
+LogConfigHandler.maxZippedLogsSizeLong=???????????????
+LogConfigHandler.minLoggingPriority=??????????
+LogConfigHandler.minLoggingPriorityLong=?????????????. ??????????? debug,
minor, normal ? error.
+LogConfigHandler.rotationInterval=??????
+LogConfigHandler.rotationIntervalLong=????????? - ??????????????.
???????????????(??????????), ????????????? maxZippedLogsSize ???????.
LoggerHook.unrecognizedPriority=??????????: ${name}.
LongOption.parseError=??????????? 64 ???? : ${val}
-MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????"????"????????????, ????????)
+MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????????(darknet)????????????,
????????)
MeaningfulNodeNameUserAlert.noNodeNickShort=????(??)????????
MeaningfulNodeNameUserAlert.noNodeNickTitle=????(??)????????
+N2NTMToadlet.composingMessageLabel=????????????, ????????:
+N2NTMToadlet.delayed=???: ??????????????
+N2NTMToadlet.delayedTitle=???
+N2NTMToadlet.failed=?????????: ?????
+N2NTMToadlet.failedTitle=??
N2NTMToadlet.friends=??
+N2NTMToadlet.noSuchFileOrCannotRead=??????: ???????, ??????.
+N2NTMToadlet.peerName=????
+N2NTMToadlet.peerNotFoundTitle=?????
+N2NTMToadlet.peerNotFoundWithHash=??????? \u201C${hash}\u201D ???.
N2NTMToadlet.processingSend=???????????
+N2NTMToadlet.queued=?????: ?????, ?????????, ???????
+N2NTMToadlet.queuedTitle=?????
N2NTMToadlet.returnToFriends=??????
+N2NTMToadlet.sendMessage=?????????
+N2NTMToadlet.sendMessageShort=????
+N2NTMToadlet.sendStatus=??????
+N2NTMToadlet.sent=????????
N2NTMToadlet.sentTitle=??
+N2NTMToadlet.tooLong=?????????? 1024 ?????
N2NTMToadlet.tooLongTitle=??
N2NTMUserAlert.delete=??
-N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ??>?
${received})
+N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ???
${received})
N2NTMUserAlert.headerShort=?? ${from} ???
N2NTMUserAlert.reply=??
N2NTMUserAlert.title=?${peername}(${peer})?????????${number}
-Node.inBWLimit=??????????????
+Node.acceptSeedConnections=???, ????????????????????, ????????????.
??????????????????????, ?????????: ????????????????????(????????,
????????"???"????).
+Node.acceptSeedConnectionsShort=???????
+Node.alwaysAllowLocalAddresses=???????????????????
+Node.alwaysAllowLocalAddressesLong=???, ???????????, ???????????????,
?????????(???????)????. ????, ???????????????(??????????)??????.
???????????????, ?????????????????? UDP ???????????, ?????.
+Node.buggyJVM=????? JVM ??(${version})?????. ?????????, ??????
OutOfMemoryError ??. ?????? Sun ???? Java 1.4.2_13 ?, 1.5.0_10 ?, ?? 1.6
?(????). ???? http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795 .
+Node.buggyJVMShort=Freenet ???? Java ?? ${version} ??????. ?????, ??????? Java
?????????.
+Node.buggyJVMTitle=JVM ????
+Node.buggyJVMWithLink=????? JVM ??(${version})???${link}??${/link}. ?????????,
?????? OutOfMemoryError ??. ?????? Sun ???? Java 1.4.2_13 ?, 1.5.0_10 ?, ?? 1.6
?(????).
+Node.databaseMemory=?????????????
+Node.databaseMemoryLong=?????????????????????. 0 ??????(????? 30% ???????)
+Node.disablePHTLSLong=Disable probabilistic HTL (???????, ???????????)
+Node.dropPacketEvery=????????
+Node.dropPacketEveryLong=???????. ???????????, ????????. 0 ??????????. ???????!
+Node.enableARKs=?? ARKs? (????!)
+Node.enableARKsLong=???? ARKs? (??????!).
+Node.enablePerNodeFailureTables=??????????????
+Node.enablePerNodeFailureTablesLong=?????? 10 ???????????????????
+Node.enableSwapQueueing=??????????? (????!)
+Node.enableSwapQueueingLong=???????????????? (??????!)
+Node.enableSwapping=??????? (????!)
+Node.enableSwappingLong=????????? (??????! ????????????).
+Node.enableULPRDataPropagation=?? ULRP ??????
+Node.enableULPRDataPropagationLong=????????????, ???????????????????
(????????????; ULPR)
+Node.extraPeerDir=????????
+Node.extraPeerDirLong=??????????????
+Node.forceBigShrink=????????
+Node.forceBigShrinkLong=?????????(?? 10%)???????(????????????).
??????????????????, ?????????; ?????????????????.
+Node.inBWLimit=?????????????
Node.inBWLimitLong=????????????????; ??????????????; ?? -1 ?????????
+Node.java14ShortText=???????? Java 1.4 ?, ???? 1.5 ?.
+Node.java14Text=???? Java 1.4 ??? Freenet ??. ?????? 1.5 ?. ??????????????,
?????????????????? Java ????.
+Node.java14Title=???? Java 1.4 ?
Node.l10nLanguage=????????
Node.l10nLanguageLong=?????????????????????????????
+Node.maxHTL=HTL ???
+Node.maxHTLLong=HTL ???(???????!)
+Node.maxOpennetPeers=????????????
+Node.maxOpennetPeersLong=????(Opennet)????????(??? 0 ? 20 ??,
?????????????(darknet)?????)
+Node.mustBePositive=????????
+Node.nodeDir=????
+Node.nodeDirLong=????????(???????)?????
Node.nodeName=??????
Node.nodeNameLong=????????????????
+Node.notUsingSunVM=??????? Sun ??? JVM ?????: ${vendor} ${version}. ????????:
??????????. ?????? http://www.java.com/getjava/ ?? Sun ??? Java ??.
+Node.notUsingSunVMShort=Freenet ????? Sun ??? Java ???????, ????????, ??????
Sun Java ??.
+Node.notUsingSunVMTitle=???? Sun ? JVM
+Node.notUsingWrapper=????????????. ????????. ???????????, ??????????, ???? JVM
?????, ???????. ???????????????, ??????????.
+Node.notUsingWrapperShort=Freenet ??????????. ????????.
+Node.notUsingWrapperTitle=????????!
+Node.oneConnectionPerIP=??????????????
+Node.oneConnectionPerIPLong=???????????????????? ????????????????????,
???????????????????, ???????????????.
???????????????????(darknet)?????(opennet).
Node.opennetEnabled=??????????(?????????????)?
-Node.opennetEnabledLong=??????????(???"????")? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
+Node.opennetEnabledLong=??????????(???????(opennet))? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
Node.outBWLimit=??????????????
Node.outBWLimitLong=?????????(????????); ????????????????
+Node.passOpennetPeersThroughDarknet=???????????????????
+Node.passOpennetPeersThroughDarknetLong=????,
??????(opennet)??????(??????????)??????????(darknet)????.
?????(??????????)??????????????????. ??????, ???????????, ???????????,
?????????????????. ????????????????, ?????????????.
+Node.storeDirectory=????
+Node.storeDirectoryLong=???????????
Node.storeSize=?????????
Node.storeSizeLong=?????????
-NodeStats.mustBePercentValueNotFull=???????, ???? 0 ? 99 ??.
-NodeStats.valueTooLow=?????????????, ???????!
+Node.storeType=????(????)
+Node.storeTypeLong=??????. ????? bdb-index ?? ram (bdb-index ?
BerkeleyDBFreenetStore ?????, ??????????????; ram ???????????????).
?????????????, ??????????????????, ??? ram (??????????????)!
+Node.throttleLocalTraffic=???????
+Node.throttleLocalTrafficLong=???????????? ?????,
???????(LAN)??????????????????.
+NodeClientCore.couldNotFindOrCreateDir=?????????
+NodeClientCore.downloadAllowedDirs=?????????
+NodeClientCore.downloadDir=??????
+NodeClientCore.downloadDirLong=??????????????
+NodeClientCore.fileForClientStats=????????????
+NodeClientCore.fileForClientStatsLong=??????????????(???????????)
+NodeClientCore.lazyResume=?????????????? (?????????)
+NodeClientCore.lazyResumeLong=???????????????, ???????????????,
????????????????. ???????, ???????????.
+NodeClientCore.maxUSKFetchers=??? USK ???????
+NodeClientCore.maxUSKFetchersLong=??? USK ???????
+NodeClientCore.maxUSKFetchersMustBeGreaterThanZero=?????
+NodeClientCore.movingTempDirOnTheFlyNotSupported=????????????????
+NodeClientCore.persistentTempDir=?????????
+NodeClientCore.persistentTempDirLong=?????????????
+NodeClientCore.startingUp=?? Freenet ???????????, ???????????????,
?????????????.
+NodeClientCore.startingUpShort=Freenet ?????, ??????????, ?????????.
+NodeClientCore.startingUpTitle=Freenet ?????
+NodeClientCore.tempDir=??????
+NodeClientCore.tempDirLong=??????????
+NodeClientCore.uploadAllowedDirs=?????????
+NodeIPDectector.inclLocalAddress=???????????????
+NodeIPDectector.inclLocalAddressLong=???????????????????(????????????????).
???????????????????? allowLocalAddresses=true (???????????????????), ?????????.
+NodeIPDectector.ipOverride=?????????
+NodeIPDectector.ipOverrideLong=??????????(????????) -
???????????????*??*?(???????: ???, ?? dyndns ??), ????????????,
????????????????.
+NodeIPDectector.tempAddressHint=????????????
+NodeIPDectector.tempAddressHintLong=??????????; ????????
+NodeIPDetector.maybeSymmetric=??????????????????(NAT)??. ?????????:
?????????????????????, ???????????????????????.
+NodeIPDetector.maybeSymmetricShort=????: ???????????????(NAT)??.
+NodeIPDetector.maybeSymmetricTitle=????
+NodeIPDetector.unknownHostErrorInIPOverride=?????: ${error}
+NodeStat.aggressiveGC=AggressiveGC ???
+NodeStat.aggressiveGCLong=??????????? (GC) ?????????. ????????????, ??????! ??
-1 ??: ??? System.gc() ? System.runFinalization() ???????
+NodeStat.memCheck=???????
+NodeStat.memCheckLong=????????? (??????????, aggressiveGC ????????????!)
+NodeStat.statsPersister=???????????
+NodeStat.statsPersisterLong=???????????(?????????, ?????????????, ????????)
+NodeStat.threadLimit=?????
+NodeStat.threadLimitLong=???????????????????, ???????.
+NodeStats.mustBePercentValueNotFull=????????, ???? 0 ? 99 ??.
+NodeStats.valueTooLow=????????, ??????, ???????!
+NodeUpdateManager.enabled=?????????
+NodeUpdateManager.enabledLong=???????????? Freenet ??. ??, ???????????,
????????, ????????. ???????????????, ???????????.
+NodeUpdateManager.extURI=????????? freenet-ext.jar ????
+NodeUpdateManager.extURILong=????????? freenet-ext.jar ????
NodeUpdateManager.installNewVersions=????????
-NodeUpdateManager.installNewVersionsLong=??????????????????? Freenet ??,
???????
+NodeUpdateManager.installNewVersionsLong=???????????, ??????????? Freenet ???
+NodeUpdateManager.invalidExtURI=???????? URI: ${error}
+NodeUpdateManager.invalidRevocationURI=????????? URI: ${error}
+NodeUpdateManager.invalidUpdateURI=????????? URI: ${error}
+NodeUpdateManager.noUpdateWithoutWrapper=??????????, ??????????
+NodeUpdateManager.revocationURI=??????????????
+NodeUpdateManager.revocationURILong=????? URI. ????????????, ????????,
??????????.
+NodeUpdateManager.updateCatastropheTitle=????????!
+NodeUpdateManager.updateFailed=????: ${reason}
+NodeUpdateManager.updateFailedShort=????: ${reason}
+NodeUpdateManager.updateFailedTitle=????!
+NodeUpdateManager.updateURI=????????????
+NodeUpdateManager.updateURILong=????????????
NotEnoughNiceLevelsUserAlert.content=?????????????????????. ????????????????,
??????????. ?????????????????! (? run.sh ??? PRIORITY ???, ??????) ???????
${available} ???????, ?????? ${required} ?.
NotEnoughNiceLevelsUserAlert.short=???????????! ?????????????? Freenet.
NotEnoughNiceLevelsUserAlert.title=???????????!
@@ -265,51 +558,130 @@
OpennetConnectionsToadlet.peersListTitle=??????????(??????????????????)
OpennetConnectionsToadlet.successTime=?????????????? CHK ???
OpennetConnectionsToadlet.successTimeTitle=??????
+OpennetUserAlert.warning=Freenet ????????????. ????????????? Freenet,
?????????????. ???????????????, ????????????????????, ????????????. ????? 10
???????(??????????????, ???????????????), ???????????, ?? Freenet
????????????????.
OpennetUserAlert.warningShort=????????.
OpennetUserAlert.warningTitle=??: ????????: ??????????
PNGFilter.invalidHeader=????????????? PNG ?, ?????????? PNG ??. ???????????,
?????????????????, ?????????.
PNGFilter.invalidHeaderTitle=??? PNG - ??????
-PluginToadlet.addPluginTitle=??plugin
-PluginToadlet.failedToLoadPluginTitle=Plugin????
-PluginToadlet.noWebInterfaceTitle=?plugin?????
-PluginToadlet.pluginList=Plugin??
-PluginToadlet.pluginListTitle=Plugin??
-PluginToadlet.pluginNameTitle=Plugin??
-PluginToadlet.pluginNotFoundTitle=????plugin
-PluginToadlet.unsupportedMethod=????method.
+PageMaker.modeAdvanced=??????
+PageMaker.modeAdvancedTooltip=????? Freenet ???????????????????
+PageMaker.modeSimple=??????
+PageMaker.modeSimpleTooltip=??????????????
+PeerManagerUserAlert.clockProblem=??? ${count} ???????, ??????????????? 24
????. ?????????????. ??????????????????????????.
+PeerManagerUserAlert.clockProblemTitle=????
+PeerManagerUserAlert.connError=? ${count} ??????????????, ???????????,
???????????.
+PeerManagerUserAlert.connErrorTitle=????????
+PeerManagerUserAlert.noConns=?????????????????, ??????. ?????????????;
?????????, ??????????. ????????? 3 ?????, ???????? 5 ? 10 ?.
+PeerManagerUserAlert.noConnsTitle=???????
+PeerManagerUserAlert.noPeersDarknet=???????????, ????????.
?????????????????(????????, ??????????, ????????????). ????????? 3 ??????, ????
5 ? 10 ?. ???????????(????; opennet), ?????????????.
+PeerManagerUserAlert.noPeersTestnet=???????????, ????????.
?????????????????(????????, ??????????, ????????????). ????????? 3 ??????, ????
5 ? 10 ?. ???????????(????; opennet), ?????????????.
+PeerManagerUserAlert.noPeersTitle=????
+PeerManagerUserAlert.oneConn=????????. ?????????, ???????; ?????????,
???????????????. ????"??"?????????, ???????????. ????????????? 3 ???(?? 5 ? 10
????).
+PeerManagerUserAlert.onlyFewConnsTitle=?? ${count} ??????
+PeerManagerUserAlert.tooHighBwlimitDelayTime=????????????????(${delay}ms >
${max}ms). ???????????, ??/????????, ????????.
+PeerManagerUserAlert.tooHighBwlimitDelayTimeTitle=bwlimitDelayTime ????
+PeerManagerUserAlert.tooHighPingTime=??????????????(${ping}ms > ${max}ms).
???????????, ??/????????, ????????.
+PeerManagerUserAlert.tooHighPingTimeTitle=nodeAveragePingTime ????
+PeerManagerUserAlert.tooManyConns=????????(${count} > ${max}).
??????????????????, ???????, ???????????????.
+PeerManagerUserAlert.tooManyConnsTitle=????????
+PeerManagerUserAlert.tooManyDisconnected=???????????(${count} > ${max}).
?????????????????, ??????????????????????. ???"??"??????. ???,
????????????????. ??????, ????????????????????????.
+PeerManagerUserAlert.tooManyDisconnectedTitle=????????
+PeerManagerUserAlert.tooManyNeverConnected=?????????(?? ${count} ?)???????.
????????????????????????, ??????????.
+PeerManagerUserAlert.tooManyNeverConnectedTitle=???????????
+PeerManagerUserAlert.tooManyNeverConnectedWithLink=?????????(?? ${count}
?)???????. ???????????${link}????${/link}?????????, ??????????.
+PeerManagerUserAlert.tooManyPeers=?????????(${count} > ${max}).
???????????????????????, ???????????????. ????, ?????????????????????,
??????????. ???"??"??????.
+PeerManagerUserAlert.tooManyPeersTitle=????????
+PeerManagerUserAlert.tooOldNeverConnectedPeers=?????????, ????????????????.
???????, ???????????(??????????????).
+PeerManagerUserAlert.tooOldNeverConnectedPeersTitle=??????????
+PeerManagerUserAlert.twoConns=????????. ????????????, ??????????????.
???"??"?????????, ???????????(????). ????????????? 3 ???(?? 5 ? 10 ????).
+PeersSayKeyBlownAlert.connectedSayBlownLabel=????????????????(?????????????????):
+PeersSayKeyBlownAlert.disconnectedSayBlownLabel=???????????????, ????????,
????????????:
+PeersSayKeyBlownAlert.failedFetch=????????????. ?????????????,
??????????????????, ???????????????. ??????????? Freenet ????????.
+PeersSayKeyBlownAlert.failedTransferSayBlownLabel=??????????????, ????????????:
+PeersSayKeyBlownAlert.fetching=?????????????????????.
+PeersSayKeyBlownAlert.intro=????????????????????! ??????????????????????,
?????????????????(?????????)! ?????????????. ???????????????.
+PeersSayKeyBlownAlert.short=?????????????????!
+PeersSayKeyBlownAlert.titleWithCount=${count} ???: ????????!
+PluginManager.cannotSetOnceLoaded=??????????????
+PluginManager.loadedOnStartup=????????
+PluginManager.loadedOnStartupLong=?????, ???????????, ?????.
+PluginManager.loadedPlugins=????????
+PluginManager.loadedPluginsLong=??????, ?????????
+PluginManager.pluginLoadingFailed=????? ${name} ????
+PluginManager.pluginLoadingFailedShort=?????? ${name}!
+PluginManager.pluginLoadingFailedTitle=??????!
+PluginManager.pluginLoadingFailedWithMessage=????? ${name} ????: ${message}
+PluginManager.pluginReqNewerJVM=?? ${name} ??????? JVM ????. ?????? Sun Java
1.5 ???? JVM, ???????.
+PluginManager.pluginReqNewerJVMTitle=?? ${name} ????? JVM ????.
+PluginToadlet.addPluginTitle=????
+PluginToadlet.failedToLoadPlugin=??????.
+PluginToadlet.failedToLoadPluginCheckClass=???????????. ????????????????,
?????? URL ??????.
+PluginToadlet.failedToLoadPluginTitle=??????
+PluginToadlet.internalNameTitle=????
+PluginToadlet.loadPluginCommand=????
+PluginToadlet.noWebInterface=???????????, ??????????.
+PluginToadlet.noWebInterfaceTitle=??????????
+PluginToadlet.pluginList=????
+PluginToadlet.pluginListTitle=????
+PluginToadlet.pluginNameTitle=????
+PluginToadlet.pluginNotFound=????????.
+PluginToadlet.pluginNotFoundTitle=??????
+PluginToadlet.returnToPluginsWithLinks=? ${link}??${/link} ????.
+PluginToadlet.unsupportedMethod=??????.
+PluginToadlet.unsupportedMethodTitle=??????
PluginToadlet.visit=??
+PproxyToadlet.Error=??
PproxyToadlet.Load=??
PproxyToadlet.cancel=??
-PproxyToadlet.classNameTitle=Class??
-PproxyToadlet.internalIDTitle=????
+PproxyToadlet.changeReloadOnStartup=??
+PproxyToadlet.classNameTitle=????
+PproxyToadlet.downloadNotAllowedFromRemoteServer=????????????????.
+PproxyToadlet.internalIDTitle=?????
PproxyToadlet.loadOfficialPlugin=??????
PproxyToadlet.loadOfficialPluginLabel=??????
PproxyToadlet.loadOfficialPluginText=???????? Freenet ???????.
????????????????, ????????.
PproxyToadlet.loadOfficialPluginWarning=??: ?????????????????, ??? Freenet ??.
?????????????, ?????. ?????????????, ??????????.
PproxyToadlet.loadOtherPlugin=???????
-PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ???????????????????, ???????.
+PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ????????????????????, ????????.
PproxyToadlet.loadOtherURLLabel=??? URL
PproxyToadlet.loadPluginLabel=??Plugin:
-PproxyToadlet.noPlugins=??????plugins
+PproxyToadlet.noPlugins=????????
PproxyToadlet.noVersion=?
-PproxyToadlet.pluginNotFoundReload=??????????plugin.
-PproxyToadlet.pluginNotFoundReloadTitle=?????Plugin(????)
-PproxyToadlet.pluginUnloaded=?plugin????
-PproxyToadlet.pluginUnloadedWithName=${name}??plugin????.
-PproxyToadlet.plugins=Plugins
-PproxyToadlet.pluginsWithNodeName=${name}?plugins
+PproxyToadlet.pluginDirectoryNotCreated=????????.
+PproxyToadlet.pluginNotDownloaded=????????.
+PproxyToadlet.pluginNotFoundReload=???????????.
+PproxyToadlet.pluginNotFoundReloadTitle=??????(????)
+PproxyToadlet.pluginStopping=?????
+PproxyToadlet.pluginUnloaded=??????
+PproxyToadlet.pluginUnloadedWithName=?????? ${name} ?.
+PproxyToadlet.plugins=????
+PproxyToadlet.pluginsWithNodeName=${name} ?????
+PproxyToadlet.refreshOnStartup=???????????
PproxyToadlet.reload=????
+PproxyToadlet.reloadExplanation=???????????????????.
+PproxyToadlet.reloadOnStartupShort=?????
+PproxyToadlet.reloadPluginTitle=??????
PproxyToadlet.reloadPurgeWarning=?????????????????. ??????????????????,
??????????!
-PproxyToadlet.returnToPluginPage=??plugin??
-PproxyToadlet.startedAtTitle=????
+PproxyToadlet.reloadWarning=?????????????!
+PproxyToadlet.returnToPluginPage=????????
+PproxyToadlet.startedAtTitle=????
+PproxyToadlet.startingPluginName=????
+PproxyToadlet.startingPluginStatus=????
+PproxyToadlet.startingPluginTime=????
+PproxyToadlet.startingPluginsTitle=?????
+PproxyToadlet.unauthorized=??????????.
+PproxyToadlet.unauthorizedTitle=????
PproxyToadlet.unload=??
-PproxyToadlet.unloadPluginTitle=???plugin?
-PproxyToadlet.unloadPluginWithName=??????${name}??
+PproxyToadlet.unloadPluginTitle=???????
+PproxyToadlet.unloadPluginWithName=?????? ${name} ??
+PproxyToadlet.unloadPurge=??????????
PproxyToadlet.versionTitle=??
+PproxyToadlet.startingPluginStatus.downloading=??????
+PproxyToadlet.startingPluginStatus.starting=???
QueueToadlet.DUinProgress=???????? (${size})
QueueToadlet.DinProgress=???????? (${size})
QueueToadlet.UinProgress=???????? (${size})
-QueueToadlet.change=???
+QueueToadlet.change=??
QueueToadlet.completedDU=?????????? (${size})
QueueToadlet.completedDinDownloadDirectory=???????????????? (${size})
QueueToadlet.completedDinTempDirectory=???????????????? (${size})
@@ -319,26 +691,40 @@
QueueToadlet.completedUDirectory=???????? (${size})
QueueToadlet.delete=??
QueueToadlet.download=??
+QueueToadlet.downloadFiles=????
+QueueToadlet.downloadFilesInstructions=??????????????????(??????)
QueueToadlet.downloadSucceeded=?? ${origlink}${filename}${/origlink} ???????.
?${link}???${/link}???? (${size}).
QueueToadlet.downloadSucceededTitle=????: ${filename}
+QueueToadlet.enqueuedFailure=?? ${number} ?????????:
+QueueToadlet.enqueuedSuccessfully=?? ${number} ???????????:
QueueToadlet.errorAccessDenied=????: ????!
+QueueToadlet.errorNoKeyToD=??????????.
QueueToadlet.failedD=????? (${size})
QueueToadlet.failedDU=????????? (${size})
QueueToadlet.failedU=??????? (${size})
QueueToadlet.fileName=??
-QueueToadlet.identifier=??
+QueueToadlet.files=??
+QueueToadlet.globalQueueIsEmpty=?????????
+QueueToadlet.identifier=???
QueueToadlet.insertAs=???:
QueueToadlet.insertFile=????
QueueToadlet.insertFileBrowseLabel=?????????
+QueueToadlet.insertFileCompressLabel=??
QueueToadlet.insertFileInsertFileLabel=????
QueueToadlet.insertFileLabel=??????????(???!)
+QueueToadlet.insertFileResetForm=????
QueueToadlet.key=??
QueueToadlet.legend=??
QueueToadlet.mimeType=MIME ??
QueueToadlet.none=?
-QueueToadlet.persistence=??
+QueueToadlet.notLoadedYet=??????????????. ?????.
+QueueToadlet.notLoadedYetTitle=??????
+QueueToadlet.panicButton=????
+QueueToadlet.panicButtonConfirmation=??????????????!
+QueueToadlet.persistence=???
QueueToadlet.persistenceForever=??
QueueToadlet.persistenceNone=?
+QueueToadlet.persistenceReboot=??
QueueToadlet.persistenceRebootr=??
QueueToadlet.priority=???
QueueToadlet.priority0=??
@@ -358,52 +744,129 @@
QueueToadlet.title=${nodeName}?????
QueueToadlet.totalSize=????
QueueToadlet.unknown=??
+QueueToadlet.uploadSucceeded=?? ${filename} (?? ${size}) ??????? Freenet ?.
?${link}???${/link} ????.
+QueueToadlet.uploadSucceededTitle=????: ${filename}
+QueueToadlet.warningUnsafeContent=???????
QueueToadlet.wipD=???: ?? (${size})
QueueToadlet.wipDU=???: ???? (${size})
QueueToadlet.wipU=???: ?? (${size})
+RequestStarterGroup.schedulerCHKInserts=????????(CHK ??)
+RequestStarterGroup.schedulerCHKRequests=????????(CHK ??)
+RequestStarterGroup.schedulerLong=?????????????.
+RequestStarterGroup.schedulerSSKInserts=????????(SSK ??)
+RequestStarterGroup.schedulerSSKRequests=????????(SSK ??)
RevocationKeyFoundUserAlert.text=??????????????????????. ????????????????????!
??, ?????????????, ???"???"????????. ?????????????????????. ???????????????.
?????: ${message}.
RevocationKeyFoundUserAlert.title=????????????!
+SSL.enable=??? SSL ????
+SSL.enableLong=??? SSL ????
+SSL.keyPass=??????
+SSL.keyPassLong=??????
+SSL.keyStore=??????????
+SSL.keyStoreLong=??????????
+SSL.keyStorePass=????????
+SSL.keyStorePassLong=????????
+SSL.version=SSL ??
+SSL.versionLong=SSL ??, ????? SSLv3 ?? TLSv1 (???? SSLv3)
ShortOption.parseError=???????????????: ${error}
+SimpleToadletServer.advancedMode=?????????
+SimpleToadletServer.advancedModeLong=????????????????????. ???????????.
SimpleToadletServer.cssName=??????
SimpleToadletServer.cssNameLong=?? Freenet ?????????
+SimpleToadletServer.cssOverride=???? CSS ?????(??!)
+SimpleToadletServer.cssOverrideCantRead=??????? CSS ???: ${filename}
+SimpleToadletServer.cssOverrideLong=???????????? CSS ????????. ??: CSS ??????,
??????? CSS ????! ???????. (?????? CSS ?? devl at freenetproject
????????????????? ;))
+SimpleToadletServer.cssOverrideNotInUploads=?????????: ?? ${filename}
???????????!
+SimpleToadletServer.doRobots=? robots.txt ???????
+SimpleToadletServer.doRobotsLong=???? /robots.txt ?? google, ????, ?? wget
?????
+SimpleToadletServer.enableInlinePrefetch=?????????????
+SimpleToadletServer.enableInlinePrefetchLong=???????????????????, ??????????.
??????.
+SimpleToadletServer.enableJS=? FProxy ?? Javascript?
+SimpleToadletServer.enableJSLong=???? FProxy ?? Javascript "????". ??????????.
???, ????????, freesite ????? Javascript.
+SimpleToadletServer.enablePersistentConnections=?????? HTTP ??? (???????)
+SimpleToadletServer.enablePersistentConnectionsLong=?????????,
??????????????????? HTTP ??, ????????.
+SimpleToadletServer.enabled=???? FProxy?
+SimpleToadletServer.enabledLong=????? FProxy ???? HTTP ??
+SimpleToadletServer.illegalCSSName=CSS ???????????!
+SimpleToadletServer.panicButton=?????????
+SimpleToadletServer.panicButtonLong=???????'????', ????????????????, ?????????.
+SimpleToadletServer.port=FProxy ???
+SimpleToadletServer.ssl=?? SSL?
+SimpleToadletServer.sslLong=??? FProxy ??? SSL
+StartupToadlet.entropyErrorContent=?????????... Freenet ???????????.
+StartupToadlet.entropyErrorTitle=????!
+StartupToadlet.isStartingUp=???????, ???.
+StartupToadlet.title=Freenet ?????
StaticToadlet.pathInvalidChars=??? URI ??????????.
StaticToadlet.pathNotFound=????????.
StaticToadlet.pathNotFoundTitle=??????
-StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
-StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
+StatisticsToadlet.ackOnlyBytes=???????: ${total}
+StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
? CHK ???, ${SSKhandlers} ? SSK ???
+StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
? CHK ???, ${SSKhandlers} ? SSK ???
+StatisticsToadlet.adminBytes=?????: ${initial} ?????, ${changedIP} ?????????,
${disconn} ?????, ${routingStatus} ???????
StatisticsToadlet.allocMemory=Java ???????: ${memory}
+StatisticsToadlet.announceBytes=????: ${total}
+StatisticsToadlet.authBytes=????: ?? ${total}
StatisticsToadlet.bandwidthTitle=??
StatisticsToadlet.cpus=???CPU??: ${count}
+StatisticsToadlet.debuggingBytes=?????: ${netColoring} ?????, ${ping} ? ping,
${probe} ?????, ${routed} ???????.
+StatisticsToadlet.fullTitle=${name} ?????
StatisticsToadlet.getLogs=?????????
StatisticsToadlet.inputRate=????: ?? ${rate} (???? ${max})
+StatisticsToadlet.insertOutput=????(?????): CHK ${chk} SSK ${ssk}.
StatisticsToadlet.javaVersion=Java ??: ${version}
-StatisticsToadlet.jeDumpButton=????JE??
+StatisticsToadlet.jeDumpButton=?? JE ??
StatisticsToadlet.jvmInfoTitle=JVM??
StatisticsToadlet.jvmVendor=JVM ???? ${vendor}
StatisticsToadlet.jvmVersion=JVM??: ${version}
StatisticsToadlet.maxMemory=Java ??????: ${memory}
+StatisticsToadlet.noRequests=?????????????.
+StatisticsToadlet.nodeToNodeBytes=?????: ${total}
+StatisticsToadlet.offerReplys=????????: ${chk} ? CHK, ${ssk} ? SSK.
+StatisticsToadlet.offeredKeyOutput=????: ???? ${total}, ???? ${offered}
StatisticsToadlet.osArch=????????: ${arch}
StatisticsToadlet.osName=??????: ${name}
StatisticsToadlet.osVersion=??????: ${version}
StatisticsToadlet.outputRate=????: ?? ${rate} (???? ${max})
StatisticsToadlet.payloadOutput=????: ${total} (?? ${rate}) (${percent}%)
StatisticsToadlet.peerStatsTitle=????
+StatisticsToadlet.priority=???
+StatisticsToadlet.requestOutput=????(?????): CHK ${chk} SSK ${ssk}.
+StatisticsToadlet.resendBytes=?????: ${total}
+StatisticsToadlet.routingDisabled=??????(??????????, ????????????)
+StatisticsToadlet.routingDisabledShort=??????
+StatisticsToadlet.running=???
StatisticsToadlet.statisticGatheringTitle=????
-StatisticsToadlet.threadDumpButton=?????????
+StatisticsToadlet.swapOutput=????: ${total}.
+StatisticsToadlet.threadDumpButton=???????
StatisticsToadlet.threads=???????: ${running}/${max}
+StatisticsToadlet.threadsByPriority=??????????
StatisticsToadlet.totalInput=????: ${total} (?? ${rate})
StatisticsToadlet.totalOutput=????: ${total} (?? ${rate})
-StatisticsToadlet.transferringRequests=????: ?? ${senders}, ?? ${receivers}
+StatisticsToadlet.totalOverhead=???????: ?? ${rate} (${percent}%).
+StatisticsToadlet.transferringRequests=??????: ${senders} ?????, ${receivers}
?????
+StatisticsToadlet.unaccountedBytes=????: ${total} (${percent}%)
+StatisticsToadlet.uomBytes=??????: ${total}
StatisticsToadlet.usedMemory=Java ???????: ${memory}
StatisticsToadlet.versionTitle=??????
+StatisticsToadlet.waiting=???
SymlinkerToadlet.symlinks=ToadletServer??????
+TestnetHandler.cannotEnableDisableOnTheFly=?????????????(testnet)??;
????????????
+TestnetHandler.enable=????????(testnet)???(??!)
+TestnetHandler.enableLong=?????????(testnet)??(??!). ???????????????????????,
??????????????.
+TestnetHandler.port=????(Testnet)???
+TestnetHandler.portLong=????(Testnet)??? (-1 = listenPort+1000)
TextModeClientInterfaceServer.allowedHosts=??????
+TextModeClientInterfaceServer.allowedHostsLong=??????????????????????.
???????????: ????, ????????, ??? CIDR ???????(?? 192.168.0.0/24).
TextModeClientInterfaceServer.bindTo=??????
TextModeClientInterfaceServer.bindToLong=?????IP??
TextModeClientInterfaceServer.enableInputOutput=???stdout/stdin?
+TextModeClientInterfaceServer.enableInputOutputLong=????????????????????????
(??????????? telnet ??????, ???????? socket ????)
TextModeClientInterfaceServer.enabled=??????
TextModeClientInterfaceServer.enabledLong=?????????????
+TextModeClientInterfaceServer.ssl=?? SSL?
+TextModeClientInterfaceServer.sslLong=???????????????? SSL
TextModeClientInterfaceServer.telnetPortNumber=?????
+TextModeClientInterfaceServer.telnetPortNumberLong=???????????? TCP ????
TimeSkewDetectedUserAlert.shortText=???????????????. Freenet ?????????!
TimeSkewDetectedUserAlert.text=?????????????????. ?????. ??????????, ????????.
?????????????????, ??????, ????????.
TimeSkewDetectedUserAlert.title=???????!
@@ -420,11 +883,20 @@
Toadlet.permRedirectWithReason=????: ${reason}
Toadlet.returnToNodeHomepage=??????
Toadlet.returnToPrevPage=?????
+Toadlet.returnToQueuepage=??????
Toadlet.tempRedirectWithReason=????: ${reason}
-Toadlet.unauthorized=??????????.
+Toadlet.unauthorized=???????????.
Toadlet.unauthorizedTitle=????
Toadlet.yes=?
-TranslationToadlet.bracketRemoveOverride=(???????!)
+ToadletContextImpl.cannotParseContentLength=????????: ${error}
+ToadletContextImpl.cannotParseContentLengthWithError=????????: ${error}
+ToadletContextImpl.headersLineTooLong=???????????????
+ToadletContextImpl.methodNotAllowed=HTTP ?????
+ToadletContextImpl.noContentLengthInPOST=? POST ???????????
+ToadletContextImpl.noSuchToadlet=???????? Toadlet
+ToadletContextImpl.parseErrorWithError=????: ${error}
+ToadletContextImpl.uriParseErrorTitle=URI ????
+TranslationToadlet.bracketRemoveOverride=(????????!)
TranslationToadlet.bracketTranslateIt=(?????????!)
TranslationToadlet.bracketUpdateTranslation=(??????)
TranslationToadlet.confirmRemoveOverride=????????????:(${key} - ${value})??
@@ -435,6 +907,8 @@
TranslationToadlet.originalVersionLabel=????(????)
TranslationToadlet.reEdit=????????
TranslationToadlet.remove=??
+TranslationToadlet.removeOverrideTitle=???????
+TranslationToadlet.removeOverrideWarningTitle=????????????!
TranslationToadlet.returnToTranslations=??????
TranslationToadlet.showEverything=????,??????????
TranslationToadlet.translationKeyLabel=????
@@ -443,15 +917,29 @@
TranslationToadlet.updateTranslationCommand=??????!
UnknownContentTypeException.explanation=?? Freenet ??????? MIME ??. ????,
?????????????????????, ????????. ???, ?????????????????????, ?????????????;
??????????, ???????????, ???????????(???????????????, ???????????????).
???????, ?????????????????, ?????? script ???????????????.
UnknownContentTypeException.title=??????????????: ${type}
-UpdatedVersionAvailableUserAlert.armed=?????????????????Freenet???,??????.
+UpdateDeployContext.cannotUpdateNoExtJar=??? wrapper.conf ?????
freenet-ext.jar (??????? freenet.jar: ${mainFilename})
+UpdateDeployContext.cannotUpdateNoJars=??? wrapper.conf ??? Freenet ??? jar ?
+UpdateDeployContext.cannotUpdateNoMainJar=??? wrapper.conf ????? freenet.jar
(??????? freenet-ext.jar: ${extFilename})
+UpdateDeployContext.updateCatastrophe=??????: ??????? ${old}, ???????? ${new}
??? ${old}, ??*???????*! ???????? ${new} ??? ${old} ???????.
+UpdateDeployContext.updateFailedCannotDeleteOldConfig=??????? ${old},
??????????????. ??????.
+UpdateDeployContext.updateFailedNonStandardConfig=???????????????????: ????
main=${main} ext=${ext} - ????????! ???????????, ????? wrapper.conf ??.
+UpdatedVersionAvailableUserAlert.alsoDownloadedNewExtJar=????????? Freenet
????, ??? ${version}
+UpdatedVersionAvailableUserAlert.armed=?????????? Freenet ????????,??????.
+UpdatedVersionAvailableUserAlert.clickToUpdateASAP=??????, ?????????????.
UpdatedVersionAvailableUserAlert.clickToUpdateNow=????????????????.
-UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????????Freenet????,???${version}.
-UpdatedVersionAvailableUserAlert.downloadedNewJar=?????????????Freenet??,???${version}.
-UpdatedVersionAvailableUserAlert.fetchingNewNode=???????????????Freenet??(????
${nodeVersion}).
-UpdatedVersionAvailableUserAlert.notLatest=??????????????????.
-UpdatedVersionAvailableUserAlert.title=Freenet????????????
+UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????? Freenet ????,
??? ${version}.
+UpdatedVersionAvailableUserAlert.downloadedNewJar=?????????? Freenet ??, ???
${version}.
+UpdatedVersionAvailableUserAlert.fetchingNewBoth=????????? Freenet ?? (?????
${nodeVersion}, ??????? ${extVersion}).
+UpdatedVersionAvailableUserAlert.fetchingNewExt=????????? Freenet ?? (?
${extVersion} ?????? jar ?).
+UpdatedVersionAvailableUserAlert.fetchingNewNode=??????????? Freenet ?? (?????
${nodeVersion}).
+UpdatedVersionAvailableUserAlert.finalCheck=???????????????????? (??:
${count}/${max}, ????????: ${time}).
+UpdatedVersionAvailableUserAlert.notLatest=?????????????????.
+UpdatedVersionAvailableUserAlert.shortArmed=????????? Freenet ??, ?????????.
+UpdatedVersionAvailableUserAlert.shortNotReadyNotArmed=????????? Freenet ??,
?????????????.
+UpdatedVersionAvailableUserAlert.shortReadyNotArmed=?????????? Freenet ??,
?????????????.
+UpdatedVersionAvailableUserAlert.title=???? Freenet ??????
UpdatedVersionAvailableUserAlert.updateASAPButton=????
-UpdatedVersionAvailableUserAlert.updateASAPQuestion=????????????????????????
+UpdatedVersionAvailableUserAlert.updateASAPQuestion=?????????????????, ????????
UpdatedVersionAvailableUserAlert.updateNowButton=????!
UserAlert.apply=??
UserAlert.hide=??
@@ -459,57 +947,80 @@
UserAlertManager.alertsOnAlertsPage=| ??${link}????${/link}??????.
UserAlertManager.alertsTitle=?????
UserAlertManager.clickForMore=?????????????????, ??????.
-UserAlertManager.criticalErrorCountLabel=????:
+UserAlertManager.criticalErrorCountLabel=????:
UserAlertManager.dumpEventsButton=???????
UserAlertManager.errorCountLabel=??:
UserAlertManager.minorCountLabel=??:
UserAlertManager.totalLabel=??:
UserAlertManager.warningCountLabel=??:
UserAlertsToadlet.titleWithName=${name} ?????
-WelcomeToadlet.activityTitle=????
+WelcomeToadlet.activityTitle=????
WelcomeToadlet.alertsSummary=??????
WelcomeToadlet.arkFetchCount=ARK???: ${total}
WelcomeToadlet.confirmAddBookmarkSubTitle=??????
-WelcomeToadlet.confirmExternalLinkTitle=???????
-WelcomeToadlet.confirmExternalLinkWithURL=??????????????${url}???????? Freenet
???????????????????????????????
+WelcomeToadlet.confirmAddBookmarkTitle=????
+WelcomeToadlet.confirmAddBookmarkWithKey=???????? ${key} ??????, ?????????:
+WelcomeToadlet.confirmExternalLinkSubTitle=??????
+WelcomeToadlet.confirmExternalLinkTitle=??: ????
+WelcomeToadlet.confirmExternalLinkWithURL=??????????????${url}?????????
Freenet ???????????????????????????????
+WelcomeToadlet.confirmFIN=?????????? Frost ???
+WelcomeToadlet.databaseStatsSubTitle=?????
+WelcomeToadlet.databaseStatsTitle=?? JE ??
WelcomeToadlet.disabledAlert=????
WelcomeToadlet.extVersion=Freenet-ext ????:${build} r${rev}
WelcomeToadlet.extVersionWithRecommended=Freenet-ext ????:${build}
(??????${recbuild}) ????:${rev}
WelcomeToadlet.fetch=??
WelcomeToadlet.fetchKeyLabel=????
-WelcomeToadlet.finInsertSuccessWithKey=??????????? ${key} ?
+WelcomeToadlet.finInsertSuccessWithKey=????????? ${key}.
+WelcomeToadlet.finInsertedTitle=??
+WelcomeToadlet.finTitle=?? Frost ????
+WelcomeToadlet.fromHeader=??
+WelcomeToadlet.goToExternalLink=???????
WelcomeToadlet.homepageFullTitleWithName=${name} ? Freenet FProxy ??
WelcomeToadlet.ieWarning=?????????Internet Explorer?????????????????
+WelcomeToadlet.ieWarningTitle=??????!
WelcomeToadlet.insertCount=??: ${total}
-WelcomeToadlet.insertFailedTitle=????
-WelcomeToadlet.insertSucceededTitle=??????
-WelcomeToadlet.insertedTitle=????
-WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?????? key
${link}${name}${/link}?
+WelcomeToadlet.insertFailedTitle=????
+WelcomeToadlet.insertFailedWithMessage=?????, ?????: ${message}
+WelcomeToadlet.insertSucceededTitle=????
+WelcomeToadlet.insertedTitle=??
+WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?? ${link}${name}${/link}
???????.
WelcomeToadlet.keyRequestLabel=??:
+WelcomeToadlet.messageHeader=??
WelcomeToadlet.nodeUpdateConfirm=????????Freenet????
WelcomeToadlet.nodeUpdateConfirmTitle=??????
+WelcomeToadlet.post=??
WelcomeToadlet.privateKeyHeader=????
WelcomeToadlet.publicKeyHeader=????
-WelcomeToadlet.requestCount=??: ${total}
+WelcomeToadlet.requestCount=??: ${total}
WelcomeToadlet.restart=??
WelcomeToadlet.restartConfirm=??????????Freenet????
WelcomeToadlet.restartConfirmTitle=????
WelcomeToadlet.restartNode=????
-WelcomeToadlet.restarting=??????????????,?????????????.?????Freenet.
-WelcomeToadlet.restartingTitle=?Freenet???????.
+WelcomeToadlet.restarting=?????????????, ?????????????. ?????Freenet.
+WelcomeToadlet.restartingTitle=Freenet ???????.
WelcomeToadlet.shutdown=??
WelcomeToadlet.shutdownConfirm=???????? Freenet ????
WelcomeToadlet.shutdownConfirmTitle=????
+WelcomeToadlet.shutdownDone=Freenet ???????.
WelcomeToadlet.shutdownNode=????
WelcomeToadlet.splitfileErrorLabel=??????
+WelcomeToadlet.subjectHeader=??
+WelcomeToadlet.targetBoardHeader=?????
WelcomeToadlet.testnetWarningTitle=??(????)??
WelcomeToadlet.thanks=???? Freenet.
-WelcomeToadlet.transferringRequestCount=????: ${total}
+WelcomeToadlet.threadDumpNotUsingWrapper=???????????, ?????????????!
+WelcomeToadlet.threadDumpSubTitle=?????????
+WelcomeToadlet.threadDumpTitle=???????
+WelcomeToadlet.threadDumpWithFilename=?????????, ????? ${filename} ?????.
+WelcomeToadlet.transferringRequestCount=??????: ${total}
WelcomeToadlet.update=??
WelcomeToadlet.updating=?Freenet??????,???????????.?????????????????,?????????????.
WelcomeToadlet.updatingTitle=?????
+WelcomeToadlet.uriWouldHaveBeen=URI ???: ${uri}
WelcomeToadlet.version=Freenet ??:${fullVersion} ????:${build} r${rev}
WelcomeToadlet.versionHeader=???????
-WrapperConfig.wrapper.java.maxmemory.long=Freenet ????????. ???????????,
Freenet ??????????; ?????????????, ????????. ?????????? Freenet ??????.
+WelcomeToadlet.writtenDatabaseStats=???????????????????????
+WrapperConfig.wrapper.java.maxmemory.long=Freenet ????????. ???????????,
Freenet ??????????; ??????????????, ????????. ?????????? Freenet ??????.
WrapperConfig.wrapper.java.maxmemory.short=??????(?????MiB)
End
Modified:
branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -592,8 +592,7 @@
processJFKMessage2(payload, 4, pn, replyTo, true,
setupType);
} else if(packetType == 3) {
// Phase 4
- if(!processJFKMessage4(payload, 4, pn, replyTo, false,
true, setupType, true))
- processJFKMessage4(payload, 4, pn, replyTo,
false, true, setupType, false);
+ processJFKMessage4(payload, 4, pn, replyTo, false,
true, setupType);
} else {
Logger.error(this, "Invalid phase "+packetType+" for
anonymous-initiator (we are the responder)");
}
@@ -695,8 +694,7 @@
* using the same keys as in the previous
message.
* The signature is non-message recovering
*/
- if(!processJFKMessage4(payload, 3, pn, replyTo,
oldOpennetPeer, false, -1, true))
- processJFKMessage4(payload, 3, pn,
replyTo, oldOpennetPeer, false, -1, false);
+ processJFKMessage4(payload, 3, pn, replyTo,
oldOpennetPeer, false, -1);
}
} else {
Logger.error(this, "Decrypted auth packet but unknown
negotiation type "+negType+" from "+replyTo+" possibly from "+pn);
@@ -1238,7 +1236,7 @@
* @param pn The PeerNode we are talking to. Cannot be null as we are
the initiator.
* @param replyTo The Peer we are replying to.
*/
- private boolean processJFKMessage4(byte[] payload, int inputOffset,
PeerNode pn, Peer replyTo, boolean oldOpennetPeer, boolean unknownInitiator,
int setupType, boolean bothNoderefs)
+ private boolean processJFKMessage4(byte[] payload, int inputOffset,
PeerNode pn, Peer replyTo, boolean oldOpennetPeer, boolean unknownInitiator,
int setupType)
{
final long t1 = System.currentTimeMillis();
if(logMINOR) Logger.minor(this, "Got a JFK(4) message,
processing it - "+pn.getPeer());
@@ -1256,13 +1254,11 @@
HASH_LENGTH + // HMAC of the cyphertext
(c.getBlockSize() >> 3) + // IV
Node.SIGNATURE_PARAMETER_LENGTH * 2 + // the signature
- (bothNoderefs ? pn.jfkMyRef.length : 0) + // my
reference
8+ // bootID
1; // znoderefR
if(payload.length - inputOffset < expectedLength + 3) {
- if(!bothNoderefs)
- Logger.error(this, "Packet too short from
"+pn.getPeer()+": "+payload.length+" after decryption in JFK(4), should be
"+(expectedLength + 3));
+ Logger.error(this, "Packet too short from
"+pn.getPeer()+": "+payload.length+" after decryption in JFK(4), should be
"+(expectedLength + 3));
return false;
}
byte[] jfkBuffer = pn.getJFKBuffer();
@@ -1307,11 +1303,11 @@
byte[] data = new byte[decypheredPayload.length -
decypheredPayloadOffset];
System.arraycopy(decypheredPayload, decypheredPayloadOffset,
data, 0, decypheredPayload.length - decypheredPayloadOffset);
long bootID = Fields.bytesToLong(data);
- if(data.length - (bothNoderefs ? pn.jfkMyRef.length : 0) - 8 <
0) {
- Logger.error(this, "No space for hisRef:
bothNoderefs="+bothNoderefs+" data.length="+data.length+"
myRef.length="+(pn.jfkMyRef==null?0:pn.jfkMyRef.length)+" orig data length
"+(payload.length-inputOffset));
+ if(data.length - 8 < 0) {
+ Logger.error(this, "No space for hisRef:
data.length="+data.length+"
myRef.length="+(pn.jfkMyRef==null?0:pn.jfkMyRef.length)+" orig data length
"+(payload.length-inputOffset));
return false;
}
- byte[] hisRef = new byte[data.length - (bothNoderefs ?
pn.jfkMyRef.length : 0) - 8];
+ byte[] hisRef = new byte[data.length - 8];
System.arraycopy(data, 8, hisRef, 0, hisRef.length);
// verify the signature
@@ -1329,10 +1325,7 @@
byte[] messageHash = SHA256.digest(locallyGeneratedText);
if(!DSA.verify(pn.peerPubKey, remoteSignature, new
NativeBigInteger(1, messageHash), false)) {
String error = "The signature verification has failed!!
JFK(4) -"+pn.getPeer()+" message hash "+HexUtil.bytesToHex(messageHash)+"
length "+locallyGeneratedText.length+" hisRef "+hisRef.length+" hash
"+Fields.hashCode(hisRef)+" myRef "+pn.jfkMyRef.length+" hash
"+Fields.hashCode(pn.jfkMyRef)+" boot ID "+bootID;
- if(bothNoderefs)
- Logger.normal(this, error);
- else
- Logger.error(this, error);
+ Logger.error(this, error);
return false;
}
Modified: branches/saltedhashstore/freenet/src/freenet/node/Node.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-07-07
15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-07-07
15:51:48 UTC (rev 20999)
@@ -33,6 +33,7 @@
import freenet.client.FetchContext;
import freenet.clients.http.SimpleToadletServer;
+import freenet.clients.http.StartupToadlet;
import freenet.config.EnumerableOptionCallback;
import freenet.config.FreenetFilePersistentConfig;
import freenet.config.InvalidConfigValueException;
@@ -40,6 +41,7 @@
import freenet.config.PersistentConfig;
import freenet.config.SubConfig;
import freenet.crypt.DSAPublicKey;
+import freenet.crypt.DiffieHellman;
import freenet.crypt.RandomSource;
import freenet.crypt.SHA256;
import freenet.crypt.Yarrow;
@@ -119,6 +121,7 @@
import freenet.support.io.FileUtil;
import freenet.support.io.NativeThread;
import freenet.support.transport.ip.HostnameSyntaxException;
+import java.net.URI;
/**
* @author amphibian
@@ -606,11 +609,11 @@
* @param config The Config object for this node.
* @param random The random number generator for this node. Passed in
because we may want
* to use a non-secure RNG for e.g. one-JVM live-code simulations.
Should be a Yarrow in
- * a production node.
+ * a production node. Yarrow will be used if that parameter is null
* @param the loggingHandler
* @throws NodeInitException If the node initialization fails.
*/
- Node(PersistentConfig config, RandomSource random,
LoggingConfigHandler lc, NodeStarter ns, Executor executor) throws
NodeInitException {
+ Node(PersistentConfig config, RandomSource r, LoggingConfigHandler lc,
NodeStarter ns, Executor executor) throws NodeInitException {
// Easy stuff
logMINOR = Logger.shouldLog(Logger.MINOR, this);
String tmp = "Initializing Node using Freenet Build
#"+Version.buildNumber()+" r"+Version.cvsRevision+" and freenet-ext Build
#"+NodeStarter.extBuildNumber+" r"+NodeStarter.extRevisionNumber+" with
"+System.getProperty("java.vendor")+" JVM version
"+System.getProperty("java.version")+" running on
"+System.getProperty("os.arch")+' '+System.getProperty("os.name")+'
'+System.getProperty("os.version");
@@ -622,16 +625,30 @@
if(logConfigHandler != lc)
logConfigHandler=lc;
startupTime = System.currentTimeMillis();
- // Will be set up properly afterwards
- L10n.setLanguage(L10n.FALLBACK_DEFAULT);
SimpleFieldSet oldConfig = config.getSimpleFieldSet();
// Setup node-specific configuration
SubConfig nodeConfig = new SubConfig("node", config);
+
int sortOrder = 0;
+ // l10n stuffs
+ nodeConfig.register("l10n",
Locale.getDefault().getLanguage().toLowerCase(), sortOrder++, false, true,
+ "Node.l10nLanguage",
+ "Node.l10nLanguageLong",
+ new L10nCallback());
+
+ try {
+ L10n.setLanguage(nodeConfig.getString("l10n"));
+ } catch (MissingResourceException e) {
+ try {
+
L10n.setLanguage(nodeConfig.getOption("l10n").getDefault());
+ } catch (MissingResourceException e1) {
+ L10n.setLanguage(L10n.FALLBACK_DEFAULT);
+ }
+ }
+
// FProxy config needs to be here too
SubConfig fproxyConfig = new SubConfig("fproxy", config);
-
try {
toadlets = new SimpleToadletServer(fproxyConfig, new
ArrayBucketFactory(), executor);
fproxyConfig.finishedInitialization();
@@ -646,14 +663,18 @@
e4.printStackTrace();
throw new
NodeInitException(NodeInitException.EXIT_COULD_NOT_START_FPROXY, "Could not
start FProxy: "+e4);
}
-
+
+ // Setup RNG if needed : DO NOT USE IT BEFORE THAT POINT!
+ this.random = (r == null ? new Yarrow() : r);
+ DiffieHellman.init(random);
+ byte buffer[] = new byte[16];
+ random.nextBytes(buffer);
+ this.fastWeakRandom = new MersenneTwister(buffer);
+ toadlets.getStartupToadlet().setIsPRNGReady();
+
nodeNameUserAlert = new MeaningfulNodeNameUserAlert(this);
recentlyCompletedIDs = new LRUQueue();
this.config = config;
- this.random = random;
- byte buffer[] = new byte[16];
- random.nextBytes(buffer);
- this.fastWeakRandom = new MersenneTwister(buffer);
cachedPubKeys = new LRUHashtable();
lm = new LocationManager(random, this);
@@ -1627,23 +1648,7 @@
});
disableHangCheckers =
nodeConfig.getBoolean("disableHangCheckers");
-
- // l10n stuffs
- nodeConfig.register("l10n",
Locale.getDefault().getLanguage().toLowerCase(), sortOrder++, false, true,
- "Node.l10nLanguage",
- "Node.l10nLanguageLong",
- new L10nCallback());
-
- try {
- L10n.setLanguage(nodeConfig.getString("l10n"));
- } catch (MissingResourceException e) {
- try {
-
L10n.setLanguage(nodeConfig.getOption("l10n").getDefault());
- } catch (MissingResourceException e1) {
- L10n.setLanguage(L10n.FALLBACK_DEFAULT);
- }
- }
-
+
nodeConfig.finishedInitialization();
writeNodeFile();
Modified: branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -23,103 +23,96 @@
import freenet.support.SimpleFieldSet;
import freenet.support.LoggerHook.InvalidThresholdException;
import freenet.support.io.NativeThread;
-
/**
* @author nextgens
*
* A class to tie the wrapper and the node (needed for self-restarting
support)
*/
-public class NodeStarter implements WrapperListener
-{
- private Node node;
+public class NodeStarter implements WrapperListener {
+
+ private Node node;
private static LoggingConfigHandler logConfigHandler;
public final static int RECOMMENDED_EXT_BUILD_NUMBER = 20;
-
/*
(File.separatorChar == '\\') &&
(System.getProperty("os.arch").toLowerCase().matches("(i?[x0-9]86_64|amd64)"))
? 6 : 2;
- */
+ */
public static int extBuildNumber;
public static String extRevisionNumber;
private FreenetFilePersistentConfig cfg;
- /*---------------------------------------------------------------
- * Constructors
- *-------------------------------------------------------------*/
- private NodeStarter(){}
-
- public NodeStarter get(){
- return this;
- }
+ /*---------------------------------------------------------------
+ * Constructors
+ *-------------------------------------------------------------*/
+ private NodeStarter() {
+ }
- /*---------------------------------------------------------------
- * WrapperListener Methods
- *-------------------------------------------------------------*/
- /**
- * The start method is called when the WrapperManager is signaled by the
- * native wrapper code that it can start its application. This
- * method call is expected to return, so a new thread should be launched
- * if necessary.
- *
- * @param args List of arguments used to initialize the application.
- *
- * @return Any error code if the application should exit on completion
- * of the start method. If there were no problems then this
- * method should return null.
- */
- public Integer start( String[] args )
- {
- if(args.length>1) {
- System.out.println("Usage: $ java freenet.node.Node
<configFile>");
- return new Integer(-1);
- }
-
- getExtBuild();
-
- File configFilename;
- if(args.length == 0) {
- System.out.println("Using default config filename freenet.ini");
- configFilename = new File("freenet.ini");
- } else
- configFilename = new File(args[0]);
-
- // set Java's DNS cache not to cache forever, since many people
- // use dyndns hostnames
- java.security.Security.setProperty("networkaddress.cache.ttl" , "0");
- java.security.Security.setProperty("networkaddress.cache.negative.ttl"
, "0");
-
- try{
- cfg =
FreenetFilePersistentConfig.constructFreenetFilePersistentConfig(configFilename);
- }catch(IOException e){
- System.out.println("Error : "+e);
- e.printStackTrace();
- return new Integer(-1);
- }
-
- // First, set up logging. It is global, and may be shared between
several nodes.
- SubConfig loggingConfig = new SubConfig("logger", cfg);
-
- PooledExecutor executor = new PooledExecutor();
-
- try {
- logConfigHandler = new LoggingConfigHandler(loggingConfig,
executor);
- } catch (InvalidConfigValueException e) {
- System.err.println("Error: could not set up logging:
"+e.getMessage());
- e.printStackTrace();
- return new Integer(-2);
- }
+ public NodeStarter get() {
+ return this;
+ }
- executor.start();
-
- // Prevent timeouts for a while. The DiffieHellman init for example
could take some time on a very slow system.
- WrapperManager.signalStarting(500000);
-
- // Setup RNG
- RandomSource random = new Yarrow();
-
- DiffieHellman.init(random);
-
+ /*---------------------------------------------------------------
+ * WrapperListener Methods
+ *-------------------------------------------------------------*/
+ /**
+ * The start method is called when the WrapperManager is signaled by
the
+ * native wrapper code that it can start its application. This
+ * method call is expected to return, so a new thread should be
launched
+ * if necessary.
+ *
+ * @param args List of arguments used to initialize the application.
+ *
+ * @return Any error code if the application should exit on completion
+ * of the start method. If there were no problems then this
+ * method should return null.
+ */
+ public Integer start(String[] args) {
+ if(args.length > 1) {
+ System.out.println("Usage: $ java freenet.node.Node
<configFile>");
+ return new Integer(-1);
+ }
+
+ getExtBuild();
+
+ File configFilename;
+ if(args.length == 0) {
+ System.out.println("Using default config filename
freenet.ini");
+ configFilename = new File("freenet.ini");
+ } else
+ configFilename = new File(args[0]);
+
+ // set Java's DNS cache not to cache forever, since many people
+ // use dyndns hostnames
+ java.security.Security.setProperty("networkaddress.cache.ttl",
"0");
+
java.security.Security.setProperty("networkaddress.cache.negative.ttl", "0");
+
+ try {
+ cfg =
FreenetFilePersistentConfig.constructFreenetFilePersistentConfig(configFilename);
+ } catch(IOException e) {
+ System.out.println("Error : " + e);
+ e.printStackTrace();
+ return new Integer(-1);
+ }
+
+ // First, set up logging. It is global, and may be shared
between several nodes.
+ SubConfig loggingConfig = new SubConfig("logger", cfg);
+
+ PooledExecutor executor = new PooledExecutor();
+
+ try {
+ logConfigHandler = new
LoggingConfigHandler(loggingConfig, executor);
+ } catch(InvalidConfigValueException e) {
+ System.err.println("Error: could not set up logging: "
+ e.getMessage());
+ e.printStackTrace();
+ return new Integer(-2);
+ }
+
+ executor.start();
+
+ // Prevent timeouts for a while. The DiffieHellman init for
example could take some time on a very slow system.
+ WrapperManager.signalStarting(500000);
+
// Thread to keep the node up.
// JVM deadlocks losing a lock when two threads of different
types (daemon|app)
// are contended for the same lock. So make USM daemon, and use
useless to keep the JVM
@@ -127,53 +120,55 @@
//
http://forum.java.sun.com/thread.jspa?threadID=343023&messageID=2942637 - last
message
Runnable useless =
new Runnable() {
- public void run() {
- while(true)
- try {
- Thread.sleep(60*60*1000);
- } catch (InterruptedException e) {
- // Ignore
- } catch (Throwable t) {
+
+ public void run() {
+ while(true) {
try {
- Logger.error(this,
"Caught "+t, t);
- } catch (Throwable t1) {
+ Thread.sleep(60 * 60 *
1000);
+ } catch(InterruptedException e)
{
// Ignore
+ } catch(Throwable t) {
+ try {
+
Logger.error(this, "Caught " + t, t);
+ } catch(Throwable t1) {
+ // Ignore
+ }
}
}
- }
- };
+ }
+ };
NativeThread plug = new NativeThread(useless, "Plug",
NativeThread.MAX_PRIORITY, false);
// Not daemon, but doesn't do anything.
// Keeps the JVM alive.
// DO NOT do anything in the plug thread, if you do you risk
the EvilJVMBug.
plug.setDaemon(false);
plug.start();
-
+
// Initialize SSL
- SubConfig sslConfig = new SubConfig("ssl", cfg);
- SSL.init(sslConfig);
-
- try {
- node = new Node(cfg, random, logConfigHandler,this, executor);
- node.start(false);
- System.out.println("Node initialization completed.");
- } catch (NodeInitException e) {
- System.err.println("Failed to load node: "+e.getMessage());
- e.printStackTrace();
- System.exit(e.exitCode);
- }
-
+ SubConfig sslConfig = new SubConfig("ssl", cfg);
+ SSL.init(sslConfig);
+
+ try {
+ node = new Node(cfg, null, logConfigHandler, this,
executor);
+ node.start(false);
+ System.out.println("Node initialization completed.");
+ } catch(NodeInitException e) {
+ System.err.println("Failed to load node: " +
e.getMessage());
+ e.printStackTrace();
+ System.exit(e.exitCode);
+ }
+
return null;
- }
+ }
- private void getExtBuild() {
- try{
- extBuildNumber = ExtVersion.buildNumber;
+ private void getExtBuild() {
+ try {
+ extBuildNumber = ExtVersion.buildNumber;
extRevisionNumber = ExtVersion.cvsRevision;
- String builtWithMessage = "freenet.jar built with
freenet-ext.jar Build #"+extBuildNumber+" r"+extRevisionNumber;
+ String builtWithMessage = "freenet.jar built with
freenet-ext.jar Build #" + extBuildNumber + " r" + extRevisionNumber;
Logger.normal(this, builtWithMessage);
System.out.println(builtWithMessage);
- extBuildNumber = ExtVersion.buildNumber();
+ extBuildNumber = ExtVersion.buildNumber();
if(extBuildNumber == -42) {
extBuildNumber = ExtVersion.extBuildNumber();
extRevisionNumber =
ExtVersion.extRevisionNumber();
@@ -190,145 +185,142 @@
System.err.println(revisionMessage);
extRevisionNumber = "INVALID";
}
- }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;
- }
+ } 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;
+ }
}
/**
- * Called when the application is shutting down. The Wrapper assumes that
- * this method will return fairly quickly. If the shutdown code code
- * could potentially take a long time, then
WrapperManager.signalStopping()
- * should be called to extend the timeout period. If for some reason,
- * the stop method can not return, then it must call
- * WrapperManager.stopped() to avoid warning messages from the Wrapper.
- *
- * @param exitCode The suggested exit code that will be returned to the OS
- * when the JVM exits.
- *
- * @return The exit code to actually return to the OS. In most cases, this
- * should just be the value of exitCode, however the user code has
- * the option of changing the exit code if there are any problems
- * during shutdown.
- */
- public int stop( int exitCode )
- {
- System.err.println("Shutting down with exit code "+exitCode);
- node.park();
- // see #354
- WrapperManager.signalStopping(120000);
-
- return exitCode;
- }
-
- public void restart(){
- WrapperManager.restart();
- }
-
- /**
- * Called whenever the native wrapper code traps a system control signal
- * against the Java process. It is up to the callback to take any actions
- * necessary. Possible values are: WrapperManager.WRAPPER_CTRL_C_EVENT,
- * WRAPPER_CTRL_CLOSE_EVENT, WRAPPER_CTRL_LOGOFF_EVENT, or
- * WRAPPER_CTRL_SHUTDOWN_EVENT
- *
- * @param event The system control signal.
- */
- public void controlEvent( int event )
- {
- if (WrapperManager.isControlledByNativeWrapper()) {
- // The Wrapper will take care of this event
- } else {
- // We are not being controlled by the Wrapper, so
- // handle the event ourselves.
- if ((event == WrapperManager.WRAPPER_CTRL_C_EVENT) ||
- (event == WrapperManager.WRAPPER_CTRL_CLOSE_EVENT) ||
- (event == WrapperManager.WRAPPER_CTRL_SHUTDOWN_EVENT)){
- WrapperManager.stop(0);
- }
- }
- }
-
- /*---------------------------------------------------------------
- * Main Method
- *-------------------------------------------------------------*/
- public static void main( String[] args )
- {
- // Start the application. If the JVM was launched from the native
- // Wrapper then the application will wait for the native Wrapper to
- // call the application's start method. Otherwise the start method
- // will be called immediately.
- WrapperManager.start( new NodeStarter(), args );
- }
+ * Called when the application is shutting down. The Wrapper assumes
that
+ * this method will return fairly quickly. If the shutdown code code
+ * could potentially take a long time, then
WrapperManager.signalStopping()
+ * should be called to extend the timeout period. If for some reason,
+ * the stop method can not return, then it must call
+ * WrapperManager.stopped() to avoid warning messages from the Wrapper.
+ *
+ * @param exitCode The suggested exit code that will be returned to the
OS
+ * when the JVM exits.
+ *
+ * @return The exit code to actually return to the OS. In most cases,
this
+ * should just be the value of exitCode, however the user code
has
+ * the option of changing the exit code if there are any
problems
+ * during shutdown.
+ */
+ public int stop(int exitCode) {
+ System.err.println("Shutting down with exit code " + exitCode);
+ node.park();
+ // see #354
+ WrapperManager.signalStopping(120000);
- /**
- * VM-specific init.
- * Not Node-specific; many nodes may be created later.
- * @param testName The name of the test instance.
- */
+ return exitCode;
+ }
+
+ public void restart() {
+ WrapperManager.restart();
+ }
+
+ /**
+ * Called whenever the native wrapper code traps a system control signal
+ * against the Java process. It is up to the callback to take any
actions
+ * necessary. Possible values are:
WrapperManager.WRAPPER_CTRL_C_EVENT,
+ * WRAPPER_CTRL_CLOSE_EVENT, WRAPPER_CTRL_LOGOFF_EVENT, or
+ * WRAPPER_CTRL_SHUTDOWN_EVENT
+ *
+ * @param event The system control signal.
+ */
+ public void controlEvent(int event) {
+ if(WrapperManager.isControlledByNativeWrapper()) {
+ // The Wrapper will take care of this event
+ } else
+ // We are not being controlled by the Wrapper, so
+ // handle the event ourselves.
+ if((event == WrapperManager.WRAPPER_CTRL_C_EVENT) ||
+ (event ==
WrapperManager.WRAPPER_CTRL_CLOSE_EVENT) ||
+ (event ==
WrapperManager.WRAPPER_CTRL_SHUTDOWN_EVENT))
+ WrapperManager.stop(0);
+ }
+
+ /*---------------------------------------------------------------
+ * Main Method
+ *-------------------------------------------------------------*/
+ public static void main(String[] args) {
+ // Start the application. If the JVM was launched from the
native
+ // Wrapper then the application will wait for the native
Wrapper to
+ // call the application's start method. Otherwise the start
method
+ // will be called immediately.
+ WrapperManager.start(new NodeStarter(), args);
+ }
+
+ /**
+ * VM-specific init.
+ * Not Node-specific; many nodes may be created later.
+ * @param testName The name of the test instance.
+ */
public static RandomSource globalTestInit(String testName, boolean
enablePlug, int logThreshold, String details) throws InvalidThresholdException {
-
+
File dir = new File(testName);
if((!dir.mkdir()) && ((!dir.exists()) || (!dir.isDirectory())))
{
System.err.println("Cannot create directory for test");
System.exit(NodeInitException.EXIT_TEST_ERROR);
}
-
- Logger.setupStdoutLogging(logThreshold, details);
-
- // set Java's DNS cache not to cache forever, since many people
- // use dyndns hostnames
- java.security.Security.setProperty("networkaddress.cache.ttl" , "0");
- java.security.Security.setProperty("networkaddress.cache.negative.ttl"
, "0");
-
- // Setup RNG
- RandomSource random = new Yarrow();
-
- DiffieHellman.init(random);
-
- if(enablePlug) {
-
- // Thread to keep the node up.
- // JVM deadlocks losing a lock when two threads of different
types (daemon|app)
- // are contended for the same lock. So make USM daemon, and use
useless to keep the JVM
- // up.
- //
http://forum.java.sun.com/thread.jspa?threadID=343023&messageID=2942637 - last
message
- Runnable useless =
- new Runnable() {
- public void run() {
- while(true)
- try {
- Thread.sleep(60*60*1000);
- } catch (InterruptedException e) {
- // Ignore
- } catch (Throwable t) {
- try {
- Logger.error(this,
"Caught "+t, t);
- } catch (Throwable t1) {
- // Ignore
+
+ Logger.setupStdoutLogging(logThreshold, details);
+
+ // set Java's DNS cache not to cache forever, since many people
+ // use dyndns hostnames
+ java.security.Security.setProperty("networkaddress.cache.ttl",
"0");
+
java.security.Security.setProperty("networkaddress.cache.negative.ttl", "0");
+
+ // Setup RNG
+ RandomSource random = new Yarrow();
+
+ DiffieHellman.init(random);
+
+ if(enablePlug) {
+
+ // Thread to keep the node up.
+ // JVM deadlocks losing a lock when two threads of
different types (daemon|app)
+ // are contended for the same lock. So make USM daemon,
and use useless to keep the JVM
+ // up.
+ //
http://forum.java.sun.com/thread.jspa?threadID=343023&messageID=2942637 - last
message
+ Runnable useless =
+ new Runnable() {
+
+ public void run() {
+ while(true) {
+ try {
+ Thread.sleep(60
* 60 * 1000);
+ }
catch(InterruptedException e) {
+ // Ignore
+ } catch(Throwable t) {
+ try {
+
Logger.error(this, "Caught " + t, t);
+ }
catch(Throwable t1) {
+ //
Ignore
+ }
+ }
}
}
- }
- };
- Thread plug = new Thread(useless, "Plug");
- // Not daemon, but doesn't do anything.
- // Keeps the JVM alive.
- // DO NOT do anything in the plug thread, if you do you risk
the EvilJVMBug.
- plug.setDaemon(false);
- plug.start();
- }
-
- FNPPacketMangler.LOG_UNMATCHABLE_ERROR = true;
- DNSRequester.DISABLE = true;
-
+ };
+ Thread plug = new Thread(useless, "Plug");
+ // Not daemon, but doesn't do anything.
+ // Keeps the JVM alive.
+ // DO NOT do anything in the plug thread, if you do you
risk the EvilJVMBug.
+ plug.setDaemon(false);
+ plug.start();
+ }
+
+ FNPPacketMangler.LOG_UNMATCHABLE_ERROR = true;
+ DNSRequester.DISABLE = true;
+
return random;
}
-
+
/**
* Create a test node.
* @param port The node port number. Each test node must have a
different port
@@ -339,21 +331,21 @@
* @throws NodeInitException If the node cannot start up for some
reason, most
* likely a config problem.
*/
- public static Node createTestNode(int port, String testName, boolean
doClient,
- boolean doSwapping, boolean disableProbabilisticHTLs,
short maxHTL,
- int dropProb, RandomSource random, Executor executor,
int threadLimit,
- long storeSize, boolean ramStore, boolean
enableSwapping, boolean enableARKs,
- boolean enableULPRs, boolean
enablePerNodeFailureTables,
- boolean enableSwapQueueing, boolean
enablePacketCoalescing,
- int outputBandwidthLimit) throws NodeInitException {
-
+ public static Node createTestNode(int port, String testName, boolean
doClient,
+ boolean doSwapping, boolean disableProbabilisticHTLs, short
maxHTL,
+ int dropProb, RandomSource random, Executor executor, int
threadLimit,
+ long storeSize, boolean ramStore, boolean enableSwapping,
boolean enableARKs,
+ boolean enableULPRs, boolean enablePerNodeFailureTables,
+ boolean enableSwapQueueing, boolean enablePacketCoalescing,
+ int outputBandwidthLimit) throws NodeInitException {
+
File baseDir = new File(testName);
File portDir = new File(baseDir, Integer.toString(port));
if((!portDir.mkdir()) && ((!portDir.exists()) ||
(!portDir.isDirectory()))) {
System.err.println("Cannot create directory for test");
System.exit(NodeInitException.EXIT_TEST_ERROR);
}
-
+
// Set up config for testing
SimpleFieldSet configFS = new SimpleFieldSet(false); // only
happens once in entire simulation
if(outputBandwidthLimit > 0) {
@@ -362,7 +354,7 @@
} else {
// Even with throttleLocalTraffic=false, requests still
count in NodeStats.
// So set outputBandwidthLimit to something insanely
high.
- configFS.put("node.outputBandwidthLimit", 16*1024*1024);
+ configFS.put("node.outputBandwidthLimit", 16 * 1024 *
1024);
configFS.put("node.throttleLocalTraffic", false);
}
configFS.put("node.listenPort", port);
@@ -383,7 +375,7 @@
configFS.put("node.includeLocalAddressesInNoderefs", true);
configFS.put("node.enableARKs", false);
configFS.put("node.load.threadLimit", threadLimit);
- if(ramStore)
+ if(ramStore)
configFS.putSingle("node.storeType", "ram");
configFS.put("storeSize", storeSize);
configFS.put("node.disableHangCheckers", true);
@@ -393,14 +385,14 @@
configFS.put("node.enableULPRDataPropagation", enableULPRs);
configFS.put("node.enablePerNodeFailureTables",
enablePerNodeFailureTables);
configFS.put("node.enablePacketCoalescing",
enablePacketCoalescing);
-
+
PersistentConfig config = new PersistentConfig(configFS);
-
- Node node=new Node(config, random, null, null, executor);
-
+
+ Node node = new Node(config, random, null, null, executor);
+
//All testing environments connect the nodes as they want, even
if the old setup is restored, it is not desired.
node.peers.removeAllPeers();
-
+
return node;
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/ResettingHTLProbeRequestSender.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/ResettingHTLProbeRequestSender.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/node/ResettingHTLProbeRequestSender.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -122,15 +122,15 @@
return;
}
- double nextValue=next.getLocation();
-
+ double nextValue=next.getLocation();
+
if(logMINOR) Logger.minor(this, "Routing request to "+next);
nodesRoutedTo.add(next);
- if(Location.distance(target, nextValue, true) >
Location.distance(target, nearestLoc, true)) {
- htl = node.decrementHTL((hasForwarded ? next : source), htl);
- if(logMINOR) Logger.minor(this, "Backtracking:
target="+target+" next="+nextValue+" closest="+nearestLoc+" so htl="+htl);
- }
+ if(Location.distance(target, nextValue, true) >
Location.distance(target, nearestLoc, true)) {
+ htl = node.decrementHTL((hasForwarded ? next : source),
htl);
+ if(logMINOR) Logger.minor(this, "Backtracking:
target="+target+" next="+nextValue+" closest="+nearestLoc+" so htl="+htl);
+ }
Message req = createDataRequest();
Modified: branches/saltedhashstore/freenet/src/freenet/node/Version.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1152;
+ private static final int buildNumber = 1153;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 1145;
- private static final int newLastGoodBuild = 1152;
+ private static final int newLastGoodBuild = 1153;
static final long transitionTime;
static {
final Calendar _cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
// year, month - 1 (or constant), day, hour, minute, second
- _cal.set( 2008, Calendar.JUNE, 15, 0, 0, 0 );
+ _cal.set( 2008, Calendar.JULY, 9, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -247,7 +247,7 @@
private void trySendGeneratedURIMessage(FCPConnectionOutputHandler
handler) {
FCPMessage msg;
synchronized(this) {
- msg = new URIGeneratedMessage(generatedURI, identifier);
+ msg = new URIGeneratedMessage(generatedURI, identifier,
client.isGlobalQueue);
}
if(handler != null)
handler.queue(msg);
Modified:
branches/saltedhashstore/freenet/src/freenet/node/fcp/PersistentGet.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/fcp/PersistentGet.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/node/fcp/PersistentGet.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -58,6 +58,8 @@
fs.putSingle("URI", uri.toString(false, false));
fs.put("Verbosity", verbosity);
fs.putSingle("ReturnType",
ClientGetMessage.returnTypeString(returnType));
+ fs.putSingle("Persistence",
ClientRequest.persistenceTypeString(persistenceType));
+ // FIXME PersistenceType is backward compatibility cruft,
everything else uses Persistence
fs.putSingle("PersistenceType",
ClientRequest.persistenceTypeString(persistenceType));
if(returnType == ClientGetMessage.RETURN_TYPE_DISK) {
fs.putSingle("Filename", targetFile.getAbsolutePath());
Modified:
branches/saltedhashstore/freenet/src/freenet/node/fcp/URIGeneratedMessage.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/fcp/URIGeneratedMessage.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/node/fcp/URIGeneratedMessage.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -11,16 +11,19 @@
private final FreenetURI uri;
private final String identifier;
+ private final boolean global;
- public URIGeneratedMessage(FreenetURI uri, String identifier) {
+ public URIGeneratedMessage(FreenetURI uri, String identifier, boolean
global) {
this.uri = uri;
this.identifier = identifier;
+ this.global = global;
}
public SimpleFieldSet getFieldSet() {
SimpleFieldSet fs = new SimpleFieldSet(true);
fs.putSingle("URI", uri.toString());
fs.putSingle("Identifier", identifier);
+ fs.put("Global", global);
return fs;
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -127,18 +127,17 @@
* /alerts/[ anchor pointing to the real alert].
*/
public HTMLNode createAlertsShort(String title, boolean advancedMode,
boolean drawDumpEventsForm) {
- UserAlert[] alerts = getAlerts();
+ UserAlert[] currentAlerts = getAlerts();
short maxLevel = Short.MAX_VALUE;
int events = 0;
- for(int i=0;i<alerts.length;i++) {
- boolean isValid = alerts[i].isValid();
- short level = alerts[i].getPriorityClass();
- if(isValid) {
- if(level < maxLevel) maxLevel = level;
- if(alerts[i].isEventNotification()) events++;
- }
+ for(int i=0;i<currentAlerts.length;i++) {
+ if (!currentAlerts[i].isValid())
+ continue;
+ short level = currentAlerts[i].getPriorityClass();
+ if(level < maxLevel) maxLevel = level;
+ if(currentAlerts[i].isEventNotification()) events++;
}
- if(events == 0)
+ if(maxLevel == Short.MAX_VALUE)
return new HTMLNode("#", "");
if(events < 2) drawDumpEventsForm = false;
HTMLNode boxNode = new HTMLNode("div", "class", "infobox
infobox-"+getAlertLevelName(maxLevel)+" infobox-summary-status-box");
@@ -148,8 +147,8 @@
contentNode.addChild("p", "class", "click-for-more",
l10n("clickForMore"));
HTMLNode alertsNode = contentNode.addChild("ul", "class",
"alert-summary");
int totalNumber = 0;
- for (int i = 0; i < alerts.length; i++) {
- UserAlert alert = alerts[i];
+ for (int i = 0; i < currentAlerts.length; i++) {
+ UserAlert alert = currentAlerts[i];
if (!alert.isValid())
continue;
HTMLNode listItem = alertsNode.addChild("li", "class",
"alert-summary-text-"+getAlertLevelName(alert.getPriorityClass()));
@@ -160,11 +159,11 @@
HTMLNode dumpFormNode = contentNode.addChild("form",
new String[] { "action", "method" }, new String[] { "/", "post"
}).addChild("div");
dumpFormNode.addChild("input", new String[] { "type",
"name", "value" }, new String[] { "hidden", "formPassword", core.formPassword
});
StringBuffer sb = new StringBuffer();
- for(int i=0;i<alerts.length;i++) {
- if(!alerts[i].isEventNotification()) continue;
+ for(int i=0;i<currentAlerts.length;i++) {
+ if(!currentAlerts[i].isEventNotification())
continue;
if(sb.length() != 0)
sb.append(",");
- sb.append(alerts[i].anchor());
+ sb.append(currentAlerts[i].anchor());
}
dumpFormNode.addChild("input", new String[] { "type",
"name", "value" }, new String[] { "hidden", "events", sb.toString() });
dumpFormNode.addChild("input", new String[] { "type",
"name", "value" }, new String[] { "submit", "dismiss-events",
l10n("dumpEventsButton") });
Modified:
branches/saltedhashstore/freenet/src/freenet/support/LibraryLoader.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/support/LibraryLoader.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/support/LibraryLoader.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -25,13 +25,16 @@
} else
if(System.getProperty("os.arch").toLowerCase().matches("(ppc)")) {
arch = "ppc";
} else {
+ // We want to try the i386 libraries if the
architecture is unknown
+ // Wrappers MUST fallback to "plain java"
implementation if loading native libraries fails
arch = "i386";
}
return arch;
}
- public static void loadNative(String path, String libraryName) {
+ public static boolean loadNative(String path, String libraryName) {
+ boolean success = false;
final boolean isWindows = File.pathSeparatorChar == ';';
final String prefix = (isWindows ? ".dll" :
((System.getProperty("os.name")).toLowerCase().startsWith("mac") ? ".jnilib" :
".so"));
final String libraryNameWithPrefix = (isWindows ? "" : "lib") +
libraryName;
@@ -43,6 +46,7 @@
if (nativeLib.exists()) {
System.out.println("Attempting to load the NativeThread
library ["+libraryName+']');
System.loadLibrary(libraryName);
+ success = true;
} else {
try {
// Get the resource
@@ -68,10 +72,13 @@
// Finally, load the dll
System.out.println("Attempting to load the
"+libraryName+" library ["+resource+']');
System.load(temporaryLib.getPath());
+ success = true;
} catch(Throwable e) {
System.err.println("Caught the following
exception attempting to load "+resourceName);
e.printStackTrace();
}
}
+
+ return success;
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucket.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucket.java
2008-07-07 15:31:05 UTC (rev 20998)
+++
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucket.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -15,7 +15,7 @@
public class BucketChainBucket implements Bucket {
private final Vector buckets;
- private long bucketSize;
+ public final long bucketSize;
private long size;
private boolean freed;
private boolean readOnly;
@@ -41,6 +41,14 @@
list[i].free();
}
}
+
+ /** Equivalent to free(), but don't free the underlying buckets. */
+ public void clear() {
+ synchronized(this) {
+ size = 0;
+ buckets.clear();
+ }
+ }
public synchronized Bucket[] getBuckets() {
return (Bucket[]) buckets.toArray(new Bucket[buckets.size()]);
@@ -164,6 +172,7 @@
if(freed) throw new IOException("Freed");
size = 0;
list = getBuckets();
+ buckets.clear();
}
for(int i=0;i<list.length;i++) {
list[i].free();
@@ -189,7 +198,8 @@
}
if(bucketLength == bucketSize) {
curBucketStream.close();
- curBucketStream =
makeBucketOutputStream(bucketNo++);
+ curBucketStream =
makeBucketOutputStream(++bucketNo);
+ bucketLength = 0;
}
curBucketStream.write(c);
bucketLength++;
@@ -218,7 +228,8 @@
if(length <= 0) return;
if(bucketLength == bucketSize) {
curBucketStream.close();
- curBucketStream =
makeBucketOutputStream(bucketNo++);
+ curBucketStream =
makeBucketOutputStream(++bucketNo);
+ bucketLength = 0;
}
if(bucketLength + length > bucketSize) {
int split = (int) (bucketSize -
bucketLength);
@@ -243,6 +254,9 @@
protected OutputStream makeBucketOutputStream(int i) throws IOException
{
Bucket bucket = bf.makeBucket(bucketSize);
+ buckets.add(bucket);
+ if(buckets.size() != i+1)
+ throw new IllegalStateException("Added bucket, size
should be "+(i+1)+" but is "+buckets.size());
buckets.set(i, bucket);
return bucket.getOutputStream();
}
Added:
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucketFactory.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucketFactory.java
(rev 0)
+++
branches/saltedhashstore/freenet/src/freenet/support/io/BucketChainBucketFactory.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -0,0 +1,22 @@
+package freenet.support.io;
+
+import java.io.IOException;
+
+import freenet.support.api.Bucket;
+import freenet.support.api.BucketFactory;
+
+public class BucketChainBucketFactory implements BucketFactory {
+
+ final BucketFactory factory;
+ final int blockSize;
+
+ public BucketChainBucketFactory(BucketFactory bucketFactory, int
block_size) {
+ this.factory = bucketFactory;
+ this.blockSize = block_size;
+ }
+
+ public Bucket makeBucket(long size) throws IOException {
+ return new BucketChainBucket(blockSize, factory);
+ }
+
+}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/BucketTools.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/support/io/BucketTools.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/support/io/BucketTools.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -334,13 +334,28 @@
* and the data written to them.
*
* Note that this method will allocate a buffer of size splitSize.
+ * @param freeData
* @throws IOException If there is an error creating buckets, reading
from
* the provided bucket, or writing to created buckets.
*/
- public static Bucket[] split(Bucket origData, int splitSize,
BucketFactory bf) throws IOException {
+ public static Bucket[] split(Bucket origData, int splitSize,
BucketFactory bf, boolean freeData) throws IOException {
if(origData instanceof FileBucket) {
+ if(freeData) {
+ Logger.error(BucketTools.class, "Asked to free
data when splitting a FileBucket ?!?!? Not freeing as this would clobber the
split result...");
+ }
return ((FileBucket)origData).split(splitSize);
}
+ if(origData instanceof BucketChainBucket) {
+ BucketChainBucket data = (BucketChainBucket)origData;
+ if(data.bucketSize == splitSize) {
+ Bucket[] buckets = data.getBuckets();
+ if(freeData)
+ data.clear();
+ return buckets;
+ } else {
+ Logger.error(BucketTools.class, "Incompatible
split size splitting a BucketChainBucket: his split size is "+data.bucketSize+"
but mine is "+splitSize+" - we will copy the data, but this suggests a bug",
new Exception("debug"));
+ }
+ }
long length = origData.size();
if(length > ((long)Integer.MAX_VALUE) * splitSize)
throw new IllegalArgumentException("Way too big!:
"+length+" for "+splitSize);
@@ -374,6 +389,8 @@
else
is.close();
}
+ if(freeData)
+ origData.free();
return buckets;
}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/NativeThread.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/support/io/NativeThread.java
2008-07-07 15:31:05 UTC (rev 20998)
+++ branches/saltedhashstore/freenet/src/freenet/support/io/NativeThread.java
2008-07-07 15:51:48 UTC (rev 20999)
@@ -39,11 +39,9 @@
static {
Logger.minor(NativeThread.class, "Running init()");
// Loading the NativeThread library isn't useful on macos
- _loadNative =
("Linux".equalsIgnoreCase(System.getProperty("os.name"))) &&
(NodeStarter.extBuildNumber > 18);
- Logger.debug(NativeThread.class, "Run init(): should
loadNative="+_loadNative);
- if(_loadNative) {
- //System.loadLibrary("NativeThread");
- LibraryLoader.loadNative("/freenet/support/io/",
"NativeThread");
+ boolean maybeLoadNative =
("Linux".equalsIgnoreCase(System.getProperty("os.name"))) &&
(NodeStarter.extBuildNumber > 18);
+ Logger.debug(NativeThread.class, "Run init(): should
loadNative="+maybeLoadNative);
+ if(maybeLoadNative &&
LibraryLoader.loadNative("/freenet/support/io/", "NativeThread")) {
NATIVE_PRIORITY_BASE = getLinuxPriority();
NATIVE_PRIORITY_RANGE = 20 - NATIVE_PRIORITY_BASE;
System.out.println("Using the NativeThread
implementation (base nice level is "+NATIVE_PRIORITY_BASE+')');
@@ -53,6 +51,7 @@
HAS_PLENTY_NICE_LEVELS = NATIVE_PRIORITY_RANGE
>=JAVA_PRIORITY_RANGE;
if(!(HAS_ENOUGH_NICE_LEVELS && HAS_THREE_NICE_LEVELS))
System.err.println("WARNING!!! The JVM has been
niced down to a level which won't allow it to schedule threads properly! LOWER
THE NICE LEVEL!!");
+ _loadNative = true;
} else {
// unused anyway
NATIVE_PRIORITY_BASE = 0;
@@ -60,6 +59,7 @@
HAS_THREE_NICE_LEVELS = true;
HAS_ENOUGH_NICE_LEVELS = true;
HAS_PLENTY_NICE_LEVELS = true;
+ _loadNative = false;
}
Logger.minor(NativeThread.class, "Run init(): _loadNative =
"+_loadNative);
}
@@ -118,7 +118,7 @@
/* The user has reniced freenet or we didn't use the
PacketSender to create the thread
* either ways it's bad for us.
*
- * Let's diable the renicing as we can't rely on it
anymore.
+ * Let's disable the renicing as we can't rely on it
anymore.
*/
_disabled = true;
Logger.error(this, "Freenet has detected it has been
reniced : THAT'S BAD, DON'T DO IT! Nice level detected statically:
"+NATIVE_PRIORITY_BASE+" actual nice level: "+realPrio+" on "+this);