Author: j16sdiz
Date: 2008-05-09 02:17:04 +0000 (Fri, 09 May 2008)
New Revision: 19858
Modified:
branches/saltedhashstore/freenet/src/freenet/client/ArchiveManager.java
branches/saltedhashstore/freenet/src/freenet/client/FECCodec.java
branches/saltedhashstore/freenet/src/freenet/client/async/SimpleManifestPutter.java
branches/saltedhashstore/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
branches/saltedhashstore/freenet/src/freenet/crypt/CryptoKey.java
branches/saltedhashstore/freenet/src/freenet/io/comm/MessageFilter.java
branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.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/node/Announcer.java
branches/saltedhashstore/freenet/src/freenet/node/DNSRequester.java
branches/saltedhashstore/freenet/src/freenet/node/IPDetectorPluginManager.java
branches/saltedhashstore/freenet/src/freenet/node/NodeClientCore.java
branches/saltedhashstore/freenet/src/freenet/node/RequestHandler.java
branches/saltedhashstore/freenet/src/freenet/node/SeedServerPeerNode.java
branches/saltedhashstore/freenet/src/freenet/node/TextModeClientInterface.java
branches/saltedhashstore/freenet/src/freenet/node/Version.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/FCPServer.java
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdater.java
branches/saltedhashstore/freenet/src/freenet/support/NumberedItemComparator.java
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
branches/saltedhashstore/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
branches/saltedhashstore/freenet/src/net/i2p/util/NativeBigInteger.java
Log:
Merge from build 1149(r19830)
Merge commit 'trunk' into saltedhashstore
Modified:
branches/saltedhashstore/freenet/src/freenet/client/ArchiveManager.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/client/ArchiveManager.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/client/ArchiveManager.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -39,8 +39,8 @@
public static final String METADATA_NAME = ".metadata";
private static boolean logMINOR;
- final RandomSource random;
- final Random weakRandom;
+ final RandomSource strongPRNG;
+ final Random weakPRNG;
final long maxArchiveSize;
final long maxArchivedFileSize;
@@ -72,7 +72,8 @@
* file extracted from an archive. It is stored, encrypted and padded,
in a single
* file.
* @param cacheDir The directory in which to store cached data.
- * @param random A random source for the encryption keys used by stored
files.
+ * @param random A cryptographicaly secure random source
+ * @param weakRandom A weak and cheap random source
*/
public ArchiveManager(int maxHandlers, long maxCachedData, long
maxArchiveSize, long maxArchivedFileSize, int maxCachedElements, RandomSource
random, Random weakRandom, FilenameGenerator filenameGenerator) {
maxArchiveHandlers = maxHandlers;
@@ -82,8 +83,8 @@
storedData = new LRUHashtable();
this.maxArchiveSize = maxArchiveSize;
this.maxArchivedFileSize = maxArchivedFileSize;
- this.random = random;
- this.weakRandom = weakRandom;
+ this.strongPRNG = random;
+ this.weakPRNG = weakRandom;
this.filenameGenerator = filenameGenerator;
logMINOR = Logger.shouldLog(Logger.MINOR, this);
}
@@ -475,8 +476,8 @@
TempFileBucket fb = new TempFileBucket(id, filenameGenerator);
byte[] cipherKey = new byte[32];
- random.nextBytes(cipherKey);
- PaddedEphemerallyEncryptedBucket encryptedBucket = new
PaddedEphemerallyEncryptedBucket(fb, 1024, weakRandom);
+ strongPRNG.nextBytes(cipherKey);
+ PaddedEphemerallyEncryptedBucket encryptedBucket = new
PaddedEphemerallyEncryptedBucket(fb, 1024, strongPRNG, weakPRNG);
return new TempStoreElement(myFile, fb, encryptedBucket);
}
Modified: branches/saltedhashstore/freenet/src/freenet/client/FECCodec.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/client/FECCodec.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/client/FECCodec.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -14,6 +14,8 @@
import freenet.node.PrioRunnable;
import freenet.support.Executor;
import freenet.support.Logger;
+import freenet.support.OOMHandler;
+import freenet.support.OOMHook;
import freenet.support.api.Bucket;
import freenet.support.api.BucketFactory;
import freenet.support.io.BucketTools;
@@ -27,7 +29,7 @@
* @author root
*
*/
-public abstract class FECCodec {
+public abstract class FECCodec implements OOMHook {
// REDFLAG: Optimal stripe size? Smaller => less memory usage, but more
JNI overhead
@@ -41,6 +43,8 @@
this.executor = executor;
this.k = k;
this.n = n;
+
+ OOMHandler.addOOMHook(this);
}
/**
@@ -357,8 +361,8 @@
private static int fecPoolCounter;
private synchronized static int getMaxRunningFECThreads() {
- long now = System.currentTimeMillis();
- if(now - lastPolledMaxRunningFECThreads < 5*60*1000) return
maxRunningFECThreads;
+ if (maxRunningFECThreads != -1)
+ return maxRunningFECThreads;
String osName = System.getProperty("os.name");
if(osName.indexOf("Windows") == -1 &&
(osName.toLowerCase().indexOf("mac os x") > 0) ||
(!NativeThread.usingNativeCode())) {
// OS/X niceness is really weak, so we don't want any
more background CPU load than necessary
@@ -383,11 +387,7 @@
return maxRunningFECThreads;
}
- private static int maxRunningFECThreads;
- private static int lastPolledMaxRunningFECThreads = -1;
- static {
- getMaxRunningFECThreads();
- }
+ private static int maxRunningFECThreads = -1;
/**
* A private Thread started by {@link FECCodec}...
@@ -401,47 +401,50 @@
try {
while(true) {
FECJob job = null;
- // Get a job
- synchronized(_awaitingJobs) {
- while
(_awaitingJobs.isEmpty())
-
_awaitingJobs.wait(Integer.MAX_VALUE);
- job = (FECJob)
_awaitingJobs.removeLast();
+ // Get a job
+ synchronized (_awaitingJobs) {
+ while (_awaitingJobs.isEmpty())
{
+
_awaitingJobs.wait(Integer.MAX_VALUE);
+ if (runningFECThreads >
getMaxRunningFECThreads())
+ return;
}
+ job = (FECJob)
_awaitingJobs.removeLast();
+ }
- // Encode it
- try {
- if(job.isADecodingJob)
-
job.codec.realDecode(job.dataBlockStatus, job.checkBlockStatus,
job.blockLength, job.bucketFactory);
- else {
-
job.codec.realEncode(job.dataBlocks, job.checkBlocks, job.blockLength,
job.bucketFactory);
- // Update
SplitFileBlocks from buckets if necessary
-
if((job.dataBlockStatus != null) || (job.checkBlockStatus != null)) {
- for(int
i = 0; i < job.dataBlocks.length; i++)
-
job.dataBlockStatus[i].setData(job.dataBlocks[i]);
- for(int
i = 0; i < job.checkBlocks.length; i++)
-
job.checkBlockStatus[i].setData(job.checkBlocks[i]);
- }
+ // Encode it
+ try {
+ if (job.isADecodingJob)
+
job.codec.realDecode(job.dataBlockStatus, job.checkBlockStatus, job.blockLength,
+
job.bucketFactory);
+ else {
+
job.codec.realEncode(job.dataBlocks, job.checkBlocks, job.blockLength,
job.bucketFactory);
+ // Update
SplitFileBlocks from buckets if necessary
+ if
((job.dataBlockStatus != null) || (job.checkBlockStatus != null)) {
+ for (int i = 0;
i < job.dataBlocks.length; i++)
+
job.dataBlockStatus[i].setData(job.dataBlocks[i]);
+ for (int i = 0;
i < job.checkBlocks.length; i++)
+
job.checkBlockStatus[i].setData(job.checkBlocks[i]);
}
- } catch(IOException e) {
- Logger.error(this,
"BOH! ioe:" + e.getMessage());
}
+ } catch (IOException e) {
+ Logger.error(this, "BOH! ioe:"
+ e.getMessage());
+ }
- // Call the callback
- try {
- if(job.isADecodingJob)
-
job.callback.onDecodedSegment();
- else
-
job.callback.onEncodedSegment();
-
- } catch(Throwable e) {
- Logger.error(this, "The
callback failed!" + e.getMessage(), e);
- }
+ // Call the callback
+ try {
+ if (job.isADecodingJob)
+
job.callback.onDecodedSegment();
+ else
+
job.callback.onEncodedSegment();
+ } catch (Throwable e) {
+ Logger.error(this, "The
callback failed!" + e.getMessage(), e);
+ }
}
} catch (Throwable t) {
Logger.error(this, "Caught "+t+" in "+this, t);
}
finally {
- synchronized(FECCodec.class) {
+ synchronized (_awaitingJobs) {
runningFECThreads--;
}
}
@@ -452,6 +455,20 @@
}
}
+ public void handleLowMemory() throws Exception {
+ synchronized (_awaitingJobs) {
+ maxRunningFECThreads = Math.min(1, maxRunningFECThreads
- 1);
+ _awaitingJobs.notify(); // not notifyAll()
+ }
+ }
+
+ public void handleOutOfMemory() throws Exception {
+ synchronized (_awaitingJobs) {
+ maxRunningFECThreads = 1;
+ _awaitingJobs.notifyAll();
+ }
+ }
+
/**
* An interface wich has to be implemented by FECJob submitters
*
Modified:
branches/saltedhashstore/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/client/async/SimpleManifestPutter.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/client/async/SimpleManifestPutter.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -698,7 +698,7 @@
HashMap hm = (HashMap) (target.get(before));
if(hm == null) {
hm = new HashMap();
- target.put(before, hm);
+ target.put(before.intern(), hm);
}
add(e, after, hm);
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -337,6 +337,9 @@
}
HTMLNode bookmarksBox =
content.addChild(pageMaker.getInfobox("infobox-normal",
L10n.getString("BookmarkEditorToadlet.myBookmarksTitle")));
pageMaker.getContentNode(bookmarksBox).addChild(getBookmarksList());
+
+ HTMLNode addDefaultBookmarksForm = ctx.addFormChild(content,
"", "AddDefaultBookmarks");
+ addDefaultBookmarksForm.addChild("input", new String[]{"type",
"name", "value"}, new String[]{"submit", "AddDefaultBookmarks",
L10n.getString("BookmarkEditorToadlet.addDefaultBookmarks")});
this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -168,7 +168,8 @@
if(mode >= MODE_ADVANCED){
HTMLNode navigationBar =
ctx.getPageMaker().getInfobox("navbar", l10n("configNavTitle"));
HTMLNode navigationContent =
ctx.getPageMaker().getContentNode(navigationBar).addChild("ul");
- navigationContent.addChild("a", "href",
TranslationToadlet.TOADLET_URL, l10n("contributeTranslation"));
+
if(!L10n.getSelectedLanguage().equals(L10n.FALLBACK_DEFAULT))
+ navigationContent.addChild("a", "href",
TranslationToadlet.TOADLET_URL, l10n("contributeTranslation"));
HTMLNode navigationTable =
navigationContent.addChild("table", "class", "config_navigation");
HTMLNode navigationTableRow =
navigationTable.addChild("tr");
HTMLNode nextTableCell = navigationTableRow;
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -832,10 +832,6 @@
return L10n.getString("DarknetConnectionsToadlet."+string);
}
- private static String l10nStats(String string) {
- return L10n.getString("StatisticsToadlet."+string);
- }
-
private String sortString(boolean isReversed, String type) {
return (isReversed ? ("?sortBy="+type) :
("?sortBy="+type+"&reversed"));
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -498,6 +498,8 @@
return;
}
+ short lowestQueuedPrio = RequestStarter.MINIMUM_PRIORITY_CLASS;
+
for(int i=0;i<reqs.length;i++) {
ClientRequest req = reqs[i];
if(req instanceof ClientGet) {
@@ -513,6 +515,9 @@
} else if(cg.hasFinished()) {
failedDownload.add(cg);
} else {
+ short prio = cg.getPriority();
+ if(prio < lowestQueuedPrio)
+ lowestQueuedPrio = prio;
uncompletedDownload.add(cg);
}
} else if(req instanceof ClientPut) {
@@ -522,6 +527,9 @@
} else if(cp.hasFinished()) {
failedUpload.add(cp);
} else {
+ short prio = req.getPriority();
+ if(prio < lowestQueuedPrio)
+ lowestQueuedPrio = prio;
uncompletedUpload.add(cp);
}
} else if(req instanceof ClientPutDir) {
@@ -531,6 +539,9 @@
} else if(cp.hasFinished()) {
failedDirUpload.add(cp);
} else {
+ short prio = req.getPriority();
+ if(prio < lowestQueuedPrio)
+ lowestQueuedPrio = prio;
uncompletedDirUpload.add(cp);
}
}
@@ -661,20 +672,21 @@
L10n.getString("QueueToadlet.priority6")
};
+ boolean advancedModeEnabled = core.isAdvancedModeEnabled();
+
HTMLNode legendBox =
contentNode.addChild(pageMaker.getInfobox("legend",
L10n.getString("QueueToadlet.legend")));
HTMLNode legendContent = pageMaker.getContentNode(legendBox);
HTMLNode legendTable = legendContent.addChild("table", "class",
"queue");
HTMLNode legendRow = legendTable.addChild("tr");
for(int i=0; i<7; i++){
- legendRow.addChild("td", "class", "priority" + i,
priorityClasses[i]);
+ if(i > RequestStarter.INTERACTIVE_PRIORITY_CLASS ||
advancedModeEnabled || i <= lowestQueuedPrio)
+ legendRow.addChild("td", "class", "priority" +
i, priorityClasses[i]);
}
if (reqs.length > 1 &&
SimpleToadletServer.isPanicButtonToBeShown) {
contentNode.addChild(createPanicBox(pageMaker, ctx));
}
- boolean advancedModeEnabled = core.isAdvancedModeEnabled();
-
if (!completedDownloadToTemp.isEmpty()) {
contentNode.addChild("a", "id",
"completedDownloadToTemp");
HTMLNode completedDownloadsTempInfobox =
contentNode.addChild(pageMaker.getInfobox("completed_requests",
L10n.getString("QueueToadlet.completedDinTempDirectory", new String[]{ "size"
}, new String[]{ String.valueOf(completedDownloadToTemp.size()) })));
@@ -759,7 +771,7 @@
if (advancedModeEnabled) {
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDownload, new int[] { LIST_IDENTIFIER, LIST_PRIORITY, LIST_SIZE,
LIST_MIME_TYPE, LIST_PROGRESS, LIST_PERSISTENCE, LIST_FILENAME, LIST_KEY },
priorityClasses, advancedModeEnabled, false));
} else {
-
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDownload, new int[] { LIST_FILENAME, LIST_SIZE, LIST_MIME_TYPE,
LIST_PROGRESS, LIST_PERSISTENCE, LIST_KEY }, priorityClasses,
advancedModeEnabled, false));
+
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDownload, new int[] { LIST_FILENAME, LIST_SIZE, LIST_MIME_TYPE,
LIST_PROGRESS, LIST_PRIORITY, LIST_KEY, LIST_PERSISTENCE }, priorityClasses,
advancedModeEnabled, false));
}
}
@@ -770,7 +782,7 @@
if (advancedModeEnabled) {
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedUpload, new int[] { LIST_IDENTIFIER, LIST_PRIORITY, LIST_SIZE,
LIST_MIME_TYPE, LIST_PROGRESS, LIST_PERSISTENCE, LIST_FILENAME, LIST_KEY },
priorityClasses, advancedModeEnabled, true));
} else {
-
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedUpload, new int[] { LIST_FILENAME, LIST_SIZE, LIST_MIME_TYPE,
LIST_PROGRESS, LIST_PERSISTENCE, LIST_KEY }, priorityClasses,
advancedModeEnabled, true));
+
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedUpload, new int[] { LIST_FILENAME, LIST_SIZE, LIST_MIME_TYPE,
LIST_PROGRESS, LIST_PRIORITY, LIST_KEY, LIST_PRIORITY, LIST_PERSISTENCE },
priorityClasses, advancedModeEnabled, true));
}
}
@@ -781,7 +793,7 @@
if (advancedModeEnabled) {
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDirUpload, new int[] { LIST_IDENTIFIER, LIST_FILES, LIST_PRIORITY,
LIST_TOTAL_SIZE, LIST_PROGRESS, LIST_PERSISTENCE, LIST_KEY }, priorityClasses,
advancedModeEnabled, true));
} else {
-
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDirUpload, new int[] { LIST_FILES, LIST_TOTAL_SIZE, LIST_PROGRESS,
LIST_PERSISTENCE, LIST_KEY }, priorityClasses, advancedModeEnabled, true));
+
uncompletedContent.addChild(createRequestTable(pageMaker, ctx,
uncompletedDirUpload, new int[] { LIST_FILES, LIST_TOTAL_SIZE, LIST_PROGRESS,
LIST_PRIORITY, LIST_KEY, LIST_PERSISTENCE }, priorityClasses,
advancedModeEnabled, true));
}
}
@@ -860,13 +872,14 @@
return filenameCell;
}
- private HTMLNode createPriorityCell(PageMaker pageMaker, String
identifier, short priorityClass, ToadletContext ctx, String[] priorityClasses) {
+ private HTMLNode createPriorityCell(PageMaker pageMaker, String
identifier, short priorityClass, ToadletContext ctx, String[] priorityClasses,
boolean advancedModeEnabled) {
HTMLNode priorityCell = new HTMLNode("td", "class",
"request-priority nowrap");
HTMLNode priorityForm = ctx.addFormChild(priorityCell,
"/queue/", "queueChangePriorityCell-" + identifier.hashCode());
priorityForm.addChild("input", new String[] { "type", "name",
"value" }, new String[] { "hidden", "identifier", identifier });
HTMLNode prioritySelect = priorityForm.addChild("select",
"name", "priority");
for (int p = 0; p < RequestStarter.NUMBER_OF_PRIORITY_CLASSES;
p++) {
+ if(p <= RequestStarter.INTERACTIVE_PRIORITY_CLASS &&
!advancedModeEnabled) continue;
if (p == priorityClass) {
prioritySelect.addChild("option", new String[]
{ "value", "selected" }, new String[] { String.valueOf(p), "selected" },
priorityClasses[p]);
} else {
@@ -1071,7 +1084,7 @@
requestRow.addChild(createFilenameCell(((ClientPut)
clientRequest).getOrigFilename()));
}
} else if (column == LIST_PRIORITY) {
-
requestRow.addChild(createPriorityCell(pageMaker,
clientRequest.getIdentifier(), clientRequest.getPriority(), ctx,
priorityClasses));
+
requestRow.addChild(createPriorityCell(pageMaker,
clientRequest.getIdentifier(), clientRequest.getPriority(), ctx,
priorityClasses, advancedModeEnabled));
} else if (column == LIST_FILES) {
requestRow.addChild(createNumberCell(((ClientPutDir)
clientRequest).getNumberOfFiles()));
} else if (column == LIST_TOTAL_SIZE) {
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -564,7 +564,7 @@
HTMLNode bookmarkBoxContent = bookmarkBox.addChild("div", "class",
"infobox-content");
HTMLNode bookmarksList = bookmarkBoxContent.addChild("ul", "id",
"bookmarks");
- addCategoryToList(BookmarkManager.MAIN_CATEGORY, bookmarksList,
useragent != null && useragent.indexOf("Safari") >= 0);
+ addCategoryToList(BookmarkManager.MAIN_CATEGORY, bookmarksList,
useragent != null && useragent.toLowerCase().indexOf("khtml") >= 0);
// Fetch-a-key box
HTMLNode fetchKeyBox =
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-normal",
l10n("fetchKeyLabel")));
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -210,11 +210,13 @@
if (b.hasAnActivelink != hasAnActivelink) {
return false;
}
- if(!(b.desc == null && desc == null)) {
+ if (b.desc == desc)
+ return true;
+ if (b.desc == null || desc == null)
+ return false;
if(!b.desc.equals(desc)) {
return false;
}
- }
return true;
} else {
return false;
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-05-09 02:17:04 UTC (rev 19858)
@@ -3,34 +3,30 @@
Bookmark=0
BookmarkCategory0.Name=Indexes
BookmarkCategory0.Content.BookmarkCategory=0
-BookmarkCategory0.Content.Bookmark=5
+BookmarkCategory0.Content.Bookmark=4
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/18/
+BookmarkCategory0.Content.Bookmark0.URI=USK at
0I8gctpUE32CM0iQhXaYpCMvtPPGfT4pjXm01oid5Zc,3dAcn4fX2LyxO6uCnWFTx-2HKZ89uruurcKwLSCxbZ4,AQACAAE/Ultimate-Freenet-Index/20/
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/47/
-BookmarkCategory0.Content.Bookmark2.Name=Another Index
-BookmarkCategory0.Content.Bookmark2.Description=Comprehensive categorised
index of freesites and Thaw indexes; links to everything
+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.URI=USK at
zQyF2O1o8B4y40w7Twz8y2I9haW3d2DTlxjTHPu7zc8,h2mhQNNE9aQvF~2yKAmKV1uorr7141-QOroBf5hrlbw,AQACAAE/AnotherIndex/58/
-BookmarkCategory0.Content.Bookmark1.Name=Freenet Activelink Index (warning: it
will take a long time for all the images to load!)
+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/50/
+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=A graphical freenet index
(this will take a long time to load as it preloads the sites; contains no porn)
-BookmarkCategory0.Content.Bookmark1.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index/50/
-BookmarkCategory0.Content.Bookmark4.Name=Freenet Activelink Index Text Version
(non-graphical version of FAI)
-BookmarkCategory0.Content.Bookmark4.hasAnActivelink=true
-BookmarkCategory0.Content.Bookmark4.Description=Text version of the Activelink
Index
-BookmarkCategory0.Content.Bookmark4.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index-text/14/
+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/14/
BookmarkCategory1.Name=Freenet devel's flogs
BookmarkCategory1.Content.BookmarkCategory=0
BookmarkCategory1.Content.Bookmark=5
BookmarkCategory1.Content.Bookmark4.Name=Wavey
BookmarkCategory1.Content.Bookmark4.Description=Wavey's flog
BookmarkCategory1.Content.Bookmark4.hasAnActivelink=true
-BookmarkCategory1.Content.Bookmark4.URI=USK at
yQ6xZyw6KlKgEBygbncwm0kyyH0QOtxt35V7CFngUKc,c-4iY3l2nmkumKcN4qB1CLmx1tszv8Rqnv184Ys9fgc,AQACAAE/Wavey%27s%20Freenet%20Development%20Flog/14/
+BookmarkCategory1.Content.Bookmark4.URI=USK at
yQ6xZyw6KlKgEBygbncwm0kyyH0QOtxt35V7CFngUKc,c-4iY3l2nmkumKcN4qB1CLmx1tszv8Rqnv184Ys9fgc,AQACAAE/Wavey%27s%20Freenet%20Development%20Flog/18/
BookmarkCategory1.Content.Bookmark3.Name=Zothar
BookmarkCategory1.Content.Bookmark3.Description=Zothar's flog
BookmarkCategory1.Content.Bookmark3.hasAnActivelink=true
@@ -49,7 +45,7 @@
BookmarkCategory1.Content.Bookmark0.URI=USK at
yGvITGZzrY1vUZK-4AaYLgcjZ7ysRqNTMfdcO8gS-LY,-ab5bJVD3Lp-LXEQqBAhJpMKrKJ19RnNaZMIkusU79s,AQACAAE/toad/12/
BookmarkCategory2.Name=Freenet related software and documentation
BookmarkCategory2.Content.BookmarkCategory=0
-BookmarkCategory2.Content.Bookmark=4
+BookmarkCategory2.Content.Bookmark=5
BookmarkCategory2.Content.Bookmark0.Name=Frost
BookmarkCategory2.Content.Bookmark0.Description=The official freesite of
Frost, a message board system for Freenet
BookmarkCategory2.Content.Bookmark0.hasAnActivelink=true
@@ -57,13 +53,17 @@
BookmarkCategory2.Content.Bookmark1.Name=Freenet Message System
BookmarkCategory2.Content.Bookmark1.Description=The official freesite of FMS,
a spam resistant message board system for Freenet
BookmarkCategory2.Content.Bookmark1.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark1.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/46/
-BookmarkCategory2.Content.Bookmark2.Name=Publish!
-BookmarkCategory2.Content.Bookmark2.Description=Simple guide to publishing web
sites to Freenet
+BookmarkCategory2.Content.Bookmark1.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/47/
+BookmarkCategory2.Content.Bookmark2.Name=Freemail
+BookmarkCategory2.Content.Bookmark2.Description=The official site for Freemail
- email over Freenet
BookmarkCategory2.Content.Bookmark2.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark2.URI=USK at
940RYvj1-aowEHGsb5HeMTigq8gnV14pbKNsIvUO~-0,FdTbR3gIz21QNfDtnK~MiWgAf2kfwHe-cpyJXuLHdOE,AQACAAE/publish/1/
-BookmarkCategory2.Content.Bookmark3.URI=USK at
8r-uSRcJPkAr-3v3YJR16OCx~lyV2XOKsiG4MOQQBMM,P42IgNemestUdaI7T6z3Og6P-Hi7g9U~e37R3kWGVj8,AQACAAE/freesite-HOWTO/3/
-BookmarkCategory2.Content.Bookmark3.Name=Freesite HOWTO
-BookmarkCategory2.Content.Bookmark3.Description=A more detailed explanation of
publishing freesites
+BookmarkCategory2.Content.Bookmark2.URI=USK at
xOg49GNltumTJJzj0fVzuGDpo4hJUsy2UsGQkjE7NY4,EtUH5b9gGpp8JiY-Bm-Y9kHX1q-yDjD-9oRzXn21O9k,AQACAAE/freemail/2/
+BookmarkCategory2.Content.Bookmark3.Name=Publish!
+BookmarkCategory2.Content.Bookmark3.Description=Simple guide to publishing web
sites to Freenet
BookmarkCategory2.Content.Bookmark3.hasAnActivelink=true
+BookmarkCategory2.Content.Bookmark3.URI=USK at
940RYvj1-aowEHGsb5HeMTigq8gnV14pbKNsIvUO~-0,FdTbR3gIz21QNfDtnK~MiWgAf2kfwHe-cpyJXuLHdOE,AQACAAE/publish/1/
+BookmarkCategory2.Content.Bookmark4.URI=USK at
8r-uSRcJPkAr-3v3YJR16OCx~lyV2XOKsiG4MOQQBMM,P42IgNemestUdaI7T6z3Og6P-Hi7g9U~e37R3kWGVj8,AQACAAE/freesite-HOWTO/3/
+BookmarkCategory2.Content.Bookmark4.Name=Freesite HOWTO
+BookmarkCategory2.Content.Bookmark4.Description=A more detailed explanation of
publishing freesites
+BookmarkCategory2.Content.Bookmark4.hasAnActivelink=true
End
Modified: branches/saltedhashstore/freenet/src/freenet/crypt/CryptoKey.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/crypt/CryptoKey.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/crypt/CryptoKey.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -11,6 +11,7 @@
import java.math.BigInteger;
import freenet.support.HexUtil;
+import freenet.support.Logger;
public abstract class CryptoKey implements CryptoElement, Serializable {
@@ -33,6 +34,7 @@
throw (CryptFormatException) e;
if (e instanceof IOException)
throw (IOException) e;
+ Logger.error(CryptoKey.class, "Unknown exception while
reading CryptoKey", e);
return null;
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/io/comm/MessageFilter.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/io/comm/MessageFilter.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/io/comm/MessageFilter.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -37,7 +37,7 @@
private PeerContext _droppedConnection;
private MessageType _type;
private HashMap _fields = new HashMap();
- private Vector _fieldList = new Vector(1,1);
+ private List _fieldList = new LinkedList();
private PeerContext _source;
private long _timeout;
/** If true, timeouts are relative to the start of waiting, if false, they
are relative to
@@ -177,8 +177,9 @@
return false;
}
synchronized (_fields) {
- for (int i = 0; i < _fieldList.size(); i++) {
- String fieldName = (String) _fieldList.get(i);
+ ListIterator it = _fieldList.listIterator();
+ while (it.hasNext()) {
+ String fieldName = (String) it.next();
if (!m.isSet(fieldName)) {
return false;
}
Modified: branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -53,11 +53,13 @@
public Peer(DataInputStream dis) throws IOException {
addr = new FreenetInetAddress(dis);
_port = dis.readInt();
+ if(_port > 65535 || _port < 0) throw new IOException("bogus
port");
}
public Peer(DataInputStream dis, boolean checkHostnameOrIPSyntax)
throws HostnameSyntaxException, IOException {
addr = new FreenetInetAddress(dis, checkHostnameOrIPSyntax);
_port = dis.readInt();
+ if(_port > 65535 || _port < 0) throw new IOException("bogus
port");
}
/**
@@ -68,6 +70,7 @@
public Peer(InetAddress address, int port) {
addr = new FreenetInetAddress(address);
_port = port;
+ if(_port > 65535 || _port < 0) throw new
IllegalArgumentException("bogus port");
}
/**
@@ -91,6 +94,7 @@
String strport = physical.substring(offset+1);
try {
_port = Integer.parseInt(strport);
+ if(_port < 0 || _port > 65535) throw new
PeerParseException("Invalid port "+_port);
} catch (NumberFormatException e) {
throw new PeerParseException(e);
}
@@ -121,6 +125,7 @@
String strport = physical.substring(offset+1);
try {
_port = Integer.parseInt(strport);
+ if(_port < 0 || _port > 65535) throw new
PeerParseException("Invalid port "+_port);
} catch (NumberFormatException e) {
throw new PeerParseException(e);
}
@@ -130,6 +135,7 @@
this.addr = addr;
if(addr == null) throw new NullPointerException();
this._port = port;
+ if(_port > 65535 || _port < 0) throw new
IllegalArgumentException("bogus port");
}
public boolean isNull() {
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
2008-05-09 02:17:04 UTC (rev 19858)
@@ -85,6 +85,10 @@
ConfigToadlet.fproxy=FProxy
ConfigToadlet.fullTitle=Freenet-Knoten-Konfiguration von ${name}
ConfigToadlet.logger=Logger
+ConfigToadlet.modeAdvanced=Erweiterte Einstellungen
+ConfigToadlet.modeAdvancedTooltip=Optionen, die nur erfahrene Freenet-Benutzer
und -Entwickler benutzen m?ssen
+ConfigToadlet.modeSimple=Einfache Einstellungen
+ConfigToadlet.modeSimpleTooltip=Optionen, die alle Benutzer kennen sollten
ConfigToadlet.node=Knoten
ConfigToadlet.pluginmanager=Plugin-Manager
ConfigToadlet.pluginmanager2=Plugin-Manager 2
@@ -1005,7 +1009,7 @@
SSL.versionLong=SSL-Version: SSLv3 oder TLSv1 (Standard: SSLv3)
ShortOption.parseError=Kann den Wert nicht als String-Array
(Zeichenfolgen-Feld) erkennen: ${error}
SimpleToadletServer.advancedMode=Erweiterten Modus aktivieren?
-SimpleToadletServer.advancedModeLong=Aktiviert die Anzeige von erweiterten
Einstellungen und Informationen in der Web-Oberfl?che. Diese Einstellung sollte
in den meisten F?llen auf "nein" stehen.
+SimpleToadletServer.advancedModeLong=Aktiviert die standardm??ige Anzeige von
erweiterten Einstellungen und Informationen in der Web-Oberfl?che. Diese
Einstellung sollte in den meisten F?llen auf "nein" stehen.
SimpleToadletServer.allowedFullAccess=Hosts die vollen Zugriff auf FProxy
haben (Warnung lesen)
SimpleToadletServer.allowedFullAccessLong=Hosts (Computer) die vollen Zugriff
(z.B. Konfiguration ?ndern, Neustarten usw.) auf den Knoten haben. WARNUNG:
Seien Sie vorsichtig wem Sie vollen FProxy-Zugriff geben!
SimpleToadletServer.allowedHosts=Hostnamen oder IP-Adressen denen es erlaubt
ist sich mit FProxy zu verbinden.
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-05-09 02:17:04 UTC (rev 19858)
@@ -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
@@ -97,7 +101,7 @@
ConfigToadlet.toadletsymlinker=toadletsymlinker
ConfigToadlet.true=oui
ConfigToadlet.wrapper=wrapper
-ConfigToadlet.wrapperSettingsTitle=Param?tres du wrapper
+ConfigToadlet.wrapperSettingsTitle=Param?tres du Wrapper
ConfigToadlet.node.load=noeud.charge
ConfigToadlet.node.opennet=noeud.opennet
ConfigToadlet.node.scheduler=noeud.ordonnanceur
@@ -482,11 +486,20 @@
IPDetectorPluginManager.direct=Il semble que vous soyez connect? directement ?
internet. F?licitations, vous devriez pouvoir vous connecter ? n'importe quel
autre noeud Freenet.
IPDetectorPluginManager.directTitle=Connexion directe ? internet d?tect?e
IPDetectorPluginManager.forwardPort=Il semble que votre noeud soit derri?re un
NAT (voir la page Raccordemement r?seau pour plus de d?tails). Vous devriez
transf?rer le ports UDP (pas TCP) ${port} si possible, pour am?liorer vos
connexions. Vous l'avez peut-?tre d?j? fait ; il faut du temps ? Freenet pour
d?tecter le transfert. Consultez ${link}ceci${/link} pour plus de d?tails.
+IPDetectorPluginManager.forwardPortMaybeForwarded=Il semble que votre noeud
soit derri?re un NAT (plus de d?tails sur la page Raccordement R?seau). Vous
devriez transf?rer le port UDP (pas TCP) ${port} si vous le pouvez. Vous l'avez
peut-?tre d?j? fait : il faut longtemps ? Freenet pour le d?tecter. Consultez
${link}cette page${/link} pour plus de d?tails.
+IPDetectorPluginManager.forwardPortNotForwarded=Il semble que votre noeud soit
derri?re un NAT (plus de d?tails sur la page Raccordement R?seau). Vous devriez
transf?rer le port UDP (pas TCP) ${port} si vous le pouvez. Il semble que ce
port ne soit pas transf?r?, bien qu'il soit difficile pour Freenet de le
savoir. Consultez ${link}cette page${/link} pour plus de d?tails.
IPDetectorPluginManager.forwardPortShort=Veuillez transf?rer le port UDP
${port}.
+IPDetectorPluginManager.forwardPortShortMaybeForwarded=Veuillez transf?rer le
port UDP ${port} (vous l'avez peut-?tre d?j? fait).
+IPDetectorPluginManager.forwardPortShortNotForwarded=Veuillez transf?rer le
port UDP ${port} (il semble que ce ne soit pas fait).
IPDetectorPluginManager.forwardTwoPorts=Il semble que votre noeud soit
derri?re un NAT (voir la page Raccordemement r?seau pour plus de d?tails). Vous
devriez transf?rer les ports UDP (pas TCP) ${port1} et ${port2} si possible,
pour am?liorer vos connexions. Vous l'avez peut-?tre d?j? fait ; il faut du
temps ? Freenet pour d?tecter le transfert. Consultez ${link}ceci${/link} pour
plus de d?tails.
+IPDetectorPluginManager.forwardTwoPortsMaybeForwarded=Il semble que votre
noeud soit derri?re un NAT (plus de d?tails sur la page Raccordement R?seau).
Vous devriez transf?rer les ports UDP (pas TCP) ${port1} et ${port2} si vous le
pouvez. Vous l'avez peut-?tre d?j? fait ; il faut longtemps ? Freenet pour le
d?tecter. Consultez ${link}cette page${/link} pour plus de d?tails.
+IPDetectorPluginManager.forwardTwoPortsNotForwarded=Il semble que votre noeud
soit derri?re un NAT (plus de d?tails sur la page Raccordement R?seau). Vous
devriez transf?rer les ports UDP (pas TCP) ${port1} et ${port2} si vous le
pouvez. Il semble que ces ports ne soient pas transf?r?s, bien qu'il soit
difficile pour Freenet de le savoir. Consultez ${link}cette page${/link} pour
plus de d?tails.
IPDetectorPluginManager.forwardTwoPortsShort=Veuillez transf?rer les ports UDP
${port1} et ${port2}.
+IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=Veuillez transf?rer
les ports UDP ${port1} et ${port2} (vous l'avez peut-?tre d?j? fait).
+IPDetectorPluginManager.forwardTwoPortsShortNotForwarded=Veuillez transf?rer
les ports UDP ${port1} et ${port2} (il semble qu'ils ne le soient pas).
IPDetectorPluginManager.fullCone=Is semble que vous soyer derri?re un routeur
NAT "full cone". F?licitations, vous devriez ?tre capable de vous connecter ?
n'importe quel autre noeud.
IPDetectorPluginManager.fullConeTitle=Routeur NAT (full cone) d?tect?
+IPDetectorPluginManager.maybeAlreadyForwarded=C'est peut-?tre d?j? fait (c'est
difficile pour Freenet de le savoir ? coup s?r).
IPDetectorPluginManager.noConnectivity=Il semble que votre connexion internet
ne supporte pas l'UDP. A moins que la d?tection se trompe, il n'est pas
possible de faire fonctionner Freenet sur cet ordinateur pour le moment.
IPDetectorPluginManager.noConnectivityTitle=Pas de connexion UDP
IPDetectorPluginManager.noConnectivityshort=Grave probl?me de connexion : Pas
de connexion UDP, Freenet ne peut pas fonctionnez !
@@ -932,10 +945,10 @@
QueueToadlet.identifier=Identifiant
QueueToadlet.insertAs=Ins?rer comme :
QueueToadlet.insertFile=Ins?rer un fichier
-QueueToadlet.insertFileBrowseLabel=Parcourir
+QueueToadlet.insertFileBrowseLabel=Parcourir les fichiers sur le disque
QueueToadlet.insertFileCompressLabel=Compresser
QueueToadlet.insertFileInsertFileLabel=Ins?rer le fichier
-QueueToadlet.insertFileLabel=Fichier
+QueueToadlet.insertFileLabel=Envoyer un fichier ? partir du navigateur (LENT)
QueueToadlet.insertFileResetForm=Remettre ? z?ro
QueueToadlet.key=Cl?
QueueToadlet.legend=L?gende
@@ -1002,7 +1015,7 @@
SSL.versionLong=Version de SSL, SSLv3 ou TLSv1 (SSLv3 par d?faut)
ShortOption.parseError=Cette valeur n'est pas un entier sur 16 bits : ${val}
SimpleToadletServer.advancedMode=Activer le mode avanc? ?
-SimpleToadletServer.advancedModeLong=Active l'affichage des options et des
informations avanc?es dans l'interface. Ce param?tre devrait ?tre d?sactiv?
dans la plupart des cas.
+SimpleToadletServer.advancedModeLong=Active l'affichage des options et des
informations avanc?es dans l'interface web par d?faut. Ce param?tre devrait
?tre d?sactiv? dans la plupart des cas.
SimpleToadletServer.allowedFullAccess=Machines ayant un acc?s complet ? FProxy
(lire l'avertissement)
SimpleToadletServer.allowedFullAccessLong=Machines ayant un acc?s complet
(configuration, red?marrage, etc.) au noeud. ATTENTION : Faites bien attention
? qui vous donnez un acc?s FProxy complet !
SimpleToadletServer.allowedHosts=Noms d'h?tes et adresses IP autoris?es ? se
connecter ? FProxy.
@@ -1011,8 +1024,8 @@
SimpleToadletServer.bindToLong=Adresse IP o? ?couter
SimpleToadletServer.cannotChangePortOnTheFly=Impossible de changer le port
FProxy ? la vol?e
SimpleToadletServer.couldNotChangeBindTo=Impossible de changer l'adresse
d'?coute de FProxy : ${error}.
-SimpleToadletServer.cssName=Nom du CSS
-SimpleToadletServer.cssNameLong=Nom de la feuille de style que FProxy doit
utiliser
+SimpleToadletServer.cssName=Th?me de l'interface web
+SimpleToadletServer.cssNameLong=Choisissez un th?me pour l'interface web de
Freenet
SimpleToadletServer.cssOverride=Utiliser un CSS personnalis? (ATTENTION !)
SimpleToadletServer.cssOverrideCantRead=Le fichier CSS personnalis? est
introuvable : ${filename}
SimpleToadletServer.cssOverrideLong=Ce param?tre vous permet d'utiliser un CSS
personnalis?. ATTENTION : les CSS peuvent ?tre dangereux et ne sont pas filtr?s
! Utilisez-le ? vos risques et p?rils. (vous devriez contacter devl at
freenetproject pour qu'il soit inclus dans la distribution principale ;) )
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-05-09 02:17:04 UTC (rev 19858)
@@ -4,7 +4,7 @@
Announcer.announceAlertTitle=Announce Nodo
Announcer.announceDetails=Il nodo ha recentemente inoltrato
${recentSentAnnouncements} annunci, ${runningAnnouncements} dei quali ancora in
corso, ed aggiunto ${addedNodes} nodi (${refusedNodes} nodi hanno rifiutato la
connessione). In questo momento il nodo ? connesso a ${connectedSeednodes}
seednode e sta cercando di connettersi ad altri ${disconnectedSeednodes}.
Announcer.announceDisabledTooOld=Il nodo ? oodo obsoleto ed inadatto alla
connessione con la rete Freenet attuale. L'annuncio ? stato diabilitato in
quanto comunque inutile. Si prega di aggiornare il nodo appena possibile
(auto-aggiornamento potrebbe essere in attesa di input o disabilitato)
-Announcer.announceDisabledTooOldShort=Il nodo ha tentato di connettersi alla
rete ma la tua versione di Freenet ? obsoleta. Dovresti aggiornarla!
+Announcer.announceDisabledTooOldShort=Il nodo non riesce a connettersi alla
rete perch? la versione di Freenet utilizzata ? obsoleta. Si prega di eseguire
l'aggiornamento.
Announcer.announceDisabledTooOldTitle=Annuncio disabilitato (obsoleto)
Announcer.announceLoading=Il nodo sta caricando il file seednodes in modo da
poter provare ad annunciare al resto della rete. Announcement pu? richiedere
alcuni minuti.
Announcer.coolingOff=per i prossimi ${time} secondi, il nodo aspetter? che i
nodi che ha annunciato si connettano; se non ci saranno abbastanza nodi prover?
con un altro nodo.
@@ -44,23 +44,23 @@
BookmarkEditorToadlet.myBookmarksTitle=I Miei Segnalibri
BookmarkEditorToadlet.nameLabel=Nome :
BookmarkEditorToadlet.paste=Incolla
-BookmarkEditorToadlet.pasteOrCancel=Clicka su un'icona 'incolla' o cancella.
+BookmarkEditorToadlet.pasteOrCancel=Clicca su un'icona 'incolla' o cancella.
BookmarkEditorToadlet.pasteTitle=Taglia/Incolla
BookmarkEditorToadlet.save=Salva
BookmarkEditorToadlet.title=Modifica Preferiti
BookmarkEditorToadlet.urlDecodeError=Errore nella decodifica della URL
BookmarkItem.bookmarkUpdated=Il sito ${name} ? stato aggiornato all'edizione
${edition}.
-BookmarkItem.bookmarkUpdatedShort=Freesite ${name} aggiornato.
+BookmarkItem.bookmarkUpdatedShort=Freesite aggiornato: ${name}
BookmarkItem.bookmarkUpdatedTitle=${name}: link aggiornato
BookmarkItem.bookmarkUpdatedWithLink=Il Sito ${link}${name}${/link} ? stato
aggiornato all'edizione ${edition}.
BookmarkItem.deleteBookmarkUpdateNotification=Elimina notifica
BookmarkItem.unnamedBookmark=Segnalibro Senza Nome
BookmarkManager.list=Segnalibri
BookmarkManager.listLong=Lista dei freesite preferiti
-BookmarkManager.malformedBookmark=Segnalibro Malformato
+BookmarkManager.malformedBookmark=Segnalibro malformato
BooleanOption.parseError=Booleano non riconosciuto: ${val} - prova "vero o
falso"
BuildOldAgeUserAlert.tooOld=Il software di questo nodo ? antecedente alla pi?
vecchia versione (Build #${lastgood}) utilizzabile dai peer aggiornati ai quali
si cerca di connettersi. E' necessario aggiornare il nodo al pi? presto
possibile; non sar? possibile connettersi ai peer etichettati "TROPPO RECENTE"
finch? il nodo non sar? stato aggiornato (il nodo va tenuto aggiornato o si
rischia di essere esclusi dalla rete Freenet)
-BuildOldAgeUserAlert.tooOldShort=Su questo nodo sta girando una versione
talmente vecchia di Freenet per cui non ? possible connettersi ai propri peers.
Aggiornare per favore!
+BuildOldAgeUserAlert.tooOldShort=Il nodo sta utilizzando una versione obsoleta
di Freenet, che rende imossibile collegarsi alla rete. Si prega di eseguire
l'aggiornamento al pi? presto possibile.
BuildOldAgeUserAlert.tooOldTitle=Versione obsoleta
CSSTokenizerFilter.deletedDisallowedString=Stringa non permessa eliminata
CSSTokenizerFilter.deletedUnmatchedChar=Ignorato char non corrispondente:
@@ -68,8 +68,8 @@
CSSTokenizerFilter.deletedUnofficialIdentWithURL=Eliminata ident ufficiosa con
url
CSSTokenizerFilter.invalidURLContents=Contenuto della url() non valido
CSSTokenizerFilter.supplementalCharsNotSupported=CARATTERI UCS-4 OLTRE 0xFFFF
NON SUPPORTATI!
-CSSTokenizerFilter.unknownAtIdentifierLabel=Sconosciuto @identifier:
-ClockProblemDetectedUserAlert.shortText=L'orologio del computer non ?
sincronizzato, quindi Freenet non pu? connettersi.
+CSSTokenizerFilter.unknownAtIdentifierLabel=@identifier sconosciuto:
+ClockProblemDetectedUserAlert.shortText=Freenet non pu? connettersi perch?
l'orologio del computer non ? sincronizzato.
ClockProblemDetectedUserAlert.text=Freenet ha rilevato che l'orologio di
sistema (ora e data) non ? regolato correttamente. Il nodo non potr? funzionare
correttamente finch? non sar? stato riavviato dopo aver regolato l'orologio.
ClockProblemDetectedUserAlert.title=L'orologio del computer non ? regolato
correttamente.
ConfigToadlet.appliedFailureExceptions=Le modifiche alla configurazione sono
state applicate con le seguenti eccezioni:
@@ -87,6 +87,10 @@
ConfigToadlet.fullTitle=Configurazione del Nodo Freenet di ${name}
ConfigToadlet.homepage=Homepage del Nodo
ConfigToadlet.logger=log
+ConfigToadlet.modeAdvanced=Opzionni di configurazione avanzate
+ConfigToadlet.modeAdvancedTooltip=Opzioni di configurazione che dovrebbero
usare solo gli utenti avanzati di Freenet e gli sviluppatori.
+ConfigToadlet.modeSimple=Opzioni di configurazione Semplici
+ConfigToadlet.modeSimpleTooltip=Opzioni di configurazione che tutti gli utenti
dovrebbero conoscere.
ConfigToadlet.node=nodo
ConfigToadlet.pluginmanager=pluginmanager
ConfigToadlet.pluginmanager2=pluginmanager2
@@ -117,11 +121,11 @@
ConnectionsToadlet.nodeStatus.CONNECTION ERROR=ERRORE DI CONNESSIONE
ConnectionsToadlet.nodeStatus.DISABLED=DISABILITATO
ConnectionsToadlet.nodeStatus.DISCONNECTED=DISCONNESSO
-ConnectionsToadlet.nodeStatus.DISCONNECTING=IN DISCONNESSIONE
+ConnectionsToadlet.nodeStatus.DISCONNECTING=DISCONNESSIONE IN CORSO
ConnectionsToadlet.nodeStatus.LISTEN ONLY=SOLO ASCOLTO
ConnectionsToadlet.nodeStatus.LISTENING=IN ASCOLTO
ConnectionsToadlet.nodeStatus.NEVER CONNECTED=MAI CONNESSO
-ConnectionsToadlet.nodeStatus.ROUTING DISABLED=NO INSTRADAMENTO TRAFFICO
+ConnectionsToadlet.nodeStatus.ROUTING DISABLED=NON STA INSTRADANDO TRAFFICO
ConnectionsToadlet.nodeStatus.TOO NEW=TROPPO RECENTE
ConnectionsToadlet.nodeStatus.TOO OLD=OBSOLETO
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=STATUS NON DETERMINATO
@@ -164,7 +168,7 @@
DarknetConnectionsToadlet.add=Aggiungi
DarknetConnectionsToadlet.addPeerTitle=Aggiungi un peer
DarknetConnectionsToadlet.alreadyInReferences=Questa referenza ? gi? in lista.
-DarknetConnectionsToadlet.backedOff=Connesso ma respinto: Siamo connessi a
questi peer ma siamo da essi respinti, quindi non li stiamo utilizzando per
l'instradamento delle richieste
+DarknetConnectionsToadlet.backedOff=Connesso ma respinto: Il nodo ? connesso a
questi peer ma la la connessione viene rifiutata e quindi i peer in questione
non vengono al momento utilizzati per l'instradamento delle richieste
DarknetConnectionsToadlet.backedOffShort=Respinti
DarknetConnectionsToadlet.bursting=Non connesso e bursting: per un breve
periodo, il nodo sta tentando di connettersi a questi peer perch? l'utenete ha
impostato burstOnly su di essi
DarknetConnectionsToadlet.burstingShort=Bursting
@@ -175,7 +179,7 @@
DarknetConnectionsToadlet.cantParseTryAgain=Non ? stato possibile interpretare
it testo come refernza di un nodo: (${error}).
DarknetConnectionsToadlet.cantParseWrongEnding=Non ? stato possibile
interpretare le referenza: L'ultimo rigo dovrebbe contenere solo la parola End,
esso contiene invece: ${end}
DarknetConnectionsToadlet.clockProblem=L'orologio di sitema e l'orologio del
nodo differiscono di oltre 24 ore. La connessione ? stata disabilitata perch?
questo pu? causare problemi con l'aggiornamento e con i client.
-DarknetConnectionsToadlet.clockProblemShort=Problema relativo all' orologio
+DarknetConnectionsToadlet.clockProblemShort=Problema di sincronizzazione
orologio
DarknetConnectionsToadlet.confirmRemoveNode=Conferma rimozione di
"+peerNodes[i].getName()+" ? Rimuovere un nodo che ? stato disconnesso per meno
di una settimana non ? consigliabile; si consiglia attendere ancora un po',
considerando che potrebbe trattarsi di un problema temporaneo, e che ci sono
utenti che non hanno la possibilit? lasciar girare il proprio nodo giorno e
notte.
DarknetConnectionsToadlet.confirmRemoveNodeTitle=Conferma
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=Rimozione Nodo
@@ -232,8 +236,8 @@
DarknetConnectionsToadlet.referenceCopyWarning=La referenza del nodo va
copiata ${bold}COSI' COME E'${/bold}. Qualsiasi modificazione la render?
${bold}inutilizzabile${/bold}..
DarknetConnectionsToadlet.remove=Elimina!
DarknetConnectionsToadlet.removePeers=Elimina i peer selezionati
-DarknetConnectionsToadlet.routingDisabled=No instradamento traffico (la
connessione tra nodo locale e remoto ? attiva ma uno dei due rifiuta di
instradare traffico)
-DarknetConnectionsToadlet.routingDisabledShort=No instradamento traffico
+DarknetConnectionsToadlet.routingDisabled=Non sta instradando traffico: (la
connessione tra nodo locale e remoto ? attiva ma uno dei due rifiuta di
instradare traffico)
+DarknetConnectionsToadlet.routingDisabledShort=Non sta instradando traffico
DarknetConnectionsToadlet.seedClients=Nodi per i quali il nodo locale sta
facendo da seednode.
DarknetConnectionsToadlet.seedClientsShort=Seeding per
DarknetConnectionsToadlet.seedServers=Nodi attualmente usati come seednode.
@@ -257,7 +261,7 @@
DarknetConnectionsToadlet.urlReference=Inserire qui la URL della referenza:
DarknetConnectionsToadlet.versionTitle=Versione
ExtOldAgeUserAlert.extTooOld=Il file freenet-ext.jar sembra essere corrotto o
obsoleto: Per l'aggiornamento usare
http://downloads.freenetproject.org/alpha/freenet-ext.jar.
-ExtOldAgeUserAlert.extTooOldShort=Il file freenet-ext.jar ? vecchio. Per
favore aggiornalo.
+ExtOldAgeUserAlert.extTooOldShort=Il file freenet-ext.jar ? obsoleto. Si prega
di aggiornarlo.
ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext troppo vecchio
FProxyToadlet.abortToHomepage=Interrompi e ritorna alla homepage di FProxy
FProxyToadlet.alerts=Messaggi di stato dettagliati
@@ -300,7 +304,7 @@
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.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}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.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).
@@ -326,7 +330,7 @@
FProxyToadlet.welcomeTitle=Home
FcpServer.allowedHosts=Host abilitati (Leggere l'avvertenza)
FcpServer.allowedHostsFullAccess=Host ai quali ? consentito accesso pieno
-FcpServer.allowedHostsFullAccessLong=Gli indirizzi IP ai quali e' consentito
pienamente l'accesso al nodo. I client su questi IP possono riavviare il nodo,
riconfigurarlo ecc. Attenzione: a *tutti* I client e' consentito di fare I/O
diretto sul disco
+FcpServer.allowedHostsFullAccessLong=Indirizzi IP ai quali e' consentito pieno
accesso al nodo. I client su questi IP possono riavviare il nodo,
riconfigurarlo ecc. Attenzione: a *tutti* I client e' consentito di fare I/O
diretto sul disco
FcpServer.allowedHostsLong=Indirizzi IP ai quali ? consentito connettersi al
server FCP. Pu? essere una lista di di IP singoli separati da virgole e
indirizzi IP in formato CIDR come 192.168.0.0/24. AVVERTENZA! Chiunque abbia
accesso a FCP potr? caricare su Freenet qualsiasi file al quale il nodo abbia
accesso e scaricare su disco qualsiasi file da Freenet (i file esistenti non
verranno sovrascritti)
FcpServer.assumeDownloadDDAIsAllowed=Presumere che il download DDA sia
permesso?
FcpServer.assumeDownloadDDAIsAllowedLong=Presumere che il download DDA sia
permesso? Se impostato su 'false' bisogner? fare una TestDDARequest prima di
ogni accesso DDA
@@ -334,7 +338,7 @@
FcpServer.assumeUploadDDAIsAllowedLong=Presumere che l'upload DDA Sia
permesso? Se impostato su 'falso', bisogner? fare una TestDDARequest prima di
ogni accesso DDA.
FcpServer.bindTo=Indirizzo IP collegato
FcpServer.bindToLong=Indirizzo IP collegato al server FCP.
-FcpServer.cannotStartOrStopOnTheFly=Non ? possibile fermare il server FCP "al
volo"
+FcpServer.cannotStartOrStopOnTheFly=Non ? possibile arrestare il server FCP
"al volo"
FcpServer.couldNotChangeBindTo=Non ? stato possibile modificare l'indirizzo
FCP collegato: ${error}.
FcpServer.downloadsFileCanCreateCannotReadOrWrite=Il file ? stato creato ma
non ? possibile leggerlo e scriverlo
FcpServer.downloadsFileDoesNotExistCannotCreate=Il file non esiste e non ?
possibile crearlo
@@ -368,7 +372,7 @@
FetchException.longError.2=Il nodo non sa cosa fare dello splitfile
FetchException.longError.20=URI non valida
FetchException.longError.21=Troppo grande
-FetchException.longError.22=Metadata troppo grande
+FetchException.longError.22=Volume dei metadati troppo grande
FetchException.longError.23=Troppi blocchi per segmento
FetchException.longError.24=Sono necessarie pi? metastrings (componenti di
percorso) nella URI
FetchException.longError.25=Annullato
@@ -398,7 +402,7 @@
FetchException.shortError.2=Splitfile metadati sconosciuto
FetchException.shortError.20=URI non valida
FetchException.shortError.21=Troppo grande
-FetchException.shortError.22=Metadati troppo grandi
+FetchException.shortError.22=Volume di metadati troppo grande
FetchException.shortError.23=Troppi blocchi per segmento
FetchException.shortError.24=Non abbastanza meta-strings
FetchException.shortError.25=Annullato da caller
@@ -418,17 +422,17 @@
FileOffer.askUserTitle=Trasferimento file diretto.
FileOffer.commentLabel=Commenti:
FileOffer.failedReceiveHeader=Non ? stato possibile completare il
trasferimento del file ${filename} da ${node}.
-FileOffer.failedReceiveShort=Il trasferimento di ${filename} da ${node} ?
fallito.
+FileOffer.failedReceiveShort=Trasferimento di ${filename} da ${node} fallito.
FileOffer.failedReceiveTitle=Trasferimento fallito
FileOffer.fileLabel=File:
FileOffer.mimeLabel=MIME Type:
FileOffer.offeredFileHeader=Il nodo ${name} offre il file:
-FileOffer.offeredFileShort=Il tuo peer amico ${node} ti sta offrendo il file
${filename}.
+FileOffer.offeredFileShort=Il peer ${node} ha inviato il file ${filename}.
FileOffer.rejectTransferButton=Rifiuta trasferimento
FileOffer.senderLabel=Mittente:
FileOffer.sizeLabel=Dimensioni:
FileOffer.succeededReceiveHeader=Il trasferimento del file ${filename} da
${node} ? stato completato.
-FileOffer.succeededReceiveShort=${filename} correttamente ricevuto da ${node}.
+FileOffer.succeededReceiveShort=${filename} ? stato ricevuto da ${node}.
FileOffer.succeededReceiveTitle=Trasferimento file completato
FirstTimeWizardToadlet.bandwidthLimit=Limitazioni dell'ampiezza di banda
FirstTimeWizardToadlet.bandwidthLimitLong=Scegliere il tipo di connessione e
la velocit? dal drop-down menu.
@@ -451,8 +455,8 @@
FirstTimeWizardToadlet.iDoTrust=Possiamo fidarci degli utenti connessi a
${interface} (${ip}) ?
FirstTimeWizardToadlet.isNetworkTrusted=La rete locale ? affidabile?
FirstTimeWizardToadlet.isNetworkTrustedLong=La rete locale ? affidabile?
Rispondendo di si a questa domanda, tutti i servizii forniti dal nodo Freenet
saranno pienamente accessibili da chiunque sul network suddetto. E' possibile
configurare un accesso pi? selettivo attraverso la pagina "configurazione" dopo
aver completato questo wizard.
-FirstTimeWizardToadlet.memoryLimit=Memoria utilizzata
-FirstTimeWizardToadlet.memoryLimitLong=Quanta memoria vuoi permettere a
Freenet di utilizzare? Se hai molti download o upload in coda, Freenet
necessiter? di pi? memoria. Suggeriamo di non scendere sotto i 128 Mb a meno
che tu non sia realmente a corto di RAM. Se hai 1 Gb o pi?, dovresti settare
almeno a 256 Mb. La modific? sar? effettiva al prossimo riavvio di Freenet.
+FirstTimeWizardToadlet.memoryLimit=Uso di memoria
+FirstTimeWizardToadlet.memoryLimitLong=Specifica il valore massimo della
memoria utilizzabile da Freenet. Il nodo ha bisogno di pi? memoria se ci sono
molti file in coda per il download/upload. Si raccomanda di non impostare
questa opzione per un valore inferiore a 128MB tranne nel caso in cui la
memoria totale a disposizione sia veramente poca. Se il computer ha 1GB di
memoria RAM o pi?, si consiglia di usare almeno 256MB. Il cambiamento avr?
effetto dopo aver riavviato Freenet.
FirstTimeWizardToadlet.noNetworkIF=Non ? stata trovata nessuna interfaccia di
rete addizionale
FirstTimeWizardToadlet.noNetworkIFLong=Freenet non ha trovato altre interfacce
di rete, quindi dar? per scontato che l'utente si connetter? dal computer
locale e solo da quello.
FirstTimeWizardToadlet.opennetNo=Si, ho almeno 5 amici che usano Freenet e
aggiunger? i loro dati alla pagina degli Amici.
@@ -466,17 +470,17 @@
FirstTimeWizardToadlet.step3Title=Configurazione automatica di Freenet -
Limiti ampiezza di banda
FirstTimeWizardToadlet.step4Title=Freenet first time wizard! - Dimensioni
magazzino dati (datastore)
FirstTimeWizardToadlet.step5Title=Configurazione Automatica Freenet -
Configurazione rete
-FirstTimeWizardToadlet.step6Title=Configurazione guidata del primo avvio di
Freenet! - Utilizzo della memoria
+FirstTimeWizardToadlet.step6Title=Configurazione Automatica Freenet -
Congratulazioni, il nodo ? ora configurato.
FirstTimeWizardToadlet.step7Title=Configurazione Automatica Freenet -
Congratulazioni, il nodo ? ora configurato.
FirstTimeWizardToadlet.tenPercentDisk=(= 10% di spazio libero su disco)
FirstTimeWizardToadlet.warningTitle=Avvertenza!
-FirstTimeWizardToadlet.welcomeInfoboxContent1=Benvenuti in Configurazione
Automatica Freenet, che vi permetter? di configurare Freenet e cominciare ad
usarlo velocemente e facilmente.
+FirstTimeWizardToadlet.welcomeInfoboxContent1=Benvenuti nella Configurazione
Automatica Freenet, che vi permetter? di configurare Freenet e cominciare ad
usarlo velocemente e facilmente.
FirstTimeWizardToadlet.welcomeInfoboxTitle=Benevenuti in Configurazione
Automatica Freenet
-FirstTimeWizardToadlet.memory.128M=128Mb - stretto necessario
-FirstTimeWizardToadlet.memory.192M=192Mb - ragionevole
-FirstTimeWizardToadlet.memory.256M=256Mb - se hai almeno 1GB di RAM
-FirstTimeWizardToadlet.memory.512M=512Mb - se hai un sacco di RAM
-FirstTimeWizardToadlet.memory.64M=64MB - se sei davvero disperato
+FirstTimeWizardToadlet.memory.128M=128Mb - Il minimo indispensabile
+FirstTimeWizardToadlet.memory.192M=192Mb - Default ragionevole.
+FirstTimeWizardToadlet.memory.256M=256Mb - Per computer con almeno 1GB di RAM
+FirstTimeWizardToadlet.memory.512M=512Mb - per computer con moltissima memoria
RAM
+FirstTimeWizardToadlet.memory.64M=64MB - Usare solo in caso di estrema
necessit?
FproxyToadlet.dangerousRSSTitle=Contenuto potenzialmente pericoloso (RSS)
GIFFilter.invalidHeader=Il file non contiene un header GIF valido.
GIFFilter.invalidHeaderTitle=Header non valido
@@ -501,34 +505,44 @@
IPDetectorPluginManager.connectionProblems=Problemi di connessione:
IPDetectorPluginManager.direct=Il computer sembra essere direttamente connesso
a Internet, dovrebbe essere quindi possibile connettersi con qualunque nodo
Freenet.
IPDetectorPluginManager.directTitle=Rilevata connessione diretta a Internet
-IPDetectorPluginManager.forwardPort=Il tuo nodo sembra essere dietro qualche
tipo di NAT (vedi la pagina connettivit? per dettagli). Se possibile, dovresti
forwardare la porta ${port} UDP (non TCP) per migliorare la connettivit?. E'
possibile comunque che tu abbia gi? provveduto; Serve del tempo a Freenet per
rilevare il port forward. Leggi ${link}qui${/link} per ulteriori informazioni.
+IPDetectorPluginManager.forwardPort=Il tuo nodo sembra essere dietro qualche
tipo di NAT (vedi la pagina connettivit? per dettagli). Se possibile, dovresti
forwardare le porte UDP (not TCP) ${port} per migliorare la connettivit?. E'
possibile comunque che tu abbia gi? provveduto; Serve del tempo a Freenet per
rilevare il port forward. Leggi ${link}qui${/link} per ulteriori informazioni.
+IPDetectorPluginManager.forwardPortMaybeForwarded=Sembra che il nodo si trovi
dietro una NAt di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. E' possibile comunque che ci?
sia gi? stato fatto: occorre un po' di tempo perch? Freenet rilevi il port
forward. Clicca ${link}qui${/link} per maggiori informazioni.
+IPDetectorPluginManager.forwardPortNotForwarded=Sembra che il nodo si trovi
dietro una NAt di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. Sembra che ci? non sia stato
fatto, anche occorre un po' di tempo perch? Freenet rilevi il port forward.
Clicca ${link}qui${/link} per maggiori informazioni
IPDetectorPluginManager.forwardPortShort=Per favore, forwardare la porta UDP
${port}.
-IPDetectorPluginManager.forwardTwoPorts=Il tuo nodo sembra essere dietro
quanlche tipo di NAT (vedi la pagina connettivit? per dettagli). Se possibile,
dovresti forwardare le porte ${port1} e ${port2} UDP (non TCP) per migliorare
la connettivit?. E' possibile comunque che tu abbia gi? provveduto; Serve del
tempo a Freenet per rilevare il port forward. Leggi ${link}qui${/link} per
ulteriori informazioni.
+IPDetectorPluginManager.forwardPortShortMaybeForwarded=Si prega di configurare
il forward della porta ${port} UDP (questo potrebbe essere gi? stato fatto, ma
non ancora rilevato)
+IPDetectorPluginManager.forwardPortShortNotForwarded=Si prega di configurare
il forward per la porta ${port} UDP .
+IPDetectorPluginManager.forwardTwoPorts=Il tuo nodo sembra essere dietro
quanlche tipo di NAT (vedi la pagina connettivit? per dettagli). Se possibile,
dovresti eseguire il forward UDP (non TCP) delle porte ${port1} e ${port2} per
migliorare la connettivit?. E' possibile comunque che tu abbia gi? provveduto;
serve del tempo a Freenet per determinare l'avvenuto forward. Leggi
${link}qui${/link} per ulteriori informazioni.
+IPDetectorPluginManager.forwardTwoPortsMaybeForwarded=Sembra che il nodo si
trovi dietro una NAt di qualche tipo (vedi pagina connettivit? per i
dettaglil). Se possibile, bigognerebbe configurare il forward per la porta
${port} UDP (non TCP) allo scopo di migliorare la connettivit?. E' possibile
comunque che ci? sia gi? stato fatto: occorre un po' di tempo perch? Freenet
rilevi il port forward. Clicca ${link}qui${/link} per maggiori informazioni
+IPDetectorPluginManager.forwardTwoPortsNotForwarded=Pare che il nodo sia
dietro una NAT (controllare la pagina connettivit? per i dettagli). PSe
possibile si dovrebbe configurare il forward per le porte ${port1} e ${port2}
UDP (non TCP), allo scopo di migliorare la connettivit?. Sembra che il forward
delle porte non sia attivo, anche se Freenet non pu? determinarlo per certo.
Controllare ${link}qui${/link} per ulteriori informazioni.
+IPDetectorPluginManager.forwardTwoPortsShort=Per favore, forwardare le porte
UDP ${port1} e ${port2}.
+IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=Configurare il
forward perle porte ${port1} e ${port2} UDP (potrebbe essere gi? stato fatto).
+IPDetectorPluginManager.forwardTwoPortsShortNotForwarded=Si prega di
configurare il forward per le porte ${port1} e ${port2} UDP.
IPDetectorPluginManager.fullCone=La connessione a Internet sembra avvenire
attraverso un "cono completo" NAT. Il nodo Dovrebbe potersi connettere a
qualunque altro nodo Freenet.
-IPDetectorPluginManager.fullConeTitle=Rilevato cono NAT completo
+IPDetectorPluginManager.fullConeTitle=Rilevato full cone NAT
+IPDetectorPluginManager.maybeAlreadyForwarded=Potrebbe essere gi? stato fatto
(? difficile per Freenet determinarlo).
IPDetectorPluginManager.noConnectivity=La connessione a Internet non sembra
essere provvista di supporto UDP. A meno che non si tratti di un rilevamento
erroneo, non ? probabile che Freenet possa funzionare al momento.
IPDetectorPluginManager.noConnectivityTitle=Mancanza di connettivit? UDP
IPDetectorPluginManager.noConnectivityshort=Gravi problemi di connessione:
Nessuna connettivit? UDP, Freenet non pu? funzionare!
-IPDetectorPluginManager.portForwardHelpURL=http://wiki.freenetproject.org/FirewallAndRouterIssues
(Problematiche con firewall e routers)
-IPDetectorPluginManager.portRestricted=La connessione a Internet sembra
avvenire attraverso un NAT a porte ristrette (router). Il nodo potr?
connettersi a quasi tutti gli altri nodi ma non a quelli dietro NAT simmetrici.
+IPDetectorPluginManager.portForwardHelpURL=http://wiki.freenetproject.org/FirewallAndRouterIssues
+IPDetectorPluginManager.portRestricted=La connessione a Internet sembra
avvenire attraverso una NAT a porte ristrette (router). Il nodo potr?
connettersi a quasi tutti gli altri nodi ma non a quelli dietro NAT simmetrica.
IPDetectorPluginManager.portRestrictedTitle=Port restricted cone NAT rilevata
-IPDetectorPluginManager.restricted=La connessione a Internet sembra avvenire
attraverso un "cono ristretto" NAT (router). Dovrebbe essere comunque possibile
connettersi alla maggior parte dei nodi Freenet.
-IPDetectorPluginManager.restrictedTitle=E' stato rilevato un cono NAT ristretto
+IPDetectorPluginManager.restricted=La connessione a Internet sembra avvenire
attraverso un "restricted cone" NAT (router). Dovrebbe essere comunque
possibile connettersi alla maggior parte dei nodi Freenet.
+IPDetectorPluginManager.restrictedTitle=E' stato rilevato un restricted cone
NAT
IPDetectorPluginManager.seriousConnectionProblems=Gravi problemi di
connessione:
-IPDetectorPluginManager.suggestForwardPort=Potrebbe essere necessario
configurare il 'port forwarding' della portav (Porta UDP numero${port})
manualmente. Vedi: http://wiki.freenetproject.org/FirewallAndRouterIssues
(disponibile solo in inglese, per ora).
+IPDetectorPluginManager.suggestForwardPort=Potrebbe essere necessario
configurare il 'port forwarding' per la porta (Porta UDP numero ${port})
manualmente. Vedi: http://wiki.freenetproject.org/FirewallAndRouterIssues
(disponibile solo in inglese, per ora).
IPDetectorPluginManager.suggestForwardPortWithLink=Potrebbe essere necessario
${link}configurare il port forwarding${/link} (porta UDP numero ${port})
manualmente (oppure ci? ? gi? stato fatto: Freenet pu? avere delle difficolt?
in questo tipo di rilevazione).
IPDetectorPluginManager.suggestForwardTwoPorts=Sarebbe opportuno configurare
manualmente il port forward sul router per le porte ${port1} e ${port2} (UDP).
vedi http://wiki.freenetproject.org/FirewallAndRouterIssues (disponibile solo
in inglese, per ora).
IPDetectorPluginManager.suggestForwardTwoPortsWithLink=Potrebbe essere
necessario configurare manualmente ${link}il forward delle porte${/link} Per
porte nummero ${port1} e ${port2}, UDP. (questo messaggio pu? in alcuni casi
continuare ad apparire per un po' di tempo dopo aver configurato il forward)
-IPDetectorPluginManager.symmetric=La connessione a Internet sembra avvenire
attraverso un NAT simmetrico o un firewall. Il nodo potr? probabilmente
connettersi soltanto ad utenti direttamente connessi a Internet, o che usano
NAT a cono ristretto.
-IPDetectorPluginManager.symmetricPS=Il tuo nodo si trova dietro un NAT
simmetrico, che ? particolarmente problematico, quindi se non fai il forward
delle porte, potresti non riuscire a connetterti alla maggior parte dei nodi!
+IPDetectorPluginManager.symmetric=Dai rilevamenti appare che il nodo potrebbe
trovarsi dietro una NAT simmetrica o un firewall. Probabilmente, sar? possibile
connettersi ad utenti connessi direttamente a internet o dietro restricted cone
NAT
+IPDetectorPluginManager.symmetricPS=Il nodo si trova dietro una NAT
simmetrica. Queta ? una situazione particolarmente particolarmente
problematica: ? necessario configurare il forward delle porte. In caso
contrario potrebbe risultare impossibile connettersi alla maggioranza dei nodi.
IPDetectorPluginManager.symmetricTitle=Rilevato firewall simmetrico
IPUndetectedUserAlert.detecting=Freenet sta cercando in questo momento di
rilevare l'indirizzo IP esterno. Il protrarsi della durata di questa operazione
oltre il limite di pochi minuti ? indicativo di problemi.
-IPUndetectedUserAlert.detectingShort=Freenet sta cercando di determinare il
tuo indirizzo IP esterno.
+IPUndetectedUserAlert.detectingShort=Indirizzo IP esterno in corso di
rilevamento.
IPUndetectedUserAlert.detectingWithConfigLink=Freenet sta rilevando
l'indirizzo IP esterno. Se l'operazione dura pi? di qualche minuto si pu?
presumere che qualcosa non stia andando come dovrebbe e si pu? provare ad usare
il Suggerimento Temporaneo per l'Indirizzo IP ${link}parametro di
configurazione${/link}.
IPUndetectedUserAlert.suggestForwardPort=Sarebbe opportuno configurare il port
forward sul router per le porte ${port1} e ${port2} (UDP) in modo da facilitare
le connessioni.
IPUndetectedUserAlert.suggestForwardTwoPorts=Sarebbe opportuno configurare il
port forward sul router per le porte ${port1} e ${port2} (UDP) in modo da
facilitare le connessioni.
IPUndetectedUserAlert.unknownAddress=Non ? stato possibile rilevare
l'indirizzo IP esterno (o l'indirizzo IP del NAT box o del firewall). Si pu?
comunque scambiare refs con altri utenti, ma sar? possibile connettersi
solamente a nodi che non si trovino a loro volta dietro NAT o firewall. Non
appaena ci si sar? connessi in questo modo ad almeno un altro utente, sar?
possibile determinare l'indirizzo IP esterno. Si pu? suggerire al nodo
l'indirizzo IP esterno usando 'Suggerimento Temporaneo per l'Indirizzo IP'
${link}parametro di configurazione${/link}
-IPUndetectedUserAlert.unknownAddressShort=Freenet non ha potuto determinare il
tuo indirizzo IP. Potresti avere problemi a connetterti.
+IPUndetectedUserAlert.unknownAddressShort=Non ? stato possibile rilevare
l'indirizzo IP. Potrebbero verificarsi problemi di connessione.
IPUndetectedUserAlert.unknownAddressTitle=Indirizzo esterno sconosciuto
IPUndetectedUserAlert.unknownAddressWithConfigLink=Freenet non ha potuto
rilevare l'indirizzo IP esterno (o l'indirizzo IP del NAT box o firewall). E'
comunque possibile scambiare referenze con altri utenti, ma la connessione
avverr? soltanto se l'altra parte non ? a sua volta dietro NAT o firewall.
Appena connesso ad almeno un utente in questo modo, Freenet riuscit? a
determinare l'indirizzo IP esterno.E' possibile suggerire al nodo l'IP esterno
usando il campo 'suggerimento provvisorio per l'indirizzo IP' ${link}parametro
di configurazione${/link}. Sarebbe inlotre auspicabile configurare il forward
UDP per la porta ${port} sul router, in modo da rendere pi? facili le
connessioni
InsertException.longError.1=Caller ha fornito una URI che non ? possibile
utilizzare"
@@ -557,17 +571,17 @@
InsertException.shortError.9=Conflitto con dati esistenti
IntOption.parseError=Il valore specificato non pu? essere interpretato come
32-bit integer : ${val}
InvalidAddressOverrideUserAlert.unknownAddress=Freenet ha rilevato che il
valore attualmente in uso per ipAddessOverride non ? valido in quanto non
conforme alla sintassi appropriata per un hostname n? per un indirizzo IPv4 o
IPv6 (in accordo con l'implementazione corrente della funzione che controlla la
sintassi per indirizzi IPv6)
-InvalidAddressOverrideUserAlert.unknownAddressShort=Il tuo ipAddressOverride
(IP impostato manualmente) ? fasullo. Per favore correggilo.
+InvalidAddressOverrideUserAlert.unknownAddressShort=L' indirizzo IP impostato
manualmente (ipAddressOverride) non funziona. si prega di correggerlo.
InvalidAddressOverrideUserAlert.unknownAddressTitle=Valore Override Indirizzo
non Valido
InvalidAddressOverrideUserAlert.unknownAddressWithConfigLink=Freenet ha
rilevato che il valore attualmente in uso per ipAddessOverride non ? valido in
quanto non conforme alla sintassi appropriata per un hostname n? per un
indirizzo IPv4 o IPv6 (in accordo con l'implementazione corrente della funzione
che controlla la sintassi per indirizzi IPv6) E' possibile correggere l'
Override indirizzo IP ${link}configuration parameter${/link}.
-JPEGFilter.notJpeg=Le dimensioni del file che si sta cercando di richiamare
sono troppo piccole per un'immagine JPEG. Potrebbe trattarsi di un file in un
altro formato e il browser potrebbe fare qualcosa di sbagliato a causa della
mancata corrispondenza; il file ? stato pertanto bloccato.
+JPEGFilter.notJpeg=Le dimensioni del file che si sta cercando di richiamare
sono troppo ridotte perch? possa trattarsi di un'immagine JPEG. Potrebbe essere
un file in un altro formato e il browser potrebbe fare qualcosa di sbagliato a
causa della mancata corrispondenza; il file ? stato pertanto bloccato.
JPEGFilter.tooShort=File troppo piccolo per un JPEG.
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.dangerousLinksLabel=Link pericolosi:
-KnownUnsafeContentTypeException.dangerousMetadata=Contenuto di questo tipo pu?
includere metadati, i quali possono essere visualizzati da alcuni browser eed
altri programmi: tali metadati possono contenere link o immagini caricate
direttamente da internet, che possono compromettere l'anonimato.
+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:
KnownUnsafeContentTypeException.dangerousScripts=Contenuto di questo tipo pu?
includere script pericolosi che quando eseguiti possono compromettere
l'anonimato dell'utente connettendosi direttamente al web o compromettere la
sicurezza in altro modo.
KnownUnsafeContentTypeException.dangerousScriptsLabel=Scripting pericoloso:
@@ -578,7 +592,7 @@
LocalFileInsertToadlet.checkPathIsDir=Controlla che il percorso specificato
sia una directory
LocalFileInsertToadlet.checkPathReadable=Controlla che il percorso specificato
sia leggibile dall'utente che sta utilizzando il nodo.
LocalFileInsertToadlet.dirAccessDenied=L'accesso a questa directory ?
interdetto
-LocalFileInsertToadlet.dirCannotBeRead=Non ? stato possibile leggere nella
directory "${path}".
+LocalFileInsertToadlet.dirCannotBeRead=Non ? stato possibile leggere dalla
directory "${path}".
LocalFileInsertToadlet.fileHeader=File
LocalFileInsertToadlet.insert=Inserisci
LocalFileInsertToadlet.listing=Elenco directory ${path}
@@ -604,7 +618,7 @@
LongOption.parseError=Il valore specificato non pu? essere interpretato come
64-bit integer : ${val}
MeaningfulNodeNameUserAlert.noNodeNick=Non ? stato possibile trovare il
nickname da utilizzare. Usare qui un indirizzo e-mail o un nickname IRC ?
generalmente una buona idea in quanto consente ai peer di identificare il nodo.
(nota che soltanto i peer darknet elencati alla pagina Amici potranno vedere il
nome del nodo, che resta invece invisibile ai peer Opennet)
MeaningfulNodeNameUserAlert.noNodeNickShort=Non ? stato impostato il nome del
nodo.
-MeaningfulNodeNameUserAlert.noNodeNickTitle=Non ? stato definito un nome per
il nodo.
+MeaningfulNodeNameUserAlert.noNodeNickTitle=Non ? stato impostato il nome del
nodo.
N2NTMToadlet.composingMessageLabel=Messaggio N2NTM da inviare ai seguenti
nodi:
N2NTMToadlet.delayed=Il nodo interressato sta temporaneamente respingendo
richieste; il messaggio potrebbe giungere in lieve ritardo.
N2NTMToadlet.delayedTitle=Differito
@@ -621,7 +635,7 @@
N2NTMToadlet.queuedTitle=Aggiunto alla Coda
N2NTMToadlet.returnToFriends=Torna alla lista degli Amici
N2NTMToadlet.returnToNodeHomepage=Torna alla homepage del nodo
-N2NTMToadlet.sendMessage=Invia Messaggio Testuale
+N2NTMToadlet.sendMessage=Invia Messaggio di Testo da Nodo a Nodo (N2NTM)
N2NTMToadlet.sendMessageShort=Invia Messaggio
N2NTMToadlet.sendStatus=Status N2NTM in uscita
N2NTMToadlet.sent=Messaggio inviato al peer
@@ -638,15 +652,15 @@
Node.acceptSeedConnectionsShort=Essere un seednode?
Node.alwaysAllowLocalAddresses=Sempre permettere la connessione a nodi via
indirizzi locali?
Node.alwaysAllowLocalAddressesLong=Se impostato su "vero" il nodo cercher? di
connettersi ad altri nodi usando il loro indirizzo locale (localhost, LAN)
oltre al loro indirizzo IP pubblico. Se questa opzione non e' impostata, si pu?
comunque abilitarla separatamente per singoli peer darknet (ma non per i peer
opennet). Impostare questa opzione se ci si vuole connettere ad altri nodi
sulla stessa rete locale (LAN) o che girano sullo stesso computer, e non far
caso alle referenze "bogus" ("scr?use") che possono far mandare al nodo
pacchetti UDP alle macchine sulla rete locale.
-Node.assumeNATed=Assumi che la port non sia forwardata.
+Node.assumeNATed=Presumere che la porta non sia forwardata.
Node.assumeNATedLong=Dare per scontato che la porta sia dietro NAT e non
forwardata? In questo caso il nodo mander? handshake ogni 10-30 secondi.
Node.bandwidthLimitMustBePositiveOrMinusOne=Il valore dell'ampiezza di banda
deve essere positivo o -1
Node.bindTo=Indirizzo IP collegato
Node.bindToLong=Indirizzo IP collegato
Node.buggyJVM=La JVM attualmente in uso (${version}) ? una versione
notoriamente afflitta da 'bug'. Pu? produrre OutOfMemoryError anche con molta
memoria ancora a disposizione. Si raccomanda di aggiornare il software Java,
usando come minimo Sun Java 1.4.2_13, 1.5.0_10 o 1.6 (quest'ultima ? la
versione raccomandata). Vedi
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795
-Node.buggyJVMShort=Freenet sta girando con la versione Java ${version}. Per
favore aggiorna il prima possibile, la versione che usi ha pericolosi bug.
+Node.buggyJVMShort=Freenet sta attualmente utilizzando Java versione
${version}, che ? notoriamente afflitta da p'bug' pericolosi. Si prega di
aggiornare Java al pi? presto possibile.
Node.buggyJVMTitle=Avvertennza JVM soggetta a 'bug'
-Node.buggyJVMWithLink=La JVM in uso (${version}) ? notoriamente
${link}buggy${/link}. Pu? produrre OutOfMemoryError anche con molta memoria
ancora disponibile. Sarebbe auspicabile aggiornare almeno a Sun Java 1.4.2_13,
1.5.0_10 o 1.6 (quest'ultima ? la versione consigliata).
+Node.buggyJVMWithLink=La JVM in uso (${version}) ? notoriamente
${link}difettosa${/link}. Pu? produrre errori tipo OutOfMemoryError anche con
molta memoria ancora disponibile. Sarebbe auspicabile aggiornare almeno a Sun
Java 1.4.2_13, 1.5.0_10 o 1.6 (quest'ultima ? la versione consigliata).
Node.bwlimitMustBePositive=Il limite dell'ampiezza di banda deve essere
positivo
Node.databaseMemory=Memoria massima utilizzabile dal magazzino dati
Node.databaseMemoryLong=Uso massimo della memoria del database contenente
indici del magazzino dati (datastore). 0 significa nessun limite (non supera
comunque il 30% circa della memoria massima)
@@ -691,15 +705,15 @@
Node.nodeName=Nickname di questo nodo Freenet
Node.nodeNameLong=Nickname del nodo. Visibile solo agli Amici
Node.notUsingSunVM=E' stata rilevata una JVM ${vendor} ${version} che potrebbe
influire sul corretto funzionamento del nodo. Se possibile, installare Sun java
disponibile presso http://www.java.com/getjava
-Node.notUsingSunVMShort=Freenet sta girando con una JVM (Java Virtual Machine)
non SUN, questo non ? raccomandato, per favore scarica la versione Sun Java
corrente.
+Node.notUsingSunVMShort=Freenet sta attualmente utilizzando JVM (Java Virtual
Machine) diversa da Sun, che ? quella raccomandata. Si prega di scaricare ed
installare la versione corrente di Sun Java JRE (Java Runtime Environment)
Node.notUsingSunVMTitle=Il nodo non sta usando una JVM della Sun
Node.notUsingWrapper=Il nodo sta girando senza il wrapper. Ci? ? generalmente
sconsigliabile. Il nodo non potr? riavviare s? stesso e quindi l'aggiornamento
automatico non potr? funzionare. Inoltre, se la JVM se ne dovesse andare nel
"limbo" non sar? possibile riavviare automaticamente nemmeno qiuella. Non
verranno generati stack dump in alcuni posti e quindi debugging sar? pi?
difficile.
-Node.notUsingWrapperShort=Freenet sta girando senza "wrapper". Non ?
raccomandato.
+Node.notUsingWrapperShort=Freenet sta girando senza wrapper. Questo non ?
raccomandato.
Node.notUsingWrapperTitle=Il nodo non sta usando il wrapper!
Node.oneConnectionPerIP=Limita ad una connessione per indirizzo?
Node.oneConnectionPerIPLong=Non permettere pi? di una connessione per
indirizzo? Questo render? leggermente pi? difficile eseguire un attacco
connettendosi al nodo pi? volte con diverse identit? in modo da dominare il
routing (instradamento) di questo nodo e rendere pi? facile raccogliere dati
con lo "harvesting" (lett: "il raccolto", in agricoltura). Abilitare questa
opzione rende anche impossibile che un peer sia connesso al nodo sia su darknet
che su opennet.
-Node.opennetEnabled=Abilita Modo Promiscuo (connette automaticamente a nodi
non gestiti da utenti conosciuti ed affidabili)
-Node.opennetEnabledLong=AbilitaModo Promiscuo? Abilitando questa opzione il
nodo scambier? automaticamente referenze on altri nodi. Ma questo significa
anche che il fatto che su questo computer gira un nodo Freenet non sar? pi? un
segreto e molti attacchi saranno pi? facili da eseguire. Conoscendo abbastanza
gente che usa Freenet, si consiglia di continuare a connettersi soltanto ad
utenti conosciuti ed addifabili (Amici)
+Node.opennetEnabled=Abilita Modalit? Insicura (connette automaticamente a nodi
non gestiti da utenti conosciuti ed affidabili)
+Node.opennetEnabledLong=Abilita Modalit? Insicura? (detta anche Opennet)
Abilitando questa opzione il nodo scambier? automaticamente referenze on altri
nodi. Ma questo significa anche che il fatto che su questo computer gira un
nodo Freenet non sar? pi? un segreto e molti attacchi saranno pi? facili da
eseguire. Conoscendo abbastanza gente che usa Freenet, si consiglia di
continuare a connettersi soltanto ad utenti conosciuti ed addifabili (Amici)
Node.outBWLimit=Limite dell'ampiezza di banda in uscita (bytes per secondo)
Node.outBWLimitLong=Limite "duro" dell' ampiezza di banda in uscita
(bytes/sec); di solito il nodo non eccede questo limite
Node.passOpennetPeersThroughDarknet=Trasmettere referenze opennet attraverso
peer darknet?
@@ -719,7 +733,7 @@
Node.throttleLocalTrafficLong=Abilita throttle traffico locale? Abilitando
questa opzione anche LAN e traffico localhost saranno soggetti alla limitazione
di banda.
Node.tooSmallMTU=MTU insufficiente
Node.tooSmallMTULong=L' MTU della connessione sembra essere ${mtu} bytes.
Freenet non pu? funzionare bene con un MTU minore di ${minMTU} bytes: le
connessioni saranno inaffidabili e forse rallentate. Se possibile, si dovrebbe
provvedere a risolvere il problema.
-Node.tooSmallMTUShort=Problemi di connessione: Il tuo MTU di connessione ?
troppo basso per permettere a Freenet di lavorare correttamente. Si
verificheranno dei problemi.
+Node.tooSmallMTUShort=Problema di connessione: MTU di connessione troppo basso
per consentire a Freenet di funzionare correttamente. Potranno verificarsi dei
problemi.
NodeClientCore.couldNotFindOrCreateDir=Non ? stato possibile trovare o creare
la directory
NodeClientCore.downloadAllowedDirs=Directory dove il download ? consentito
NodeClientCore.downloadAllowedDirsLong=Si pu? usare una lista di directory
dove dove il download e' permesso, separate da 'punto e virgola' (;).
"downloads" significa downloadsDir, vuoto (nessuna directory specificata)
significa che il download su disco non e' permesso, "all" significa download
permessi in tutte le directory AVVERTENZA; Se impostato su "all" ("tutte"),
ogni utente potr? scaricare files in qualsiasi directory.
@@ -736,7 +750,7 @@
NodeClientCore.persistentTempDir=Directory dei file temporanei persistenti
NodeClientCore.persistentTempDirLong=Nome della directory dei file temporanei
persistenti
NodeClientCore.startingUp=Si prega di concedere a Freenet alcuni minuti per
completare il processo di avviamento. Nel frattempo alcune funzioni non saranno
disponibili e il nodo potr? risultare pi? lento del normale.
-NodeClientCore.startingUpShort=Freenet si sta avviando, non tutte le
funzionalit? potrebbero essere operative e il nodo potrebbe essere lento.
+NodeClientCore.startingUpShort=Freenet si sta avviando, qualcosa potrebbe
ancora non funzionare e il nodo potrebbe essere lento.
NodeClientCore.startingUpTitle=Avviamento di Freenet in corso
NodeClientCore.tempDir=Directory file temporanei
NodeClientCore.tempDirLong=Nome della directory dei file temporanei
@@ -745,11 +759,11 @@
NodeIPDectector.inclLocalAddress=Includi indirizzi locali nella referenza del
nodo
NodeIPDectector.inclLocalAddressLong=Specifica se includere l'indirizzo locale
(LAN e localhost) nella referenza del nodo. Questo non ? utile a meno che
entrambi i lati abbiano impostato allowLocalAddresses=true per le rispettive
referenze (per impostare questa opzione, abilitare la modalit? avanzata e usare
la pagina Amici).
NodeIPDectector.ipOverride=Imposta manualmente indirizzo IP
-NodeIPDectector.ipOverrideLong=Impostazione manuale dell'indirizzo IP (di
solito non ? necessario) - Utilizzare se si ha un indirizzo IP statico o un
domain name (es. dyndns), e ci si trova dietro un firewall.
+NodeIPDectector.ipOverrideLong=Impostazione manuale dell'indirizzo IP (di
solito non ? necessario) - Utilizzare questa opzione se si ha un indirizzo IP
statico o un domain name (es. dyndns), e ci si trova dietro un firewall.
NodeIPDectector.tempAddressHint=Suggerimento temporaneo dell'indirizzo IP
NodeIPDectector.tempAddressHintLong=Suggerisce temporaneamente l'indirizzo IP;
viene eliminato dopo l'uso
NodeIPDetector.maybeSymmetric=Sembra che il nodo sia dietro una NAT
simmetrica. Potrebbe trattarsi di problemi di connessione: se ci si trova
dietro una NAT simmetrica ci si potr? probabilmente connettere soltanto con i
nodi che sono raggiungibili da interenet.
-NodeIPDetector.maybeSymmetricShort=Problema di connessione: Potresti trovarti
dietro una NAT simmetrica.
+NodeIPDetector.maybeSymmetricShort=Problema di connessione: il nodo potrebbe
trovarsi dietro una NAT simmetrica.
NodeIPDetector.maybeSymmetricTitle=Problemi di connessione
NodeIPDetector.unknownHostErrorInIPOverride=Host sconosciuto: ${error}
NodeStat.aggressiveGC=Modificatore dell' AggressiveGC
@@ -758,10 +772,10 @@
NodeStat.freeHeapBytesThresholdLong=Il nodo respinge richieste per mantenere
la quota di free heap bytes impostata
NodeStat.freeHeapPercentThreshold=Soglia percentuale free heap
NodeStat.freeHeapPercentThresholdLong=Respingendo nuove richieste, il nodo
mantiene al di sopra della soglia la percentuale di max heap bytes ammessa
-NodeStat.ignoreLocalVsRemoteBandwidthLiability=Gestire le richieste locali
come fossero richieste remote, per limitazioni della disponibilit? di banda?
-NodeStat.ignoreLocalVsRemoteBandwidthLiabilityLong=Abilita per ridurre
significativamente la banda utilizzata ed aumentare leggermente la sicurezza
contro i tentativi di attacchi di timing. Nella gran parte dei casi, non devi
preoccuparti di essi, in quanto sono pi? probabili i "correlation attacks"
(attacchi di correlazione).
+NodeStat.ignoreLocalVsRemoteBandwidthLiability=Gestire richieste locali allo
stesso modo di quelle remote, per limitazioni della disponibilit? di banda?
+NodeStat.ignoreLocalVsRemoteBandwidthLiabilityLong=Abilitare questa opzione
per ridurre notevolmente la banda utilizzata ed aumentare leggermente la
sicurezza contro i tentativi di attacchi di timing. Nella gran parte dei casi,
non devi preoccuparti di essi, in quanto sono pi? probabili i "correlation
attacks" (attacchi di correlazione).
NodeStat.memCheck=Abilita la Verifica di Memoria
-NodeStat.memCheckLong=Abilita verifica della memoria Scrive un messaggio nel
log file. La verifica della memoria deve essere abilitata perche'
aggressiveGCModificator abbia effetto
+NodeStat.memCheckLong=Abilita verifica della memoria (scrive un messaggio nel
log file. La verifica della memoria deve essere abilitata perche'
aggressiveGCModificator abbia effetto)
NodeStat.statsPersister=File contenente le statistiche del nodo
NodeStat.statsPersisterLong=File contenente statistiche: NON si tratta delle
statistiche del client. Queste statistiche servono al nodo per decidere se
accettare o rifiutare nuove richieste. Non eliminare!
NodeStat.threadLimit=Limite thread
@@ -786,8 +800,8 @@
NodeUpdateManager.updateFailedTitle=Aggiornamento Fallito!
NodeUpdateManager.updateURI=Dove cercare aggiornamenti?
NodeUpdateManager.updateURILong=Dove cercare aggiornamenti?
-NotEnoughNiceLevelsUserAlert.content=Il nodo ha rilevato di stare operando ad
un alto livello di nice. In mancanze di un numero sufficiente di livelli di
nice, il nodo non potr? operare a pieno regime. Si prega di ridurre il livello
di nice. (cercare PRIORITY nel file run.sh e ridurne il valore). Attualmente il
nodo ha ${available} livelli a disposizione mentre avrebbe bisogno di
${required} livelli.
-NotEnoughNiceLevelsUserAlert.short=Non abbastanza "Nice levels" disponibili!
Per favore, far girare Freenet ad un "Nice Level" inferiore.
+NotEnoughNiceLevelsUserAlert.content=Il nodo ha rilevato di stare operando ad
un alto livello di nice. In mancanza di un numero sufficiente di livelli di
nice, il nodo non potr? operare a pieno regime. Si prega di ridurre il livello
di nice. (cercare PRIORITY nel file run.sh e ridurne il valore). Attualmente il
nodo ha ${available} livelli a disposizione mentre avrebbe bisogno di
${required} livelli.
+NotEnoughNiceLevelsUserAlert.short=Non ci sono abbastanza "Nice levels"
disponibili. si prega assegnare a Freenet per un "Nice Level" inferiore.
NotEnoughNiceLevelsUserAlert.title=Numero di livelli Nice insufficiente!
OpennetConnectionsToadlet.fullTitle=${counts} Sconosciuti (Peers non
affidabili) di ${name}
OpennetConnectionsToadlet.peersListTitle=I Miei Peer Opennet (nodi non
affidabili aggiunti dal nodo)
@@ -820,7 +834,7 @@
PeerManagerUserAlert.tooManyNeverConnected=Ben ${count} tra i peer di questo
nodo non sono mai stati connessi, nemmeno una volta sola: . Non bisognerebbe
aggiungere peer a meno che la propria referenza venga aggiunta a sua volta. In
caso contrario sar? impossibile connettersi.
PeerManagerUserAlert.tooManyNeverConnectedTitle=Molti peers non sono ancora
stati connessi nemmeno una volta
PeerManagerUserAlert.tooManyNeverConnectedWithLink=${count} peer di questo
nodo non sono mai stati connessi, nemmeno una volta sola. Non bisognerebbe
aggiungere nuovi peers a meno che essi non aggiungano a loro volta ${link}your
reference${/link}. Se ci? non avviene non sar? possibile stabilire una
connessione.
-PeerManagerUserAlert.tooManyPeers=Il nodo ha troppi peer (${count} > ${max}).
Non si raccomanda di far girare "ubernodes" con l'aggiunta automatica di peer;
questo non produce una topologia mondo-piccolo. Ci? influisce negativamente sul
rendimento poich? i peer disconnessi usano una piccola quantit? di banda e di
CPU. Potrebbe essere necessario "ripulire" la lista dei peer.
+PeerManagerUserAlert.tooManyPeers=Il nodo ha troppi peer (${count} > ${max}).
Non si raccomanda di far girare "ubernodes" con l'aggiunta automatica di peer;
questo non produce una topologia mondo-piccolo. Ci? influisce negativamente sul
rendimento perch? anche i peer disconnessi usano un po' di banda e di CPU.
Potrebbe essere necessario "ripulire" la lista dei peer.
PeerManagerUserAlert.tooManyPeersTitle=Troppi peer
PeerManagerUserAlert.tooOldNeverConnectedPeers=Uno o pi? peer non si sono mai
connessi nelle due settimane trascorse da quando sono stati aggiunti. E' da
prendere in considerazione l'idea di rimuoverli in quanto essi stanno
marginalmente compromettendo il rendimento (pacchetti sprecati cencando di
comunicare con nodi che non ci sono).
PeerManagerUserAlert.tooOldNeverConnectedPeersTitle=Peer mai connesso/i
obsoleto/i
@@ -831,8 +845,8 @@
PeersSayKeyBlownAlert.failedTransferSayBlownLabel=Questi nodi hanno comunicato
che la chiave di revoca ? saltata ma poi non hanno completato il trasferimento
del certificato di revoca:
PeersSayKeyBlownAlert.fetching=Il nodo sta scaricando il certificato di revoca
contentnte spiegazioni pi? dettagliate.
PeersSayKeyBlownAlert.intro=Uno o pi? peers ci comunicano che la chiave di
revoca per l'aggiornamento automatico ? saltata. Questo significa che qualcuno
potrebbe essere venuto a conoscenza della chiave privata del sistema di
autoaggiornamento, cosa che potrebbe far eseguire al nodo il codice che
l'attaccante volesse fargli eseguire (se l'aggiornamento venisse eseguito): per
prevenire tale eventualit?, il sistema di autoaggiornamento ? stato
disabilitato. E' anche possibile che dei peers stiano deliberatamente mentendo
a proposito della chiave di revoca.
-PeersSayKeyBlownAlert.short=Alcuni dei tuoi nodi, dicono che la chiave di auto
aggiornamento ? rovinata!
-PeersSayKeyBlownAlert.titleWithCount=chiave di Auto-aggiornamento saltata,
evento confermato da ${count} peer!
+PeersSayKeyBlownAlert.short=Alcuni peer avvertono che la chiave di auto
aggiornamento ? saltata!
+PeersSayKeyBlownAlert.titleWithCount=La chiave di Auto-aggiornamento ?
saltata! L' evento ? stato confermato da ${count} peer!
PluginManager.cannotSetOnceLoaded=Una volta caricata, non ? pi? possibile
impostare la lista dei plugin
PluginManager.loadedOnStartup=Plugin da caricare all'avvio
PluginManager.loadedOnStartupLong=Classpath, nome e locazione dei plugin da
caricare all'avvio
@@ -892,7 +906,7 @@
PproxyToadlet.reloadExplanation=Ricaricare un plugin ? come scaricarlo e
ricaricarlo.
PproxyToadlet.reloadOnStartupShort=Ricarica all'avvio
PproxyToadlet.reloadPluginTitle=Ricarica Plugin
-PproxyToadlet.reloadPurgeWarning=Rimuovi il plugin dalla cache prima ri
ricaricarlo. Se il plugin era stato scaricato da internet, sar? scaricato
nuovamente.
+PproxyToadlet.reloadPurgeWarning=Rimuovi il plugin dalla cache prima di
ricaricarlo. Se il plugin era stato scaricato da internet, sar? scaricato
nuovamente.
PproxyToadlet.reloadWarning=Attenzione: alcuni plugin non reagiscono in modo
ottimale a un reload.
PproxyToadlet.returnToPluginPage=Torna alla pagina dei plugin
PproxyToadlet.startedAtTitle=Avviato:
@@ -901,7 +915,7 @@
PproxyToadlet.startingPluginTime=tempo trascorso
PproxyToadlet.startingPluginsTitle=Avvio plugins in corso
PproxyToadlet.unauthorized=L'accesso a questa pagina non ? autorizzato.
-PproxyToadlet.unauthorizedTitle=Accesso Non Autoriuzzato
+PproxyToadlet.unauthorizedTitle=Accesso Non Autorizzato
PproxyToadlet.unload=Termina
PproxyToadlet.unloadPluginTitle=Termina plugin?
PproxyToadlet.unloadPluginWithName=Conferma terminazione ${name}?
@@ -922,7 +936,7 @@
QueueToadlet.completedUDirectory=Directory Upload Completati:(${size})
QueueToadlet.delete=Elimina
QueueToadlet.download=Scarica
-QueueToadlet.downloadSucceeded=Il file ${origlink}${filename}${/origlink} ?
stato scaricato correttamente. ${link}Click qui${/link} per aprile il file
(${size}).
+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.errorAccessDenied=Errore: Accesso Negato
@@ -993,16 +1007,16 @@
QueueToadlet.remove=Elimina
QueueToadlet.requestNavigation=Esplora Richieste
QueueToadlet.restart=Riavvia
-QueueToadlet.siteUploadSucceeded=I file ${filename} (${files} ${size} total
size) del tuo freesite, sono stati correttamente caricati su Freenet.
${link}Click qui${/link} per aprire l'homepage del tuo freesite.
-QueueToadlet.siteUploadSucceededTitle=Inserimento del Freesite eseguito:
${filename}
+QueueToadlet.siteUploadSucceeded=I file ${filename} (${files} del tuo
freesite, ${size} total size) sono stati correttamente caricati su Freenet.
${link}Click qui${/link} per aprire l'homepage del freesite.
+QueueToadlet.siteUploadSucceededTitle=Inserimento del Freesite avvenuto:
${filename}
QueueToadlet.size=Dimensioni
QueueToadlet.starting=AVVIAMENTO IN CORSO
QueueToadlet.title=Coda globale di ${nodeName}
QueueToadlet.totalSize=Dimensioni Totali
QueueToadlet.unknown=Non Disp.
QueueToadlet.uploadProgressbarNotAccurate=Il valore di questo indicatore
progresso pu? essere falsato quando l'upload codifica ulteriori blocchi.
-QueueToadlet.uploadSucceeded=Il file${filename} (size ${size}) ? stato
correttamente caricato su Freenet. ${link}Click qui${/link} per aprire il file.
-QueueToadlet.uploadSucceededTitle=Upload eseguito: ${filename}
+QueueToadlet.uploadSucceeded=Il file ${filename} (size ${size}) ? stato
correttamente caricato su Freenet. ${link}Click qui${/link} per aprire il file.
+QueueToadlet.uploadSucceededTitle=upload avvenuto: ${filename}
QueueToadlet.veryhigh=molto alta
QueueToadlet.verylow=bassissima
QueueToadlet.warningUnsafeContent=Contenuto Potenzialmente Pericoloso
@@ -1046,7 +1060,7 @@
SimpleToadletServer.cssOverrideCantRead=Non ? stato possibile leggere il file
di sovrascrittura CSS fornito: ${filename}
SimpleToadletServer.cssOverrideLong=Questa impostazione permette di utilizzare
un CSS personalizzato invece di quello normalmente usato. AVVERTENZA: i CSS
possono essere pericolosi, e *non* vengono filtrati: utilizzare a proprio
rischio. Per includerli nella distribuzione principale e-mail devl at
freenetroject.org
SimpleToadletServer.cssOverrideNotInUploads=Non ? possibile usare questa
impostazione: "${filename} non ? una directory dalla quale sono permessi gli
upload.
-SimpleToadletServer.doRobots=Escludere robots via robots.txt?
+SimpleToadletServer.doRobots=Usare robots.txt per escludere i robot?
SimpleToadletServer.doRobotsLong=Pubblica /robots.txt che dice a persone,
Google, spiders, wget, ecc. di lasciarci in pace.
SimpleToadletServer.enableInlinePrefetch=Abilita pre-ricezione (prefetching)
di immagini inlinea (inline)?
SimpleToadletServer.enableInlinePrefetchLong=Questo potrebbe essere utile se
il browser utilizza un numero ridotto di connessioni per comunicare con il
nodo. D'altra parte potrebbe non esserlo.
@@ -1058,7 +1072,7 @@
SimpleToadletServer.enabledLong=Abilita FProxy e relativi servizi HTTP
SimpleToadletServer.illegalCSSName=Il nome CSS non pu? contenere i catarreri
"barra" (/ slash) e "due punti" ( : colon)
SimpleToadletServer.panicButton=Mostra bottone Emergenza
-SimpleToadletServer.panicButtonLong=Mostra il bottone Emergenza nella pagina
della Coda
+SimpleToadletServer.panicButtonLong=Mostra il bottone Emergenza nella pagina
della Coda. Se usato, Il bottone Emergenza rimuove tutte le richieste che non
hanno ricevuto conferma.
SimpleToadletServer.port=Numero della porta FProxy
SimpleToadletServer.portLong=Numero della porta FProxy
SimpleToadletServer.ssl=Abilitare ssl?
@@ -1083,7 +1097,7 @@
StatisticsToadlet.javaVersion=Versione Java: ${version}
StatisticsToadlet.jeDumpButton=Genera JE Dump
StatisticsToadlet.jvmInfoTitle=Info JVM
-StatisticsToadlet.jvmVendor=Fornitore di JVM: ${vendor}
+StatisticsToadlet.jvmVendor=JVM fornita da: ${vendor}
StatisticsToadlet.jvmVersion=Versione JVM: ${version}
StatisticsToadlet.maxMemory=Max Memoria Java: ${memory}
StatisticsToadlet.noRequests=Il nodo non sta elaborando alcuna richiesta in
questo momento.
@@ -1093,7 +1107,7 @@
StatisticsToadlet.osArch=Architettura OS: ${arch}
StatisticsToadlet.osName=Sistema Operativo: ${name}
StatisticsToadlet.osVersion=Versione Sistema Operativo: ${version}
-StatisticsToadlet.outputRate=Output: ${rate}/second (of ${max}/second)
+StatisticsToadlet.outputRate=Output: ${rate} al secondo (di ${max} al secondo)
StatisticsToadlet.payloadOutput=Output Carico Utile: ${total} (${rate}/second)
(${percent}%)
StatisticsToadlet.peerStatsTitle=Statistiche peer
StatisticsToadlet.priority=Priorit?
@@ -1136,12 +1150,12 @@
TextModeClientInterfaceServer.telnetPortNumber=Porta telnet
TextModeClientInterfaceServer.telnetPortNumberLong=Numero della porta telnet
TimeSkewDetectedUserAlert.shortText=Il nodo ha rilevato una discrepanza
temporale. Freenet potrebbe bloccarsi in strani modi!
-TimeSkewDetectedUserAlert.text=Una discepanza 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 clients del
network, hardware bugs.
+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.homepage=Homepage
-Toadlet.internalErrorPleaseReport=Errore interno: se possibile, riportarlo
+Toadlet.internalErrorPleaseReport=Errore interno: riportarlo se possibile
Toadlet.internalErrorTitle=Errore Interno
Toadlet.no=No
Toadlet.nodeHomepage=Homepage del Nodo
@@ -1202,12 +1216,12 @@
UpdatedVersionAvailableUserAlert.fetchingNewExt=E' in corso il download di una
nuova versione di Freenet (extra jar versione ${extVersion}).
UpdatedVersionAvailableUserAlert.fetchingNewNode=Il nodo sta scaricando una
versione aggiornata di Freenet (versione nodo ${nodeVersion}).
UpdatedVersionAvailableUserAlert.finalCheck=Il nodo sta eseguendo un controllo
finale per verificare la sicurezza dell'aggiornamento (${count} of ${max}).
-UpdatedVersionAvailableUserAlert.notLatest=Il nodo non sta usando la versione
del programma pi? aggiornata.
+UpdatedVersionAvailableUserAlert.notLatest=Sembra che il nodo non stia usando
una versione aggiornata del software.
UpdatedVersionAvailableUserAlert.shortArmed=In nodo sta scaricando una nuova
versione di Freenet e si riavvier? una volta terminato il download.
-UpdatedVersionAvailableUserAlert.shortNotReadyNotArmed=Il nodo sta scaricando
una nuova versione di Freenet, ma necessita il vostro permesso per poterla
utilizzare.
-UpdatedVersionAvailableUserAlert.shortReadyNotArmed=Il nodo ha scaricato una
nuova versione di Freenet, ma necessita il vostro permesso per poterla
utilizzare.
+UpdatedVersionAvailableUserAlert.shortNotReadyNotArmed=Il nodo sta scaricando
una nuova versione di Freenet, ma per poterla utilizzare ? necessaria la
conferma da parte dell'utente.
+UpdatedVersionAvailableUserAlert.shortReadyNotArmed=Il nodo ha scaricato una
nuova versione di Freenet ma potr? usarla solo dopo la conferma da parte dell'
utente.
UpdatedVersionAvailableUserAlert.title=E' disponibile una nuova versione
stabile di Freenet
-UpdatedVersionAvailableUserAlert.updateASAPButton=Aggiorna appena possibile
+UpdatedVersionAvailableUserAlert.updateASAPButton=Si prega di aggiornare al
pi? presto possibile
UpdatedVersionAvailableUserAlert.updateASAPQuestion=Riavviare il nodo dopo che
l'aggiornamento ? stato completato?
UpdatedVersionAvailableUserAlert.updateNowButton=Aggiorna Adesso!
UserAlert.apply=Conferma
@@ -1229,14 +1243,14 @@
WelcomeToadlet.arkFetchCount=ARK Fetchers: ${total}
WelcomeToadlet.confirmAddBookmarkSubTitle=Conferma Aggiunta Sgnalibro
WelcomeToadlet.confirmAddBookmarkTitle=Aggiungi ai Segnalibri
-WelcomeToadlet.confirmAddBookmarkWithKey=Confermare che si vuole aggiungere la
chiave ${key} ai preferiti ed aggiugnere la descrizione desiderata:
+WelcomeToadlet.confirmAddBookmarkWithKey=Si prega di confermare l' intenzione
di aggiungere la chiave ${key} ai preferiti ed aggiugnere una descrizione.
WelcomeToadlet.confirmExternalLinkSubTitle=Conferma link esterno
WelcomeToadlet.confirmExternalLinkTitle=ATTENZIONE: Link esterno
WelcomeToadlet.confirmExternalLinkWithURL=Confermare che l'indirizzo da
visitare sia ${url}. ATTENZIONE: Si sta per lasciare FREENET! Cliccare su
questo link METTERA' in serio pericolo l'anonimato dell'utente. Si raccomanda
vivamente di non farlo.
WelcomeToadlet.confirmFIN=Inserire il messaggio Frost seguente?
WelcomeToadlet.databaseStatsSubTitle=Statistiche Database
WelcomeToadlet.databaseStatsTitle=Ricevi statistiche JE
-WelcomeToadlet.disabledAlert=Allarme non abilitato
+WelcomeToadlet.disabledAlert=Allarme disabilitato
WelcomeToadlet.extVersion=Freenet-ext Build #${build} r${rev}
WelcomeToadlet.extVersionWithRecommended=Freenet-ext Build #${build} (si
raccomanda ${recbuild}) r${rev}
WelcomeToadlet.fetch=Richiama
@@ -1267,18 +1281,18 @@
WelcomeToadlet.restartConfirm=Conferma: Riavvia nodo Freenet?
WelcomeToadlet.restartConfirmTitle=Riavvia Nodo
WelcomeToadlet.restartNode=Riavvia il nodo
-WelcomeToadlet.restarting=Attendere mentre il nodo viene riavviato. Questo
dura fino a tre minuti. Grazie per usare Freenet.
+WelcomeToadlet.restarting=Si prega di attendere durante il riavvio del nodo.
Questa schermata si aggiorner? automaticamente, fino a mostrare la pagina
iniziale fi Freenet. Grazie di aver scelto Freenet.
WelcomeToadlet.restartingTitle=Riavvio del nodo Freenet in corso.
WelcomeToadlet.shutdown=Arresta
WelcomeToadlet.shutdownConfirm=Conferma: Arresta nodo Freenet?
WelcomeToadlet.shutdownConfirmTitle=Arresta Nodo
-WelcomeToadlet.shutdownDone=Nodo Freenet arrestato..
+WelcomeToadlet.shutdownDone=Arresto del nodo Freenet in corso
WelcomeToadlet.shutdownNode=Arresta il nodo
WelcomeToadlet.splitfileErrorLabel=Errore specifico splitfile:
WelcomeToadlet.startIndexHeader=Indice dal quale iniziare
WelcomeToadlet.subjectHeader=Oggetto
-WelcomeToadlet.targetBoardHeader=Board obiettivo
-WelcomeToadlet.testnetWarning=gira in modalit? testnet. Questo METTE
seriamente in pericolo l'anonimato!
+WelcomeToadlet.targetBoardHeader=Target Board
+WelcomeToadlet.testnetWarning=gira in modalit? testnet. DISTRUGGE l'anonimato!
WelcomeToadlet.testnetWarningTitle=Modalit? Testnet
WelcomeToadlet.thanks=Grazie per aver scelto Freenet.
WelcomeToadlet.threadDumpNotUsingWrapper=Non ? possibile generare un thread
dump se il nodo non sta girando nel wrapper
@@ -1293,8 +1307,9 @@
WelcomeToadlet.uriWouldHaveBeen=La URI sarebbe stata: ${uri}
WelcomeToadlet.version=Freenet ${fullVersion} Build ${build} r${rev}
WelcomeToadlet.versionHeader=Informazioni sulla Versione e Controllo del Nodo
-WelcomeToadlet.writtenDatabaseStats=Le statistiche del runtime database sono
state iscritte nel log file del wrapper
-WrapperConfig.wrapper.java.maxmemory.long=Limite di memoria usata da Freenet.
Freenet richieder? pi? memoria se possiedi un grande datastore. I cambiamenti
non avranno effetto fino al prossimo riavvio del nodo Freenet.
+WelcomeToadlet.writtenDatabaseStats=Le statistiche di runtime del database
sono state scritte nel file di log del wrapper
+WrapperConfig.wrapper.java.maxmemory.long=Memoria massima utilizzabile da
Freenet. La memoria di cui Freenet a bisogno varia in funzione delle
diomensioni del datastore. I cambiamenti saranno effettivi dopo il riavvio del
nodo.
WrapperConfig.wrapper.java.maxmemory.short=Memoria massima (in megabytes)
testing.test=test${test1}test${test2}test
+?BookmarkEditorToadlet.pasteOrCancel=Click su un'icona incolla o cancella.
End
Modified: branches/saltedhashstore/freenet/src/freenet/node/Announcer.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Announcer.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/Announcer.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -42,20 +42,20 @@
private static final int STATUS_CONNECTING_SEEDNODES = 1;
private static final int STATUS_NO_SEEDNODES = -1;
private int runningAnnouncements;
- /** We want to announce to 3 different seednodes. */
- private static final int WANT_ANNOUNCEMENTS = 3;
+ /** We want to announce to 5 different seednodes. */
+ private static final int WANT_ANNOUNCEMENTS = 5;
private int sentAnnouncements;
private long startTime;
private long timeAddedSeeds;
static final long MIN_ADDED_SEEDS_INTERVAL = 60*1000;
- /** After we have sent 3 announcements, wait for 1 minute before
sending 3 more if we still have no connections. */
- static final int COOLING_OFF_PERIOD = 60*1000;
+ /** After we have sent 3 announcements, wait for 30 seconds before
sending 3 more if we still have no connections. */
+ static final int COOLING_OFF_PERIOD = 30*1000;
/** Identities of nodes we have announced to */
private final HashSet announcedToIdentities;
/** IPs of nodes we have announced to. Maybe this should be
first-two-bytes, but I'm not sure how to do that with IPv6. */
private final HashSet announcedToIPs;
/** How many nodes to connect to at once? */
- static final int CONNECT_AT_ONCE = 10;
+ static final int CONNECT_AT_ONCE = 15;
/** Do not announce if there are more than this many opennet peers
connected */
private static final int MIN_OPENNET_CONNECTED_PEERS = 10;
private static final long NOT_ALL_CONNECTED_DELAY = 60*1000;
@@ -158,6 +158,7 @@
}
}
}
+ node.dnsr.forceRun();
// If none connect in a minute, try some more.
node.getTicker().queueTimedJob(new Runnable() {
public void run() {
@@ -320,6 +321,12 @@
SeedServerPeerNode pn =
(SeedServerPeerNode) seeds.get(i);
node.peers.disconnect(pn, true, true);
}
+ // Re-check every minute.
Something bad might happen (e.g. cpu starvation), causing us to have to reseed.
+
node.getTicker().queueTimedJob(new Runnable() {
+ public void run() {
+
maybeSendAnnouncement();
+ }
+ }, RETRY_DELAY);
} else {
node.getTicker().queueTimedJob(new Runnable() {
public void run() {
Modified: branches/saltedhashstore/freenet/src/freenet/node/DNSRequester.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/DNSRequester.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/DNSRequester.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -51,11 +51,11 @@
lastLogTime = now;
}
for(int i=0;i<nodes.length;i++) {
- //Logger.minor(this, "Node: "+pn);
+ //Logger.minor(this, "Node: "+nodes[i]);
if(!nodes[i].isConnected()) {
// Not connected
// Try new DNS lookup
- //Logger.minor(this, "Doing lookup on "+pn);
+ //Logger.minor(this, "Doing lookup on "+nodes[i]+" of
"+nodes.length);
nodes[i].maybeUpdateHandshakeIPs(false);
}
}
@@ -67,4 +67,10 @@
// Ignore, just wake up. Just sleeping to not busy wait anyway
}
}
+
+ public void forceRun() {
+ synchronized(this) {
+ notifyAll();
+ }
+ }
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/IPDetectorPluginManager.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/node/IPDetectorPluginManager.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -438,7 +438,7 @@
// If detect attempt failed to produce an IP in the
last 5 minutes, don't
// try again yet.
- if(failedRunners.size() == runners.size()) {
+ if(failedRunners.size() == plugins.length) {
if(now - lastDetectAttemptEndedTime <
5*60*1000) {
if(logMINOR) Logger.minor(this, "Last
detect failed less than 5 minutes ago");
return;
Modified: branches/saltedhashstore/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/NodeClientCore.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/NodeClientCore.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -190,14 +190,14 @@
}
});
try {
- persistentTempBucketFactory = new
PersistentTempBucketFactory(new
File(nodeConfig.getString("persistentTempDir")), "freenet-temp-",
node.fastWeakRandom);
+ persistentTempBucketFactory = new
PersistentTempBucketFactory(new
File(nodeConfig.getString("persistentTempDir")), "freenet-temp-", random,
node.fastWeakRandom);
persistentEncryptedTempBucketFactory = new
PersistentEncryptedTempBucketFactory(persistentTempBucketFactory);
} catch (IOException e2) {
String msg = "Could not find or create persistent
temporary directory";
throw new
NodeInitException(NodeInitException.EXIT_BAD_TEMP_DIR, msg);
}
- tempBucketFactory = new
PaddedEphemerallyEncryptedBucketFactory(new
TempBucketFactory(tempFilenameGenerator), node.fastWeakRandom, 1024);
+ tempBucketFactory = new
PaddedEphemerallyEncryptedBucketFactory(new
TempBucketFactory(tempFilenameGenerator), random, node.fastWeakRandom, 1024);
// Downloads directory
Modified: branches/saltedhashstore/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/RequestHandler.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/RequestHandler.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -364,7 +364,7 @@
}
}
- }, "Send throttled SSK data");
+ }, "Send throttled SSK data for "+RequestHandler.this);
if(SEND_OLD_FORMAT_SSK) {
Message df = DMT.createFNPSSKDataFound(uid, headers,
data);
Modified:
branches/saltedhashstore/freenet/src/freenet/node/SeedServerPeerNode.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/SeedServerPeerNode.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/SeedServerPeerNode.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -61,12 +61,22 @@
protected void sendInitialMessages() {
super.sendInitialMessages();
- OpennetManager om = node.getOpennet();
+ final OpennetManager om = node.getOpennet();
if(om == null) {
Logger.normal(this, "Opennet turned off while
connecting to seednodes");
node.peers.disconnect(this, true, true);
} else {
- om.announcer.maybeSendAnnouncement();
+ // Wait 5 seconds. Another node may connect first, we
don't want all the
+ // announcements to go to the node which we connect to
most quickly.
+ node.getTicker().queueTimedJob(new Runnable() {
+ public void run() {
+ try {
+
om.announcer.maybeSendAnnouncement();
+ } catch (Throwable t) {
+ Logger.error(this, "Caught "+t,
t);
+ }
+ }
+ }, 5*1000);
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/TextModeClientInterface.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/node/TextModeClientInterface.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -709,7 +709,7 @@
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Setting node.name to "+key);
}catch(Exception e){
- Logger.error(this, "Error setting node's name");
+ Logger.error(this, "Error setting node's name", e);
}
core.storeConfig();
} else if(uline.startsWith("DISABLEPEER:")) {
Modified: branches/saltedhashstore/freenet/src/freenet/node/Version.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1145;
+ private static final int buildNumber = 1149;
/** Oldest build of Fred we will talk to */
- private static final int oldLastGoodBuild = 1144;
- private static final int newLastGoodBuild = 1145;
+ private static final int oldLastGoodBuild = 1145;
+ private static final int newLastGoodBuild = 1146;
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.MAY, 14, 0, 0, 0 );
+ _cal.set( 2008, Calendar.MAY, 8, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}
Modified: branches/saltedhashstore/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/fcp/FCPServer.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/fcp/FCPServer.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -49,6 +49,7 @@
import freenet.support.api.StringCallback;
import freenet.support.io.Closer;
import freenet.support.io.FileUtil;
+import java.util.LinkedList;
/**
* FCP server process.
@@ -613,7 +614,7 @@
if(logMINOR) Logger.minor(this, "Storing persistent requests");
ClientRequest[] persistentRequests = getPersistentRequests();
if(logMINOR) Logger.minor(this, "Persistent requests count:
"+persistentRequests.length);
- Bucket[] toFree = null;
+ LinkedList toFree = null;
try {
synchronized(persistenceSync) {
toFree =
core.persistentTempBucketFactory.grabBucketsToFree();
@@ -654,16 +655,25 @@
if(logMINOR) Logger.minor(this, "Stored persistent
requests");
} finally {
if(toFree != null) {
- for(int i=0;i<toFree.length;i++) {
+ long freedBuckets = 0;
+ Iterator it = toFree.iterator();
+ while(it.hasNext()) {
+ Bucket current = (Bucket) it.next();
try {
- toFree[i].free();
- } catch (Throwable t) {
+ current.free();
+ freedBuckets++;
+ } catch(Throwable t) {
try {
-
System.err.println("Caught "+t+" trying to free bucket "+toFree[i]);
+
System.err.println("Caught " + t + " trying to free bucket " + current);
t.printStackTrace();
- } catch (Throwable t1) { /*
ignore */ }
+ } catch(Throwable t1) { /*
ignore */ }
}
}
+ // Help it to be collected
+ toFree.clear();
+ toFree = null;
+ if(logMINOR)
+ Logger.minor(this, "We have freed
"+freedBuckets+" persistent buckets");
}
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdater.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdater.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdater.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -289,6 +289,7 @@
}
c.cancel();
}catch(Exception e){
+ Logger.minor(this, "Cannot kill NodeUpdater", e);
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/NumberedItemComparator.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/NumberedItemComparator.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/support/NumberedItemComparator.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -42,11 +42,13 @@
secondDistance = i2 - i1; // smaller => i2 > i1
firstDistance = i1 + Long.MAX_VALUE - i2; // smaller => i1 > i2
}
+ // REDFLAG: base must be odd, so we never get ==
+ assert firstDistance != secondDistance && firstDistance
!= -secondDistance;
+
if(Math.abs(firstDistance) < Math.abs(secondDistance)) {
return 1; // i1>i2
} else //if(Math.abs(secondDistance) < Math.abs(firstDistance)) {
return -1; // i2>i1
- // REDFLAG: base must be odd, so we never get ==
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -40,15 +40,16 @@
* @param bucket The bucket which we are proxying to. Must be empty.
* @param pcfb The encryption mode with which to encipher/decipher the
data.
* @param minSize The minimum padded size of the file (after it has
been closed).
- * @param origRandom a week prng we will padd from.
+ * @param strongPRNG a strong prng we will key from.
+ * @param weakPRNG a week prng we will padd from.
* @throws UnsupportedCipherException
*/
- public PaddedEphemerallyEncryptedBucket(Bucket bucket, int minSize,
Random origRandom) {
- this.randomSource = origRandom;
+ public PaddedEphemerallyEncryptedBucket(Bucket bucket, int minSize,
RandomSource strongPRNG, Random weakPRNG) {
+ this.randomSource = weakPRNG;
this.bucket = bucket;
if(bucket.size() != 0) throw new
IllegalArgumentException("Bucket must be empty");
byte[] tempKey = new byte[32];
- origRandom.nextBytes(tempKey);
+ strongPRNG.nextBytes(tempKey);
this.key = tempKey;
this.minPaddedSize = minSize;
readOnly = false;
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -1,5 +1,6 @@
package freenet.support.io;
+import freenet.crypt.RandomSource;
import java.io.IOException;
import freenet.support.api.Bucket;
@@ -13,16 +14,18 @@
public class PaddedEphemerallyEncryptedBucketFactory implements BucketFactory {
final BucketFactory baseFactory;
- final Random random;
+ final RandomSource strongPRNG;
+ final Random weakPRNG;
final int minSize;
- public PaddedEphemerallyEncryptedBucketFactory(BucketFactory factory,
Random r, int minSize) {
+ public PaddedEphemerallyEncryptedBucketFactory(BucketFactory factory,
RandomSource strongPRNG, Random weakPRNG, int minSize) {
baseFactory = factory;
this.minSize = minSize;
- this.random = r;
+ this.strongPRNG = strongPRNG;
+ this.weakPRNG = weakPRNG;
}
public Bucket makeBucket(long size) throws IOException {
- return new
PaddedEphemerallyEncryptedBucket(baseFactory.makeBucket(size), minSize, random);
+ return new
PaddedEphemerallyEncryptedBucket(baseFactory.makeBucket(size), minSize,
strongPRNG, weakPRNG);
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
2008-05-09 02:09:10 UTC (rev 19857)
+++
branches/saltedhashstore/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -3,13 +3,13 @@
* http://www.gnu.org/ for further details of the GPL. */
package freenet.support.io;
+import freenet.crypt.RandomSource;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
-import freenet.crypt.RandomSource;
import freenet.support.Logger;
import freenet.support.api.Bucket;
import freenet.support.api.BucketFactory;
@@ -36,16 +36,18 @@
private final FilenameGenerator fg;
/** Random number generator */
- private final Random rand;
+ private final RandomSource strongPRNG;
+ private final Random weakPRNG;
/** Buckets to free */
- private final LinkedList bucketsToFree;
+ private LinkedList bucketsToFree;
- public PersistentTempBucketFactory(File dir, String prefix, Random
rand) throws IOException {
+ public PersistentTempBucketFactory(File dir, String prefix,
RandomSource strongPRNG, Random weakPRNG) throws IOException {
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.dir = dir;
- this.rand = rand;
- this.fg = new FilenameGenerator(rand, false, dir, prefix);
+ this.strongPRNG = strongPRNG;
+ this.weakPRNG = weakPRNG;
+ this.fg = new FilenameGenerator(weakPRNG, false, dir, prefix);
if(!dir.exists()) {
dir.mkdir();
if(!dir.exists()) {
@@ -78,6 +80,8 @@
public void register(File file) {
synchronized(this) {
+ if(originalFiles == null)
+ throw new IllegalStateException("completed Init
has already been called!");
file = FileUtil.getCanonicalFile(file);
if(!originalFiles.remove(file))
Logger.error(this, "Preserving "+file+" but it
wasn't found!", new Exception("error"));
@@ -96,6 +100,7 @@
Logger.minor(this, "Deleting old tempfile "+f);
f.delete();
}
+ originalFiles = null;
}
private Bucket makeRawBucket(long size) throws IOException {
@@ -104,12 +109,12 @@
public Bucket makeBucket(long size) throws IOException {
Bucket b = makeRawBucket(size);
- return new DelayedFreeBucket(this, new
PaddedEphemerallyEncryptedBucket(b, 1024, rand));
+ return new DelayedFreeBucket(this, new
PaddedEphemerallyEncryptedBucket(b, 1024, strongPRNG, weakPRNG));
}
public Bucket makeEncryptedBucket() throws IOException {
Bucket b = makeRawBucket(-1);
- return new DelayedFreeBucket(this, new
PaddedEphemerallyEncryptedBucket(b, 1024, rand));
+ return new DelayedFreeBucket(this, new
PaddedEphemerallyEncryptedBucket(b, 1024, strongPRNG, weakPRNG));
}
/**
@@ -121,10 +126,10 @@
}
}
- public Bucket[] grabBucketsToFree() {
+ public LinkedList grabBucketsToFree() {
synchronized(this) {
- Bucket[] toFree = (Bucket[]) bucketsToFree.toArray(new
Bucket[bucketsToFree.size()]);
- bucketsToFree.clear();
+ LinkedList toFree = bucketsToFree;
+ bucketsToFree = new LinkedList();
return toFree;
}
}
Modified:
branches/saltedhashstore/freenet/src/net/i2p/util/NativeBigInteger.java
===================================================================
--- branches/saltedhashstore/freenet/src/net/i2p/util/NativeBigInteger.java
2008-05-09 02:09:10 UTC (rev 19857)
+++ branches/saltedhashstore/freenet/src/net/i2p/util/NativeBigInteger.java
2008-05-09 02:17:04 UTC (rev 19858)
@@ -420,7 +420,7 @@
if(tryLoadResource(temp, resource))
return true;
} catch(Exception fnf) {
- Logger.error(NativeBigInteger.class, "Error reading
jbigi resource");
+ Logger.error(NativeBigInteger.class, "Error reading
jbigi resource", fnf);
System.err.println("Error reading jbigi resource");
} catch(UnsatisfiedLinkError ule) {
Logger.error(NativeBigInteger.class, "Library " +
resourceName + " is not appropriate for this system.");