propagate from branch 'i2p.i2p' (head fd10b04ca3a6cf66e669bfad32d3011ed9f7e33c)

to branch 'i2p.i2p.zzz.ipv6' (head 6f6e16f14691f359322e665a7ad5ab65cbe1ca5e)
This commit is contained in:
zzz
2013-05-29 00:22:15 +00:00
48 changed files with 18131 additions and 28638 deletions

View File

@ -376,10 +376,10 @@ class PeerCoordinator implements PeerListener
*/ */
public boolean needOutboundPeers() { public boolean needOutboundPeers() {
//return wantedBytes != 0 && needPeers(); //return wantedBytes != 0 && needPeers();
// minus one to make it a little easier for new peers to get in on large swarms // minus two to make it a little easier for new peers to get in on large swarms
return wantedBytes != 0 && return wantedBytes != 0 &&
!halted && !halted &&
peers.size() < getMaxConnections() - 1 && peers.size() < getMaxConnections() - 2 &&
(storage == null || !storage.isChecking()); (storage == null || !storage.isChecking());
} }

View File

@ -154,7 +154,7 @@ public class Storage
else else
pc_size = DEFAULT_PIECE_SIZE; pc_size = DEFAULT_PIECE_SIZE;
int pcs = (int) ((total - 1)/pc_size) + 1; int pcs = (int) ((total - 1)/pc_size) + 1;
while (pcs > MAX_PIECES && pc_size < MAX_PIECE_SIZE) while (pcs > (MAX_PIECES * 2 / 3) && pc_size < MAX_PIECE_SIZE)
{ {
pc_size *= 2; pc_size *= 2;
pcs = (int) ((total - 1)/pc_size) +1; pcs = (int) ((total - 1)/pc_size) +1;

View File

@ -2177,6 +2177,23 @@ public class I2PSnarkServlet extends BasicServlet {
private static final String FOOTER = "</div></center></body></html>"; private static final String FOOTER = "</div></center></body></html>";
/**
* Sort alphabetically in current locale, ignore case,
* directories first
* @since 0.9.6
*/
private static class ListingComparator implements Comparator<File> {
private final Comparator collator = Collator.getInstance();
public int compare(File l, File r) {
if (l.isDirectory() && !r.isDirectory())
return -1;
if (r.isDirectory() && !l.isDirectory())
return 1;
return collator.compare(l.getName(), r.getName());
}
}
/** /**
* Modded heavily from the Jetty version in Resource.java, * Modded heavily from the Jetty version in Resource.java,
* pass Resource as 1st param * pass Resource as 1st param
@ -2210,10 +2227,10 @@ public class I2PSnarkServlet extends BasicServlet {
private String getListHTML(File r, String base, boolean parent, Map postParams) private String getListHTML(File r, String base, boolean parent, Map postParams)
throws IOException throws IOException
{ {
String[] ls = null; File[] ls = null;
if (r.isDirectory()) { if (r.isDirectory()) {
ls = r.list(); ls = r.listFiles();
Arrays.sort(ls, Collator.getInstance()); Arrays.sort(ls, new ListingComparator());
} // if r is not a directory, we are only showing torrent info section } // if r is not a directory, we are only showing torrent info section
String title = decodePath(base); String title = decodePath(base);
@ -2289,7 +2306,9 @@ public class I2PSnarkServlet extends BasicServlet {
} }
List<List<String>> alist = meta.getAnnounceList(); List<List<String>> alist = meta.getAnnounceList();
if (alist != null) { if (alist != null) {
buf.append("<tr><td><b>"); buf.append("<tr><td>" +
"<img alt=\"\" border=\"0\" src=\"")
.append(_imgPath).append("details.png\"> <b>");
buf.append(_("Tracker List")).append(":</b> "); buf.append(_("Tracker List")).append(":</b> ");
for (List<String> alist2 : alist) { for (List<String> alist2 : alist) {
buf.append('['); buf.append('[');
@ -2421,12 +2440,12 @@ public class I2PSnarkServlet extends BasicServlet {
boolean showSaveButton = false; boolean showSaveButton = false;
for (int i=0 ; i< ls.length ; i++) for (int i=0 ; i< ls.length ; i++)
{ {
String encoded = encodePath(ls[i]); String encoded = encodePath(ls[i].getName());
// bugfix for I2P - Backport from Jetty 6 (zero file lengths and last-modified times) // bugfix for I2P - Backport from Jetty 6 (zero file lengths and last-modified times)
// http://jira.codehaus.org/browse/JETTY-361?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel#issue-tabs // http://jira.codehaus.org/browse/JETTY-361?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel#issue-tabs
// See resource.diff attachment // See resource.diff attachment
//Resource item = addPath(encoded); //Resource item = addPath(encoded);
File item = new File(r, ls[i]); File item = ls[i];
String rowClass = (i % 2 == 0 ? "snarkTorrentEven" : "snarkTorrentOdd"); String rowClass = (i % 2 == 0 ? "snarkTorrentEven" : "snarkTorrentOdd");
buf.append("<TR class=\"").append(rowClass).append("\">"); buf.append("<TR class=\"").append(rowClass).append("\">");
@ -2437,7 +2456,7 @@ public class I2PSnarkServlet extends BasicServlet {
long length = item.length(); long length = item.length();
if (item.isDirectory()) { if (item.isDirectory()) {
complete = true; complete = true;
status = toImg("tick") + ' ' + _("Directory"); //status = toImg("tick") + ' ' + _("Directory");
} else { } else {
if (snark == null || snark.getStorage() == null) { if (snark == null || snark.getStorage() == null) {
// Assume complete, perhaps he removed a completed torrent but kept a bookmark // Assume complete, perhaps he removed a completed torrent but kept a bookmark
@ -2501,7 +2520,7 @@ public class I2PSnarkServlet extends BasicServlet {
.append(rowClass).append("\">"); .append(rowClass).append("\">");
if (complete) if (complete)
buf.append("<a href=\"").append(path).append("\">"); buf.append("<a href=\"").append(path).append("\">");
buf.append(ls[i]); buf.append(item.getName());
if (complete) if (complete)
buf.append("</a>"); buf.append("</a>");
buf.append("</TD><TD ALIGN=right class=\"").append(rowClass).append(" snarkFileSize\">"); buf.append("</TD><TD ALIGN=right class=\"").append(rowClass).append(" snarkFileSize\">");

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,21 +4,21 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers # To contribute translations, see http://www.i2p2.de/newdevelopers
# #
# Translators: # Translators:
# blabla, 2011. # blabla, 2011
# <blabla@trash-mail.com>, 2011-2012. # blabla <blabla@trash-mail.com>, 2011-2012
# D.A. Loader <>, 2012. # D.A. Loader <>, 2012
# <driz@i2pmail.org>, 2012. # driz <driz@i2pmail.org>, 2012
# ducki2p <ducki2p@gmail.com>, 2011. # ducki2p <ducki2p@gmail.com>, 2011
# foo <foo@bar>, 2009. # foo <foo@bar>, 2009
# mixxy, 2011. # mixxy, 2011
# <pirr@tormail.org>, 2012. # pirr <pirr@tormail.org>, 2012
# <zeroflag@i2pmail.org>, 2013. # zeroflag <zeroflag@i2pmail.org>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P\n" "Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-22 13:13+0000\n" "POT-Creation-Date: 2013-05-15 22:00+0000\n"
"PO-Revision-Date: 2013-02-07 20:04+0000\n" "PO-Revision-Date: 2013-05-08 13:15+0000\n"
"Last-Translator: zeroflag <zeroflag@i2pmail.org>\n" "Last-Translator: zeroflag <zeroflag@i2pmail.org>\n"
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/" "Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
"de/)\n" "de/)\n"
@ -28,15 +28,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:558 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
msgid "This seems to be a bad destination:" msgid "This seems to be a bad destination:"
msgstr "Dies scheint kein gültiges Ziel zu sein:" msgstr "Dies scheint kein gültiges Ziel zu sein:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:558 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
msgid "i2paddresshelper cannot help you with a destination like that!" msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "Der I2P-Adresshelfer kann dir bei solch einem Ziel nicht helfen." msgstr "Der I2P-Adresshelfer kann dir bei solch einem Ziel nicht helfen."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:625 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#, java-format #, java-format
msgid "" msgid ""
"To visit the destination in your host database, click <a href=\"{0}\">here</" "To visit the destination in your host database, click <a href=\"{0}\">here</"
@ -47,7 +47,7 @@ msgstr ""
"\"{0}\">hier</a>, und um das Ziel aus der kollidierenden Adresshelfer-" "\"{0}\">hier</a>, und um das Ziel aus der kollidierenden Adresshelfer-"
"Anfrage zu besuchen, <a href=\"{1}\">hier</a>!" "Anfrage zu besuchen, <a href=\"{1}\">hier</a>!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1029 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:159 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:159
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:426 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:426
@ -55,41 +55,41 @@ msgstr ""
msgid "Host" msgid "Host"
msgstr "Host" msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1033 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
msgid "Base 32" msgid "Base 32"
msgstr "Base 32" msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1037 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:376
msgid "Destination" msgid "Destination"
msgstr "Ziel" msgstr "Ziel"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1043 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#, java-format #, java-format
msgid "Continue to {0} without saving" msgid "Continue to {0} without saving"
msgstr "Weiter zu {0}, ohne zu speichern" msgstr "Weiter zu {0}, ohne zu speichern"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1048 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#, java-format #, java-format
msgid "Save {0} to router address book and continue to eepsite" msgid "Save {0} to router address book and continue to eepsite"
msgstr "{0} im Router-Adressbuch speichern und auf die Eepseite weiterleiten" msgstr "{0} im Router-Adressbuch speichern und auf die Eepseite weiterleiten"
#. only blockfile supports multiple books #. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1051 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#, java-format #, java-format
msgid "Save {0} to master address book and continue to eepsite" msgid "Save {0} to master address book and continue to eepsite"
msgstr "{0} im Master-Adressbuch speichern und auf die Eepseite weiterleiten" msgstr "{0} im Master-Adressbuch speichern und auf die Eepseite weiterleiten"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1052 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#, java-format #, java-format
msgid "Save {0} to private address book and continue to eepsite" msgid "Save {0} to private address book and continue to eepsite"
msgstr "{0} im privaten Adressbuch speichern und auf die Eepseite weiterleiten" msgstr "{0} im privaten Adressbuch speichern und auf die Eepseite weiterleiten"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1179
msgid "HTTP Outproxy" msgid "HTTP Outproxy"
msgstr "HTTP-Outproxy" msgstr "HTTP-Outproxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1171 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
msgid "" msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:" "Click a link below to look for an address helper by using a \"jump\" service:"
msgstr "" msgstr ""
@ -97,7 +97,7 @@ msgstr ""
"Adresshelfer von einem \"Sprung\"-Service:" "Adresshelfer von einem \"Sprung\"-Service:"
#. Translators: parameter is a host name #. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1207 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1220
#, java-format #, java-format
msgid "{0} jump service" msgid "{0} jump service"
msgstr "Weiterleitungsdienst {0}" msgstr "Weiterleitungsdienst {0}"
@ -265,7 +265,7 @@ msgid "HTTP bidir"
msgstr "HTTP Bidir" msgstr "HTTP Bidir"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:603 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:603
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:302 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:301
msgid "Host not set" msgid "Host not set"
msgstr "Host nicht gesetzt" msgstr "Host nicht gesetzt"
@ -289,23 +289,23 @@ msgstr "Neue Proxyeinstellungen"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:129 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:129
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:126 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:126
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:140 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:140
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:260 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:259
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:275 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:326 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:326
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:133 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:133
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:133 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:133
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:264 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:263
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:291 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
msgid "Type" msgid "Type"
msgstr "Typ" msgstr "Typ"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:137 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:243
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:402 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330
msgid "Description" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
@ -572,8 +572,8 @@ msgstr "I2CP-Adresse des Routers"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:418 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:418
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:434 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:434
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:262 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:261
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:284 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:283
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:431 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:431
msgid "Port" msgid "Port"
msgstr "Port" msgstr "Port"
@ -717,15 +717,15 @@ msgstr "Signatur des Namens"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:353 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:353
msgid "4 in, 4 out (high traffic server)" msgid "4 in, 4 out (high traffic server)"
msgstr "" msgstr "4 eingehend, 4 ausgehend (Server mit großem Datenverkehr)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:357 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:357
msgid "5 in, 5 out (high traffic server)" msgid "5 in, 5 out (high traffic server)"
msgstr "" msgstr "5 eingehend, 5 ausgehend (Server mit großem Datenverkehr)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:361 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:361
msgid "6 in, 6 out (high traffic server)" msgid "6 in, 6 out (high traffic server)"
msgstr "" msgstr "6 eingehend, 6 ausgehend (Server mit großem Datenverkehr)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:442 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:442
msgid "Encrypt Leaseset" msgid "Encrypt Leaseset"
@ -861,65 +861,65 @@ msgid "I2P Server Tunnels"
msgstr "I2P-Servertunnel" msgstr "I2P-Servertunnel"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:128 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:128
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:149 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:148
msgid "Points at" msgid "Points at"
msgstr "Läuft auf" msgstr "Läuft auf"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:170
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:175 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:174
msgid "Preview" msgid "Preview"
msgstr "Vorschau" msgstr "Vorschau"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:132 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:132
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:195 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:194
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:268 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:267
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:309 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:308
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:181 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:180
msgid "Base32 Address" msgid "Base32 Address"
msgstr "Basis-32-Adresse" msgstr "Basis-32-Adresse"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:189 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:188
msgid "No Preview" msgid "No Preview"
msgstr "Keine Vorschau" msgstr "Keine Vorschau"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:202 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:201
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:316 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:315
msgid "Starting..." msgid "Starting..."
msgstr "Starte ..." msgstr "Starte ..."
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:209 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:208
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:223 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:323 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:322
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:337 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:336
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:351 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350
msgid "Stop" msgid "Stop"
msgstr "Stopp" msgstr "Stopp"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:216 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:215
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:344 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:343
msgid "Running" msgid "Running"
msgstr "Aktiv" msgstr "Aktiv"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:230 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:229
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:357
msgid "Stopped" msgid "Stopped"
msgstr "Gestoppt" msgstr "Gestoppt"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:237 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:365 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:364
msgid "Start" msgid "Start"
msgstr "Start" msgstr "Start"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:252 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
msgid "New server tunnel" msgid "New server tunnel"
msgstr "Neuer Servertunnel" msgstr "Neuer Servertunnel"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:254 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:412 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:411
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295
@ -928,33 +928,33 @@ msgstr "Neuer Servertunnel"
msgid "Standard" msgid "Standard"
msgstr "Standard" msgstr "Standard"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:256 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:255
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:414 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:413
msgid "Create" msgid "Create"
msgstr "Erstellen" msgstr "Erstellen"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:258 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257
msgid "I2P Client Tunnels" msgid "I2P Client Tunnels"
msgstr "I2P-Klienten-Tunnel" msgstr "I2P-Klienten-Tunnel"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:295 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:294
msgid "Interface" msgid "Interface"
msgstr "Interface" msgstr "Interface"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:330 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:329
msgid "Standby" msgid "Standby"
msgstr "Wartestellung" msgstr "Wartestellung"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:374 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:373
msgid "Outproxy" msgid "Outproxy"
msgstr "Ausgehender Proxy" msgstr "Ausgehender Proxy"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:397 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:396
msgid "none" msgid "none"
msgstr "Keiner" msgstr "Keiner"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:410 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:409
msgid "New client tunnel" msgid "New client tunnel"
msgstr "Neuer Kliententunnel" msgstr "Neuer Kliententunnel"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P i2ptunnel\n" "Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-04-25 14:51+0000\n" "POT-Creation-Date: 2013-05-15 21:57+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n" "PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n" "Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n" "Language-Team: duck <duck@mail.i2p>\n"
@ -47,7 +47,7 @@ msgid "Base 32"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:376
msgid "Destination" msgid "Destination"
msgstr "" msgstr ""
@ -242,7 +242,7 @@ msgid "HTTP bidir"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:603 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:603
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:302 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:301
msgid "Host not set" msgid "Host not set"
msgstr "" msgstr ""
@ -266,23 +266,23 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:129 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:129
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:126 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:126
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:140 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:140
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:260 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:259
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:275 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:326 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:326
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:133 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:133
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:133 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:133
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:264 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:263
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:291 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:137 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:243
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:402 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -533,8 +533,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:418 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:418
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:434 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:434
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:262 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:261
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:284 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:283
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:431 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:431
msgid "Port" msgid "Port"
msgstr "" msgstr ""
@ -822,65 +822,65 @@ msgid "I2P Server Tunnels"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:128 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:128
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:149 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:148
msgid "Points at" msgid "Points at"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:170
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:175 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:174
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:132 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:132
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:195 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:194
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:268 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:267
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:309 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:308
msgid "Status" msgid "Status"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:181 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:180
msgid "Base32 Address" msgid "Base32 Address"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:189 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:188
msgid "No Preview" msgid "No Preview"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:202 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:201
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:316 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:315
msgid "Starting..." msgid "Starting..."
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:209 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:208
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:223 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:323 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:322
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:337 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:336
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:351 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:216 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:215
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:344 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:343
msgid "Running" msgid "Running"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:230 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:229
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:357
msgid "Stopped" msgid "Stopped"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:237 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:365 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:364
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:252 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
msgid "New server tunnel" msgid "New server tunnel"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:254 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:412 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:411
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295
@ -889,33 +889,33 @@ msgstr ""
msgid "Standard" msgid "Standard"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:256 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:255
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:414 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:413
msgid "Create" msgid "Create"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:258 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257
msgid "I2P Client Tunnels" msgid "I2P Client Tunnels"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:295 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:294
msgid "Interface" msgid "Interface"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:330 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:329
msgid "Standby" msgid "Standby"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:374 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:373
msgid "Outproxy" msgid "Outproxy"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:397 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:396
msgid "none" msgid "none"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:410 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:409
msgid "New client tunnel" msgid "New client tunnel"
msgstr "" msgstr ""

View File

@ -869,10 +869,11 @@ public class RouterConsoleRunner implements RouterApp {
*/ */
private static class CustomThreadPoolExecutor extends ExecutorThreadPool { private static class CustomThreadPoolExecutor extends ExecutorThreadPool {
public CustomThreadPoolExecutor() { public CustomThreadPoolExecutor() {
super(MIN_THREADS, MAX_THREADS, MAX_IDLE_TIME, TimeUnit.MILLISECONDS, super(new ThreadPoolExecutor(
new SynchronousQueue() /** , following args not available in Jetty 7 MIN_THREADS, MAX_THREADS, MAX_IDLE_TIME, TimeUnit.MILLISECONDS,
new CustomThreadFactory(), new SynchronousQueue(),
new ThreadPoolExecutor.CallerRunsPolicy() **/ new CustomThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy())
); );
} }
} }

View File

@ -1,36 +1,36 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page trimDirectiveWhitespaces="true"%> <%@page trimDirectiveWhitespaces="true"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<%@include file="css.jsi" %> <%@include file="css.jsi" %>
<%=intl.title("config advanced")%> <%=intl.title("config advanced")%>
<script src="/js/ajax.js" type="text/javascript"></script> <script src="/js/ajax.js" type="text/javascript"></script>
<%@include file="summaryajax.jsi" %> <%@include file="summaryajax.jsi" %>
</head><body onload="initAjax()"> </head><body onload="initAjax()">
<%@include file="summary.jsi" %> <%@include file="summary.jsi" %>
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
<h1><%=intl._("I2P Advanced Configuration")%></h1> <h1><%=intl._("I2P Advanced Configuration")%></h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsi" %> <%@include file="confignav.jsi" %>
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" />
<%@include file="formhandler.jsi" %> <%@include file="formhandler.jsi" %>
<div class="configure"> <div class="configure">
<div class="wideload"> <div class="wideload">
<form action="" method="POST"> <form action="" method="POST">
<input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="nonce" value="<%=pageNonce%>" >
<input type="hidden" name="action" value="blah" > <input type="hidden" name="action" value="blah" >
<h3><%=intl._("Advanced I2P Configuration")%></h3> <h3><%=intl._("Advanced I2P Configuration")%></h3>
<textarea rows="32" cols="60" name="config" wrap="off" spellcheck="false"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br><hr> <textarea rows="32" cols="60" name="config" wrap="off" spellcheck="false"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br><hr>
<div class="formaction"> <div class="formaction">
<input type="reset" class="cancel" value="<%=intl._("Cancel")%>" > <input type="reset" class="cancel" value="<%=intl._("Cancel")%>" >
<input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" > <input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" >
<br><b><%=intl._("NOTE")%>:</b> <%=intl._("Some changes may require a restart to take effect.")%> <br><b><%=intl._("NOTE")%>:</b> <%=intl._("Some changes may require a restart to take effect.")%>
</div></form></div></div></div></body></html> </div></form></div></div></div></body></html>

View File

@ -1,53 +1,53 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page trimDirectiveWhitespaces="true"%> <%@page trimDirectiveWhitespaces="true"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<%@include file="css.jsi" %> <%@include file="css.jsi" %>
<%=intl.title("config logging")%> <%=intl.title("config logging")%>
<script src="/js/ajax.js" type="text/javascript"></script> <script src="/js/ajax.js" type="text/javascript"></script>
<%@include file="summaryajax.jsi" %> <%@include file="summaryajax.jsi" %>
</head><body onload="initAjax()"> </head><body onload="initAjax()">
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
<%@include file="summary.jsi" %> <%@include file="summary.jsi" %>
<h1><%=intl._("I2P Logging Configuration")%></h1> <h1><%=intl._("I2P Logging Configuration")%></h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsi" %> <%@include file="confignav.jsi" %>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" />
<%@include file="formhandler.jsi" %> <%@include file="formhandler.jsi" %>
<div class="configure"> <div class="configure">
<form action="" method="POST"> <form action="" method="POST">
<input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="nonce" value="<%=pageNonce%>" >
<input type="hidden" name="action" value="blah" > <input type="hidden" name="action" value="blah" >
<h3><%=intl._("Configure I2P Logging Options")%></h3> <h3><%=intl._("Configure I2P Logging Options")%></h3>
<div class="wideload"> <div class="wideload">
<table border="0" cellspacing="5"> <table border="0" cellspacing="5">
<tr><td class="mediumtags" align="right"><b><%=intl._("Log file")%>:</b></td> <tr><td class="mediumtags" align="right"><b><%=intl._("Log file")%>:</b></td>
<td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" > <td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" >
<br> <i><%=intl._("(the symbol '@' will be replaced during log rotation)")%></i></td> <br> <i><%=intl._("(the symbol '@' will be replaced during log rotation)")%></i></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log record format")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log record format")%>:</b></td>
<td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" > <td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" >
<br> <i><%=intl._("(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)")%> <br> <i><%=intl._("(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)")%>
</i></td> </i></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log date format")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log date format")%>:</b></td>
<td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" > <td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" >
<br> <i><%=intl._("('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)")%> <br> <i><%=intl._("('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)")%>
</i></td> </i></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("Max log file size")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("Max log file size")%>:</b></td>
<td><input type="text" name="logfilesize" size="10" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" ><br></td> <td><input type="text" name="logfilesize" size="10" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" ><br></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("Default log level")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("Default log level")%>:</b></td>
<td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /><br><i><%=intl._("(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)")%> <td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /><br><i><%=intl._("(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)")%>
</i></td> </i></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log level overrides")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("Log level overrides")%>:</b></td>
<td><jsp:getProperty name="logginghelper" property="logLevelTable" /></td> <td><jsp:getProperty name="logginghelper" property="logLevelTable" /></td>
</tr><tr><td class="mediumtags" align="right"><b><%=intl._("New override")%>:</b></td> </tr><tr><td class="mediumtags" align="right"><b><%=intl._("New override")%>:</b></td>
<td><jsp:getProperty name="logginghelper" property="newClassBox" /></td> <td><jsp:getProperty name="logginghelper" property="newClassBox" /></td>
</tr><tr><td colspan="2"><hr></td> </tr><tr><td colspan="2"><hr></td>
</tr><tr class="tablefooter"><td colspan="2"> <div class="formaction"> </tr><tr class="tablefooter"><td colspan="2"> <div class="formaction">
<input type="reset" class="cancel" value="<%=intl._("Cancel")%>" > <input type="reset" class="cancel" value="<%=intl._("Cancel")%>" >
<input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" > <input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" >
</div></td></tr></table></div></form></div></div></body></html> </div></td></tr></table></div></form></div></div></body></html>

View File

@ -1,152 +1,152 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page trimDirectiveWhitespaces="true"%> <%@page trimDirectiveWhitespaces="true"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<%@include file="css.jsi" %> <%@include file="css.jsi" %>
<%=intl.title("config stats")%> <%=intl.title("config stats")%>
<script src="/js/ajax.js" type="text/javascript"></script> <script src="/js/ajax.js" type="text/javascript"></script>
<%@include file="summaryajax.jsi" %> <%@include file="summaryajax.jsi" %>
<script type="text/javascript"> <script type="text/javascript">
function init() function init()
{ {
checkAll = false; checkAll = false;
initAjax(); initAjax();
} }
function toggleAll(category) function toggleAll(category)
{ {
var inputs = document.getElementsByTagName("input"); var inputs = document.getElementsByTagName("input");
for(index = 0; index < inputs.length; index++) for(index = 0; index < inputs.length; index++)
{ {
var classes = inputs[index].className.split(' '); var classes = inputs[index].className.split(' ');
for (var idx = 0; idx < classes.length; idx++) for (var idx = 0; idx < classes.length; idx++)
{ {
if(classes[idx] == category) if(classes[idx] == category)
{ {
if(inputs[index].checked == 0) if(inputs[index].checked == 0)
{ {
inputs[index].checked = 1; inputs[index].checked = 1;
} }
else if(inputs[index].checked == 1) else if(inputs[index].checked == 1)
{ {
inputs[index].checked = 0; inputs[index].checked = 0;
} }
} }
} }
if(category == '*') if(category == '*')
{ {
if (checkAll == false) if (checkAll == false)
{ {
inputs[index].checked = 1; inputs[index].checked = 1;
} }
else if (checkAll == true) else if (checkAll == true)
{ {
inputs[index].checked = 0; inputs[index].checked = 0;
} }
} }
} }
if(category == '*') if(category == '*')
{ {
if (checkAll == false) if (checkAll == false)
{ {
checkAll = true; checkAll = true;
} }
else if (checkAll == true) else if (checkAll == true)
{ {
checkAll = false; checkAll = false;
} }
} }
} }
</script> </script>
</head><body onLoad="init();"> </head><body onLoad="init();">
<%@include file="summary.jsi" %> <%@include file="summary.jsi" %>
<h1><%=intl._("I2P Stats Configuration")%></h1> <h1><%=intl._("I2P Stats Configuration")%></h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsi" %> <%@include file="confignav.jsi" %>
<jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" />
<%@include file="formhandler.jsi" %> <%@include file="formhandler.jsi" %>
<jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" />
<jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
<div class="configure"> <div class="configure">
<form id="statsForm" name="statsForm" action="" method="POST"> <form id="statsForm" name="statsForm" action="" method="POST">
<input type="hidden" name="action" value="foo" > <input type="hidden" name="action" value="foo" >
<input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="nonce" value="<%=pageNonce%>" >
<h3><%=intl._("Configure I2P Stat Collection")%></h3> <h3><%=intl._("Configure I2P Stat Collection")%></h3>
<p><%=intl._("Enable full stats?")%> <p><%=intl._("Enable full stats?")%>
<input type="checkbox" class="optbox" name="isFull" value="true" <% <input type="checkbox" class="optbox" name="isFull" value="true" <%
if (statshelper.getIsFull()) { %>checked="checked" <% } %> > if (statshelper.getIsFull()) { %>checked="checked" <% } %> >
(<%=intl._("change requires restart to take effect")%>)<br> (<%=intl._("change requires restart to take effect")%>)<br>
<% <%
// stats.log for devs only and grows without bounds, not recommended // stats.log for devs only and grows without bounds, not recommended
boolean shouldShowLog = statshelper.shouldShowLog(); boolean shouldShowLog = statshelper.shouldShowLog();
if (shouldShowLog) { if (shouldShowLog) {
%><%=intl._("Stat file")%>: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" ><br> %><%=intl._("Stat file")%>: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" ><br>
Warning - Log with care, stat file grows without limit.<br> Warning - Log with care, stat file grows without limit.<br>
<% <%
} // shouldShowLog } // shouldShowLog
%><%=intl._("Filter")%>: (<a href="javascript:void(null);" onclick="toggleAll('*')"><%=intl._("toggle all")%></a>)<br></p> %><%=intl._("Filter")%>: (<a href="javascript:void(null);" onclick="toggleAll('*')"><%=intl._("toggle all")%></a>)<br></p>
<div class="wideload"> <div class="wideload">
<table> <table>
<% while (statshelper.hasMoreStats()) { <% while (statshelper.hasMoreStats()) {
while (statshelper.groupRequired()) { %> while (statshelper.groupRequired()) { %>
<tr class="tablefooter"> <tr class="tablefooter">
<td align="left" colspan="3" id=<%=statshelper.getCurrentGroupName()%>> <td align="left" colspan="3" id=<%=statshelper.getCurrentGroupName()%>>
<b><%=intl._(statshelper.getCurrentGroupName())%></b> <b><%=intl._(statshelper.getCurrentGroupName())%></b>
(<a href="javascript:void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')"><%=intl._("toggle all")%></a>) (<a href="javascript:void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')"><%=intl._("toggle all")%></a>)
</td></tr> </td></tr>
<tr class="tablefooter"> <tr class="tablefooter">
<% <%
if (shouldShowLog) { if (shouldShowLog) {
%> <td align="center"><b><%=intl._("Log")%></b></td> %> <td align="center"><b><%=intl._("Log")%></b></td>
<% <%
} // shouldShowLog } // shouldShowLog
%> <td align="center"><b><%=intl._("Graph")%></b></td> %> <td align="center"><b><%=intl._("Graph")%></b></td>
<td></td></tr> <td></td></tr>
<% <%
} // end iterating over required groups for the current stat %> } // end iterating over required groups for the current stat %>
<tr> <tr>
<% <%
if (shouldShowLog) { if (shouldShowLog) {
%> <td align="center"> %> <td align="center">
<a name="<%=statshelper.getCurrentStatName()%>"></a> <a name="<%=statshelper.getCurrentStatName()%>"></a>
<input type="checkbox" class="optbox <%=statshelper.getCurrentGroupName()%>" name="statList" value="<%=statshelper.getCurrentStatName()%>" <% <input type="checkbox" class="optbox <%=statshelper.getCurrentGroupName()%>" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
if (statshelper.getCurrentIsLogged()) { %>checked="checked" <% } %> ></td> if (statshelper.getCurrentIsLogged()) { %>checked="checked" <% } %> ></td>
<% <%
} // shouldShowLog } // shouldShowLog
%> <td align="center"> %> <td align="center">
<% if (statshelper.getCurrentCanBeGraphed()) { %> <% if (statshelper.getCurrentCanBeGraphed()) { %>
<input type="checkbox" class="optbox <%=statshelper.getCurrentGroupName()%>" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <% <input type="checkbox" class="optbox <%=statshelper.getCurrentGroupName()%>" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
if (statshelper.getCurrentIsGraphed()) { %>checked="checked" <% } %> ><% } %></td> if (statshelper.getCurrentIsGraphed()) { %>checked="checked" <% } %> ><% } %></td>
<td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br> <td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br>
<%=statshelper.getCurrentStatDescription()%></td></tr><% <%=statshelper.getCurrentStatDescription()%></td></tr><%
} // end iterating over all stats } // end iterating over all stats
if (shouldShowLog) { if (shouldShowLog) {
%> <tr><td colspan="3"></td></tr> %> <tr><td colspan="3"></td></tr>
<tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" ></td> <tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" ></td>
<td colspan="2"><%=intl._("Advanced filter")%>: <td colspan="2"><%=intl._("Advanced filter")%>:
<input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" ></td></tr> <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" ></td></tr>
<% <%
} // shouldShowLog } // shouldShowLog
%> <tr class="tablefooter"><td colspan="3" align="right"> %> <tr class="tablefooter"><td colspan="3" align="right">
<input type="reset" class="cancel" value="<%=intl._("Cancel")%>" > <input type="reset" class="cancel" value="<%=intl._("Cancel")%>" >
<input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" > <input type="submit" name="shouldsave" class="accept" value="<%=intl._("Save changes")%>" >
</td></tr> </td></tr>
</table></div></form></div></div></body></html> </table></div></form></div></div></body></html>

View File

@ -1,33 +1,33 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page trimDirectiveWhitespaces="true"%> <%@page trimDirectiveWhitespaces="true"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<%@include file="css.jsi" %> <%@include file="css.jsi" %>
<%=intl.title("graphs")%> <%=intl.title("graphs")%>
<jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %> <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
<jsp:setProperty name="graphHelper" property="*" /> <jsp:setProperty name="graphHelper" property="*" />
<% <%
graphHelper.storeWriter(out); graphHelper.storeWriter(out);
graphHelper.storeMethod(request.getMethod()); graphHelper.storeMethod(request.getMethod());
// meta must be inside the head // meta must be inside the head
boolean allowRefresh = intl.allowIFrame(request.getHeader("User-Agent")); boolean allowRefresh = intl.allowIFrame(request.getHeader("User-Agent"));
if (allowRefresh) { if (allowRefresh) {
out.print(graphHelper.getRefreshMeta()); out.print(graphHelper.getRefreshMeta());
} }
%> %>
<script src="/js/ajax.js" type="text/javascript"></script> <script src="/js/ajax.js" type="text/javascript"></script>
<%@include file="summaryajax.jsi" %> <%@include file="summaryajax.jsi" %>
</head><body onload="initAjax()"> </head><body onload="initAjax()">
<%@include file="summary.jsi" %> <%@include file="summary.jsi" %>
<h1><%=intl._("I2P Performance Graphs")%></h1> <h1><%=intl._("I2P Performance Graphs")%></h1>
<div class="main" id="main"> <div class="main" id="main">
<div class="graphspanel"> <div class="graphspanel">
<div class="widepanel"> <div class="widepanel">
<jsp:getProperty name="graphHelper" property="allMessages" /> <jsp:getProperty name="graphHelper" property="allMessages" />
<jsp:getProperty name="graphHelper" property="images" /> <jsp:getProperty name="graphHelper" property="images" />
<jsp:getProperty name="graphHelper" property="form" /> <jsp:getProperty name="graphHelper" property="form" />
</div></div></div></body></html> </div></div></div></body></html>

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P routerconsole\n" "Project-Id-Version: I2P routerconsole\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-04-25 14:51+0000\n" "POT-Creation-Date: 2013-05-15 21:57+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n" "PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n" "Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n" "Language-Team: duck <duck@mail.i2p>\n"
@ -231,7 +231,7 @@ msgstr ""
msgid "Known fast peers" msgid "Known fast peers"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:532 #: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:551
msgid "NetDb entry" msgid "NetDb entry"
msgstr "" msgstr ""
@ -240,45 +240,45 @@ msgstr ""
msgid "No transports (hidden or starting up?)" msgid "No transports (hidden or starting up?)"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:455 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:447
msgid "Unreachable on any transport" msgid "Unreachable on any transport"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:511 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:503
msgid "Router Transport Addresses" msgid "Router Transport Addresses"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:516 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:508
#, java-format #, java-format
msgid "{0} is used for outbound connections only" msgid "{0} is used for outbound connections only"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:522
#: ../java/src/net/i2p/router/web/HomeHelper.java:32 #: ../java/src/net/i2p/router/web/HomeHelper.java:32
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:161 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:161
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
msgid "" msgid ""
"Your transport connection limits are automatically set based on your " "Your transport connection limits are automatically set based on your "
"configured bandwidth." "configured bandwidth."
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
msgid "" msgid ""
"To override these limits, add the settings i2np.ntcp.maxConnections=nnn and " "To override these limits, add the settings i2np.ntcp.maxConnections=nnn and "
"i2np.udp.maxConnections=nnn on the advanced configuration page." "i2np.udp.maxConnections=nnn on the advanced configuration page."
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:527
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:282 #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:282
msgid "Definitions" msgid "Definitions"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:752 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:772
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2179 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2200
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 #: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 #: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 #: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35
@ -287,244 +287,244 @@ msgstr ""
msgid "Peer" msgid "Peer"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
msgid "The remote peer, identified by router hash" msgid "The remote peer, identified by router hash"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:529
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:753 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:773
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2183 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2204
msgid "Dir" msgid "Dir"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
msgid "Inbound connection" msgid "Inbound connection"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
msgid "Outbound connection" msgid "Outbound connection"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
msgid "They offered to introduce us (help other peers traverse our firewall)" msgid "They offered to introduce us (help other peers traverse our firewall)"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
msgid "We offered to introduce them (help other peers traverse their firewall)" msgid "We offered to introduce them (help other peers traverse their firewall)"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
msgid "How long since a packet has been received / sent" msgid "How long since a packet has been received / sent"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:754 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:774
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2184 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2205
msgid "Idle" msgid "Idle"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:755 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:775
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2189 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2210
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:157 #: ../java/src/net/i2p/router/web/TunnelRenderer.java:157
msgid "In/Out" msgid "In/Out"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" msgid "The smoothed inbound / outbound transfer rate (KBytes per second)"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
msgid "How long ago this connection was established" msgid "How long ago this connection was established"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:756 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:776
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2194 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2215
#: ../java/src/net/i2p/router/web/SummaryHelper.java:863 #: ../java/src/net/i2p/router/web/SummaryHelper.java:863
msgid "Up" msgid "Up"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:757 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:777
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2196 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2217
msgid "Skew" msgid "Skew"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
msgid "The difference between the peer's clock and your own" msgid "The difference between the peer's clock and your own"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
msgid "" msgid ""
"The congestion window, which is how many bytes can be sent without an " "The congestion window, which is how many bytes can be sent without an "
"acknowledgement" "acknowledgement"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
msgid "The number of sent messages awaiting acknowledgement" msgid "The number of sent messages awaiting acknowledgement"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
msgid "The maximum number of concurrent messages to send" msgid "The maximum number of concurrent messages to send"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
msgid "The number of pending sends which exceed congestion window" msgid "The number of pending sends which exceed congestion window"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
msgid "The slow start threshold" msgid "The slow start threshold"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:554 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
msgid "The round trip time in milliseconds" msgid "The round trip time in milliseconds"
msgstr "" msgstr ""
#. "<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The standard deviation of the round trip time in milliseconds")).append("<br>\n" + #. "<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The standard deviation of the round trip time in milliseconds")).append("<br>\n" +
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:556 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
msgid "The retransmit timeout in milliseconds" msgid "The retransmit timeout in milliseconds"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:557 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
msgid "" msgid ""
"Current maximum send packet size / estimated maximum receive packet size " "Current maximum send packet size / estimated maximum receive packet size "
"(bytes)" "(bytes)"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:558 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:758 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:778
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2213 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2234
msgid "TX" msgid "TX"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:558 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
msgid "The total number of packets sent to the peer" msgid "The total number of packets sent to the peer"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:559 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:759 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:779
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2215 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2236
msgid "RX" msgid "RX"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:559 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
msgid "The total number of packets received from the peer" msgid "The total number of packets received from the peer"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:560 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2218 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2239
msgid "Dup TX" msgid "Dup TX"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:560 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552
msgid "The total number of packets retransmitted to the peer" msgid "The total number of packets retransmitted to the peer"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:561 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2220 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2241
msgid "Dup RX" msgid "Dup RX"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:561 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553
msgid "The total number of duplicate packets received from the peer" msgid "The total number of duplicate packets received from the peer"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:452 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:456
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20 #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20
msgid "Service" msgid "Service"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:454 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:458
msgid "WAN Common Interface Configuration" msgid "WAN Common Interface Configuration"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:455 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:459
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:461 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:465
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:471 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:475
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:476 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:480
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:97 #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:97
msgid "Status" msgid "Status"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:456 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:460
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:462 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:466
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:472 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:476
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:457 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:461
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:463 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:467
msgid "Upstream" msgid "Upstream"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:458 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:462
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:464 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:468
msgid "Downstream" msgid "Downstream"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:460 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:464
msgid "WAN PPP Connection" msgid "WAN PPP Connection"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:465 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:469
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:473 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:477
msgid "External IP" msgid "External IP"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:467 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:471
msgid "Layer 3 Forwarding" msgid "Layer 3 Forwarding"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:468 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:472
msgid "Default Connection Service" msgid "Default Connection Service"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:470 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:474
msgid "WAN IP Connection" msgid "WAN IP Connection"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:475 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:479
msgid "WAN Ethernet Link Configuration" msgid "WAN Ethernet Link Configuration"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:488 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:492
msgid "Found Device" msgid "Found Device"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:490 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:494
msgid "Subdevice" msgid "Subdevice"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:511 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:515
msgid "UPnP Status" msgid "UPnP Status"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:514 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:518
msgid "" msgid ""
"UPnP has been disabled; Do you have more than one UPnP Internet Gateway " "UPnP has been disabled; Do you have more than one UPnP Internet Gateway "
"Device on your LAN ?" "Device on your LAN ?"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:517 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:521
msgid "UPnP has not found any UPnP-aware, compatible device on your LAN." msgid "UPnP has not found any UPnP-aware, compatible device on your LAN."
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:525 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:529
#, java-format #, java-format
msgid "The current external IP address reported by UPnP is {0}" msgid "The current external IP address reported by UPnP is {0}"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:527 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:531
msgid "The current external IP address is not available." msgid "The current external IP address is not available."
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:531 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:535
#, java-format #, java-format
msgid "UPnP reports the maximum downstream bit rate is {0}bits/sec" msgid "UPnP reports the maximum downstream bit rate is {0}bits/sec"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:533 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:537
#, java-format #, java-format
msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec" msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec"
msgstr "" msgstr ""
@ -532,12 +532,12 @@ msgstr ""
#. {0} is TCP or UDP #. {0} is TCP or UDP
#. {1,number,#####} prevents 12345 from being output as 12,345 in the English locale. #. {1,number,#####} prevents 12345 from being output as 12,345 in the English locale.
#. If you want the digit separator in your locale, translate as {1}. #. If you want the digit separator in your locale, translate as {1}.
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:541 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:545
#, java-format #, java-format
msgid "{0} port {1,number,#####} was successfully forwarded by UPnP." msgid "{0} port {1,number,#####} was successfully forwarded by UPnP."
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:543 #: ../../../router/java/src/net/i2p/router/transport/UPnP.java:547
#, java-format #, java-format
msgid "{0} port {1,number,#####} was not forwarded by UPnP." msgid "{0} port {1,number,#####} was not forwarded by UPnP."
msgstr "" msgstr ""
@ -552,151 +552,151 @@ msgstr ""
msgid "Excessive clock skew: {0}" msgid "Excessive clock skew: {0}"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:747 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:767
msgid "NTCP connections" msgid "NTCP connections"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:748 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:768
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2175 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2196
msgid "Limit" msgid "Limit"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:749 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:769
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2176 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2197
msgid "Timeout" msgid "Timeout"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:760 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:780
msgid "Out Queue" msgid "Out Queue"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:761 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:781
msgid "Backlogged?" msgid "Backlogged?"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:775 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:795
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2238 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2259
#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:88 #: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:88
msgid "Inbound" msgid "Inbound"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:777 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:797
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2240 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2261
#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:88 #: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:88
msgid "Outbound" msgid "Outbound"
msgstr "" msgstr ""
#. buf.append("<tr> <td colspan=\"11\"><hr></td></tr>\n"); #. buf.append("<tr> <td colspan=\"11\"><hr></td></tr>\n");
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:826 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:846
msgid "peers" msgid "peers"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2174 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2195
msgid "UDP connections" msgid "UDP connections"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2181 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2202
msgid "Sort by peer hash" msgid "Sort by peer hash"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2183 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2204
msgid "Direction/Introduction" msgid "Direction/Introduction"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2185 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2206
msgid "Sort by idle inbound" msgid "Sort by idle inbound"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2187 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2208
msgid "Sort by idle outbound" msgid "Sort by idle outbound"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2190 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2211
msgid "Sort by inbound rate" msgid "Sort by inbound rate"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2192 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2213
msgid "Sort by outbound rate" msgid "Sort by outbound rate"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2195 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2216
msgid "Sort by connection uptime" msgid "Sort by connection uptime"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2197 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2218
msgid "Sort by clock skew" msgid "Sort by clock skew"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2200 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2221
msgid "Sort by congestion window" msgid "Sort by congestion window"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2202 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2223
msgid "Sort by slow start threshold" msgid "Sort by slow start threshold"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2205 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2226
msgid "Sort by round trip time" msgid "Sort by round trip time"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2209 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2230
msgid "Sort by retransmission timeout" msgid "Sort by retransmission timeout"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2212 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2233
msgid "Sort by outbound maximum transmit unit" msgid "Sort by outbound maximum transmit unit"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2214 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2235
msgid "Sort by packets sent" msgid "Sort by packets sent"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2216 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2237
msgid "Sort by packets received" msgid "Sort by packets received"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2219 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2240
msgid "Sort by packets retransmitted" msgid "Sort by packets retransmitted"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2221 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2242
msgid "Sort by packets received more than once" msgid "Sort by packets received more than once"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2242 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2263
msgid "We offered to introduce them" msgid "We offered to introduce them"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2244 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2265
msgid "They offered to introduce us" msgid "They offered to introduce us"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2248 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2269
msgid "Choked" msgid "Choked"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2256 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2277
msgid "1 fail" msgid "1 fail"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2258 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2279
#, java-format #, java-format
msgid "{0} fails" msgid "{0} fails"
msgstr "" msgstr ""
#. 1 #. 1
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2264 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2285
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:172 #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:172
#: ../java/src/net/i2p/router/web/ProfilesHelper.java:13 #: ../java/src/net/i2p/router/web/ProfilesHelper.java:13
msgid "Banned" msgid "Banned"
msgstr "" msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2316 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2337
msgid "backlogged" msgid "backlogged"
msgstr "" msgstr ""
#. buf.append("<tr><td colspan=\"16\"><hr></td></tr>\n"); #. buf.append("<tr><td colspan=\"16\"><hr></td></tr>\n");
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2396 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2417
msgid "SUMMARY" msgid "SUMMARY"
msgstr "" msgstr ""
@ -2749,16 +2749,14 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:38 #: ../java/src/net/i2p/router/web/ConfigNetHelper.java:38
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:46 #: ../java/src/net/i2p/router/web/ConfigNetHelper.java:46
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:49 #: ../java/src/net/i2p/router/web/ConfigNetHelper.java:49
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:56
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:59
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:171 #: ../java/src/net/i2p/router/web/ConfigNetHelper.java:185
msgid "bits per second" msgid "bits per second"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:172 #: ../java/src/net/i2p/router/web/ConfigNetHelper.java:186
#, java-format #, java-format
msgid "or {0} bytes per month maximum" msgid "or {0} bytes per month maximum"
msgstr "" msgstr ""
@ -3354,7 +3352,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:163 #: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:163
#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:111 #: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:111
#: ../java/src/net/i2p/router/web/GraphHelper.java:376 #: ../java/src/net/i2p/router/web/GraphHelper.java:375
msgid "Never" msgid "Never"
msgstr "" msgstr ""
@ -3404,129 +3402,129 @@ msgid ""
"browser." "browser."
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:160 #: ../java/src/net/i2p/router/web/GraphHelper.java:159
msgid "Combined bandwidth graph" msgid "Combined bandwidth graph"
msgstr "" msgstr ""
#. e.g. "statname for 60m" #. e.g. "statname for 60m"
#: ../java/src/net/i2p/router/web/GraphHelper.java:173 #: ../java/src/net/i2p/router/web/GraphHelper.java:172
#: ../java/src/net/i2p/router/web/GraphHelper.java:235 #: ../java/src/net/i2p/router/web/GraphHelper.java:234
#, java-format #, java-format
msgid "{0} for {1}" msgid "{0} for {1}"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:222 #: ../java/src/net/i2p/router/web/GraphHelper.java:221
#: ../java/src/net/i2p/router/web/StatSummarizer.java:302 #: ../java/src/net/i2p/router/web/StatSummarizer.java:302
msgid "Bandwidth usage" msgid "Bandwidth usage"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:237 #: ../java/src/net/i2p/router/web/GraphHelper.java:236
#, java-format #, java-format
msgid "ending {0} ago" msgid "ending {0} ago"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:252 #: ../java/src/net/i2p/router/web/GraphHelper.java:251
msgid "Larger" msgid "Larger"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:258 #: ../java/src/net/i2p/router/web/GraphHelper.java:257
msgid "Smaller" msgid "Smaller"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:264 #: ../java/src/net/i2p/router/web/GraphHelper.java:263
msgid "Taller" msgid "Taller"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:270 #: ../java/src/net/i2p/router/web/GraphHelper.java:269
msgid "Shorter" msgid "Shorter"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:276 #: ../java/src/net/i2p/router/web/GraphHelper.java:275
msgid "Wider" msgid "Wider"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:282 #: ../java/src/net/i2p/router/web/GraphHelper.java:281
msgid "Narrower" msgid "Narrower"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:289 #: ../java/src/net/i2p/router/web/GraphHelper.java:288
msgid "Larger interval" msgid "Larger interval"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:295 #: ../java/src/net/i2p/router/web/GraphHelper.java:294
msgid "Smaller interval" msgid "Smaller interval"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:302 #: ../java/src/net/i2p/router/web/GraphHelper.java:301
msgid "Previous interval" msgid "Previous interval"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:313 #: ../java/src/net/i2p/router/web/GraphHelper.java:312
msgid "Next interval" msgid "Next interval"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:320 #: ../java/src/net/i2p/router/web/GraphHelper.java:319
#: ../java/src/net/i2p/router/web/GraphHelper.java:360 #: ../java/src/net/i2p/router/web/GraphHelper.java:359
msgid "Plot averages" msgid "Plot averages"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:320 #: ../java/src/net/i2p/router/web/GraphHelper.java:319
#: ../java/src/net/i2p/router/web/GraphHelper.java:361 #: ../java/src/net/i2p/router/web/GraphHelper.java:360
msgid "plot events" msgid "plot events"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:323 #: ../java/src/net/i2p/router/web/GraphHelper.java:322
msgid "All times are UTC." msgid "All times are UTC."
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:355 #: ../java/src/net/i2p/router/web/GraphHelper.java:354
msgid "Configure Graph Display" msgid "Configure Graph Display"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:355 #: ../java/src/net/i2p/router/web/GraphHelper.java:354
msgid "Select Stats" msgid "Select Stats"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:359 #: ../java/src/net/i2p/router/web/GraphHelper.java:358
msgid "Periods" msgid "Periods"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:361 #: ../java/src/net/i2p/router/web/GraphHelper.java:360
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:492 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:492
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:485 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:485
msgid "or" msgid "or"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:362 #: ../java/src/net/i2p/router/web/GraphHelper.java:361
msgid "Image sizes" msgid "Image sizes"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:362 #: ../java/src/net/i2p/router/web/GraphHelper.java:361
msgid "width" msgid "width"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:363 #: ../java/src/net/i2p/router/web/GraphHelper.java:362
msgid "height" msgid "height"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:362
#: ../java/src/net/i2p/router/web/GraphHelper.java:363 #: ../java/src/net/i2p/router/web/GraphHelper.java:363
#: ../java/src/net/i2p/router/web/GraphHelper.java:364
msgid "pixels" msgid "pixels"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:365 #: ../java/src/net/i2p/router/web/GraphHelper.java:364
msgid "Refresh delay" msgid "Refresh delay"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:380 #: ../java/src/net/i2p/router/web/GraphHelper.java:379
msgid "Store graph data on disk?" msgid "Store graph data on disk?"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:386 #: ../java/src/net/i2p/router/web/GraphHelper.java:385
msgid "Save settings and redraw graphs" msgid "Save settings and redraw graphs"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:441 #: ../java/src/net/i2p/router/web/GraphHelper.java:440
msgid "Graph settings saved" msgid "Graph settings saved"
msgstr "" msgstr ""
@ -3956,18 +3954,18 @@ msgstr ""
msgid "Show news" msgid "Show news"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/PluginStarter.java:132 #: ../java/src/net/i2p/router/web/PluginStarter.java:133
msgid "Checking for plugin updates" msgid "Checking for plugin updates"
msgstr "" msgstr ""
#: ../java/src/net/i2p/router/web/PluginStarter.java:174 #: ../java/src/net/i2p/router/web/PluginStarter.java:175
#, java-format #, java-format
msgid "1 plugin updated" msgid "1 plugin updated"
msgid_plural "{0} plugins updated" msgid_plural "{0} plugins updated"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../java/src/net/i2p/router/web/PluginStarter.java:176 #: ../java/src/net/i2p/router/web/PluginStarter.java:177
msgid "Plugin update check complete" msgid "Plugin update check complete"
msgstr "" msgstr ""

View File

@ -542,8 +542,9 @@ class Connection {
_context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT); _context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
} }
_resetReceived = true; _resetReceived = true;
_outputStream.streamErrorOccurred(new IOException("Reset received")); IOException ioe = new IOException("Reset received");
_inputStream.streamErrorOccurred(new IOException("Reset received")); _outputStream.streamErrorOccurred(ioe);
_inputStream.streamErrorOccurred(ioe);
_connectionError = "Connection reset"; _connectionError = "Connection reset";
synchronized (_connectLock) { _connectLock.notifyAll(); } synchronized (_connectLock) { _connectLock.notifyAll(); }
} }
@ -998,8 +999,9 @@ class Connection {
_log.debug(buf.toString()); _log.debug(buf.toString());
} }
_inputStream.streamErrorOccurred(new IOException("Inactivity timeout")); IOException ioe = new IOException("Inactivity timeout");
_outputStream.streamErrorOccurred(new IOException("Inactivity timeout")); _inputStream.streamErrorOccurred(ioe);
_outputStream.streamErrorOccurred(ioe);
// Clean disconnect if we have already scheduled one // Clean disconnect if we have already scheduled one
// (generally because we already sent a close) // (generally because we already sent a close)
disconnect(_disconnectScheduledOn >= 0); disconnect(_disconnectScheduledOn >= 0);

View File

@ -465,10 +465,13 @@ class MessageInputStream extends InputStream {
} }
private void throwAnyError() throws IOException { private void throwAnyError() throws IOException {
if (_streamError != null) { IOException ioe = _streamError;
IOException ioe = _streamError; if (ioe != null) {
_streamError = null; _streamError = null;
throw ioe; // constructor with cause not until Java 6
IOException ioe2 = new IOException("Input stream error");
ioe2.initCause(ioe);
throw ioe2;
} }
} }
} }

View File

@ -446,10 +446,13 @@ class MessageOutputStream extends OutputStream {
public boolean getClosed() { return _closed; } public boolean getClosed() { return _closed; }
private void throwAnyError() throws IOException { private void throwAnyError() throws IOException {
if (_streamError != null) { IOException ioe = _streamError;
IOException ioe = _streamError; if (ioe != null) {
_streamError = null; _streamError = null;
throw ioe; // constructor with cause not until Java 6
IOException ioe2 = new IOException("Output stream error");
ioe2.initCause(ioe);
throw ioe2;
} }
} }

View File

@ -4,25 +4,27 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers # To contribute translations, see http://www.i2p2.de/newdevelopers
# #
# Translators: # Translators:
# "blabla", 2011. # "blabla", 2011
# D.A. Loader <>, 2012. # blabla <blabla@trash-mail.com>, 2012
# ducki2p <ducki2p@gmail.com>, 2011. # D.A. Loader <>, 2012
# foo <foo@bar>, 2009. # ducki2p <ducki2p@gmail.com>, 2011
# mixxy, 2011. # foo <foo@bar>, 2009
# mixxy, 2011
# zeroflag <zeroflag@i2pmail.org>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P\n" "Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:46+0000\n" "POT-Creation-Date: 2013-05-15 22:00+0000\n"
"PO-Revision-Date: 2012-03-11 02:03+0000\n" "PO-Revision-Date: 2013-05-08 13:02+0000\n"
"Last-Translator: D.A. Loader <>\n" "Last-Translator: zeroflag <zeroflag@i2pmail.org>\n"
"Language-Team: German (http://www.transifex.net/projects/p/I2P/language/" "Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
"de/)\n" "de/)\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130 #: ../src/java/src/i2p/susi/dns/AddressBean.java:130
#, java-format #, java-format
@ -112,7 +114,7 @@ msgstr "Zeige {0} von {1}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
msgid "Add" msgid "Add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
@ -120,7 +122,7 @@ msgstr "Hinzufügen"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
msgid "Replace" msgid "Replace"
msgstr "Ersetzen" msgstr "Ersetzen"
@ -178,13 +180,13 @@ msgstr "Bitte geben Sie einen Hostnamen und ein Ziel ein!"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:267
msgid "Delete Entry" msgid "Delete Entry"
msgstr "Eintrag löschen" msgstr "Eintrag löschen"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
msgid "Delete Selected" msgid "Delete Selected"
msgstr "Ausgewähltes löschen" msgstr "Ausgewähltes löschen"
@ -219,9 +221,9 @@ msgid "ERROR: Could not write addressbook file."
msgstr "FEHLER: Konnte Adressbuchdatei nicht schreiben." msgstr "FEHLER: Konnte Adressbuchdatei nicht schreiben."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:149 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:140
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:142
msgid "" msgid ""
"Invalid form submission, probably because you used the \"back\" or \"reload" "Invalid form submission, probably because you used the \"back\" or \"reload"
"\" button on your browser. Please resubmit." "\" button on your browser. Please resubmit."
@ -230,33 +232,35 @@ msgstr ""
"laden\"-Schalter in Ihrem Browser genutzt. Bitte neu senden!" "laden\"-Schalter in Ihrem Browser genutzt. Bitte neu senden!"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:151 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:144
msgid "" msgid ""
"If the problem persists, verify that you have cookies enabled in your " "If the problem persists, verify that you have cookies enabled in your "
"browser." "browser."
msgstr "" msgstr ""
"Falls das Problem weiterhin besteht: Stellen Sie sicher, dass Sie in Ihrem "
"Browser Cookies aktiviert haben."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:140 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:131
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:117
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:133
msgid "Configuration saved." msgid "Configuration saved."
msgstr "Einstellungen gespeichert" msgstr "Einstellungen gespeichert"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:143 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:134
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:136
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload" msgid "Reload"
msgstr "Neu laden" msgstr "Neu laden"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:145 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:136
msgid "Configuration reloaded." msgid "Configuration reloaded."
msgstr "Einstellungen neu geladen" msgstr "Einstellungen neu geladen"
@ -279,18 +283,18 @@ msgstr "Konnte das Ziel für {0} nicht dem Domainnamenservice {1} hinzufügen"
msgid "Failed to delete Destination for {0} from naming service {1}" msgid "Failed to delete Destination for {0} from naming service {1}"
msgstr "Konnte das Ziel für {0} nicht aus dem Domainnamenservice {1} löschen" msgstr "Konnte das Ziel für {0} nicht aus dem Domainnamenservice {1} löschen"
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:115 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:129
msgid "" msgid ""
"Subscriptions saved, updating addressbook from subscription sources now." "Subscriptions saved, updating addressbook from subscription sources now."
msgstr "" msgstr ""
"Abonnement gespeichert, aktualisiere jetzt das Adressbuch von untenstehenden " "Abonnement gespeichert, aktualisiere jetzt das Adressbuch von untenstehenden "
"Aboquellen." "Aboquellen."
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:134
msgid "Subscriptions saved." msgid "Subscriptions saved."
msgstr "Abonnementquellen gespeichert" msgstr "Abonnementquellen gespeichert"
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:138
msgid "Subscriptions reloaded." msgid "Subscriptions reloaded."
msgstr "Abonnementquellen neu geladen" msgstr "Abonnementquellen neu geladen"
@ -410,8 +414,8 @@ msgid "Links"
msgstr "Links" msgstr "Links"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:250 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:250
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:402
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:266 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:259
msgid "Destination" msgid "Destination"
msgstr "Ziel" msgstr "Ziel"
@ -419,32 +423,32 @@ msgstr "Ziel"
msgid "Mark for deletion" msgid "Mark for deletion"
msgstr "zum Löschen markieren" msgstr "zum Löschen markieren"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:305
msgid "Base 32 address" msgid "Base 32 address"
msgstr "Adresse (Basis32)" msgstr "Adresse (Basis32)"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:309
msgid "More information on this entry" msgid "More information on this entry"
msgstr "Weitere Informationen über diesen Eintrag" msgstr "Weitere Informationen über diesen Eintrag"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
msgid "details" msgid "details"
msgstr "Details" msgstr "Details"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:347
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:406
msgid "Cancel" msgid "Cancel"
msgstr "Abbruch" msgstr "Abbruch"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:381
msgid "This address book is empty." msgid "This address book is empty."
msgstr "Dieses Adressbuch ist leer." msgstr "Dieses Adressbuch ist leer."
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:396
msgid "Add new destination" msgid "Add new destination"
msgstr "Füge neues Ziel hinzu" msgstr "Füge neues Ziel hinzu"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
msgid "Host Name" msgid "Host Name"
msgstr "Hostname" msgstr "Hostname"
@ -568,65 +572,65 @@ msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
msgid "Name of the theme to use (defaults to 'light')" msgid "Name of the theme to use (defaults to 'light')"
msgstr "" msgstr "Name des gewählten Themas (Standard ist \"hell\")"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
msgid "addressbook" msgid "addressbook"
msgstr "Adressbuch" msgstr "Adressbuch"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:179
msgid "Encoded Name" msgid "Encoded Name"
msgstr "kodierter Name" msgstr "kodierter Name"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:193
msgid "Base 32 Address" msgid "Base 32 Address"
msgstr "Basis32-Adresse" msgstr "Basis32-Adresse"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:201
msgid "Base 64 Hash" msgid "Base 64 Hash"
msgstr "Base 64 Hash" msgstr "Base 64 Hash"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
msgid "Address Helper" msgid "Address Helper"
msgstr "Adresshelfer" msgstr "Adresshelfer"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
msgid "link" msgid "link"
msgstr "Link" msgstr "Link"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:217
msgid "Public Key" msgid "Public Key"
msgstr "Öffentlicher Schlüssel" msgstr "Öffentlicher Schlüssel"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
msgid "ElGamal 2048 bit" msgid "ElGamal 2048 bit"
msgstr "ElGamal 2048 bit" msgstr "ElGamal 2048 bit"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:223
msgid "Signing Key" msgid "Signing Key"
msgstr "Authentifizierungsschlüssel" msgstr "Authentifizierungsschlüssel"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:225
msgid "DSA 1024 bit" msgid "DSA 1024 bit"
msgstr "DSA 1024 bit" msgstr "DSA 1024 bit"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
msgid "Certificate" msgid "Certificate"
msgstr "Zertifikat" msgstr "Zertifikat"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
msgid "Added Date" msgid "Added Date"
msgstr "Datum hinzugefügt" msgstr "Datum hinzugefügt"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
msgid "Source" msgid "Source"
msgstr "Quelle" msgstr "Quelle"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
msgid "Last Modified" msgid "Last Modified"
msgstr "Zuletzt geändert:" msgstr "Zuletzt geändert:"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
msgid "Notes" msgid "Notes"
msgstr "Anmerkungen" msgstr "Anmerkungen"
@ -669,7 +673,7 @@ msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
msgid "" msgid ""
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/" "For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
"naming.html\">the overview on www.i2p2.i2p</a>." "naming.html\" target=\"_top\">the overview on www.i2p2.i2p</a>."
msgstr "" msgstr ""
"Für weitere Informationen über Domainnamen im I2P sei hier auf <a href=" "Für weitere Informationen über Domainnamen im I2P sei hier auf <a href="
"\"http://www.i2p2.i2p/naming.html\">die Erläuterungen auf www.i2p2.i2p</a> " "\"http://www.i2p2.i2p/naming.html\">die Erläuterungen auf www.i2p2.i2p</a> "

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P susidns\n" "Project-Id-Version: I2P susidns\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-04-25 14:51+0000\n" "POT-Creation-Date: 2013-05-15 21:58+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n" "PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n" "Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n" "Language-Team: duck <duck@mail.i2p>\n"
@ -209,42 +209,42 @@ msgid "ERROR: Could not write addressbook file."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:149 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:140
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:142
msgid "" msgid ""
"Invalid form submission, probably because you used the \"back\" or \"reload" "Invalid form submission, probably because you used the \"back\" or \"reload"
"\" button on your browser. Please resubmit." "\" button on your browser. Please resubmit."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:151 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:144
msgid "" msgid ""
"If the problem persists, verify that you have cookies enabled in your " "If the problem persists, verify that you have cookies enabled in your "
"browser." "browser."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:140 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:131
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:117
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:133
msgid "Configuration saved." msgid "Configuration saved."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:143 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:134
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:136
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload" msgid "Reload"
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:145 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:136
msgid "Configuration reloaded." msgid "Configuration reloaded."
msgstr "" msgstr ""
@ -267,16 +267,16 @@ msgstr ""
msgid "Failed to delete Destination for {0} from naming service {1}" msgid "Failed to delete Destination for {0} from naming service {1}"
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:115 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:129
msgid "" msgid ""
"Subscriptions saved, updating addressbook from subscription sources now." "Subscriptions saved, updating addressbook from subscription sources now."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:134
msgid "Subscriptions saved." msgid "Subscriptions saved."
msgstr "" msgstr ""
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:138
msgid "Subscriptions reloaded." msgid "Subscriptions reloaded."
msgstr "" msgstr ""

View File

@ -331,6 +331,7 @@
<target name="jbigi" depends="buildProperties, jbigi-list-changes" > <target name="jbigi" depends="buildProperties, jbigi-list-changes" >
<!-- set if unset --> <!-- set if unset -->
<property name="workspace.changes.jbigi.tr" value="" /> <property name="workspace.changes.jbigi.tr" value="" />
<mkdir dir="./build" />
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" > <jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
<fileset dir="installer/lib/jbigi" includes="*.so *.dll *.jnilib" /> <fileset dir="installer/lib/jbigi" includes="*.so *.dll *.jnilib" />
<manifest> <manifest>

View File

@ -5,6 +5,15 @@ if [ $UNIXTYPE = "freebsd" ]; then
elif [ -d /usr/local/openjdk7 ]; then elif [ -d /usr/local/openjdk7 ]; then
JAVA_HOME="/usr/local/openjdk7" JAVA_HOME="/usr/local/openjdk7"
fi fi
elif [ $UNIXTYPE = "sunos" ]; then
UNIXTYPE="solaris"
if [ -d /usr/jdk/latest/ ]; then
JAVA_HOME="/usr/jdk/latest"
elif [ -d /usr/jdk/instances/jdk1.7.0/ ]; then
JAVA_HOME="/usr/jdk/instances/jdk1.7.0"
elif [ -d /usr/jdk/instances/jdk1.6.0 ]; then
JAVA_HOME="/usr/jdk/instances/jdk1.6.0"
fi
elif [ $UNIXTYPE = "openbsd" ]; then elif [ $UNIXTYPE = "openbsd" ]; then
if [ -d /usr/local/jdk-1.7.0 ]; then if [ -d /usr/local/jdk-1.7.0 ]; then
JAVA_HOME="/usr/local/jdk-1.7.0" JAVA_HOME="/usr/local/jdk-1.7.0"
@ -26,9 +35,10 @@ elif [ $UNIXTYPE = "linux" ] && [ -e /etc/arch-release ]; then
elif [ $UNIXTYPE = "darwin" ]; then elif [ $UNIXTYPE = "darwin" ]; then
JAVA_HOME=$(/usr/libexec/java_home) JAVA_HOME=$(/usr/libexec/java_home)
elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then
UNIXTYPE="linux"
if [ -d /usr/lib/jvm/java-gcj ]; then if [ -d /usr/lib/jvm/java-gcj ]; then
JAVA_HOME="/usr/lib/jvm/java-gcj" JAVA_HOME="/usr/lib/jvm/java-gcj"
fi fi
fi fi
export JAVA_HOME export JAVA_HOME UNIXTYPE

View File

@ -2,7 +2,7 @@
# When executed in Mingw: Produces a jbigi.dll # When executed in Mingw: Produces a jbigi.dll
# When executed in Linux/FreeBSD: Produces a libjbigi.so # When executed in Linux/FreeBSD: Produces a libjbigi.so
# When executed in OSX: Produces a libjbigi.jnilib # When executed in OSX: Produces a libjbigi.jnilib
CC="gcc" [ -z "$CC" ] && CC="gcc"
# If JAVA_HOME isn't set we'll try to figure it out # If JAVA_HOME isn't set we'll try to figure it out
[ -z $JAVA_HOME ] && . ../find-java-home [ -z $JAVA_HOME ] && . ../find-java-home
@ -38,7 +38,7 @@ SunOS*|OpenBSD*|NetBSD*|*FreeBSD*|Linux*)
elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then
UNIXTYPE="linux" UNIXTYPE="linux"
fi fi
COMPILEFLAGS="-fPIC -Wall" COMPILEFLAGS="-fPIC -Wall $CFLAGS"
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}" INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
LINKFLAGS="-shared -Wl,-soname,libjbigi.so" LINKFLAGS="-shared -Wl,-soname,libjbigi.so"
LIBFILE="libjbigi.so";; LIBFILE="libjbigi.so";;

View File

@ -1,14 +1,12 @@
#!/bin/sh #!/bin/sh
# If JAVA_HOME isn't set we'll try to figure it out # ON Solaris 11 (at least) this variable must be set.
[ -z $JAVA_HOME ] && . ../find-java-home # Linux and *BSD will do the right thing.
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then #
echo "Cannot find jni.h! Looked in '$JAVA_HOME/include/jni.h'" #BITS=32
echo "Please set JAVA_HOME to a java home that has the JNI"
exit 1
fi
#FIXME What platforms for MacOS? # FIXME Is this all?
DARWIN_PLATFORMS="core2 corei"
MISC_DARWIN_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle" MISC_DARWIN_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle"
# Note: You will have to add the CPU ID for the platform in the CPU ID code # Note: You will have to add the CPU ID for the platform in the CPU ID code
@ -45,24 +43,6 @@ X86_64_PLATFORMS="atom athlon64 core2 corei nano pentium4"
# Note! these are 32bit _ONLY_ # Note! these are 32bit _ONLY_
X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon geode viac3 viac32 ${X86_64_PLATFORMS}" X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon geode viac3 viac32 ${X86_64_PLATFORMS}"
#
# You should not need to edit anything below this comment.
#
# The built-in echo in /bin/sh (the real bourne shell) on BSD systems supports -e.
# The built-in echo in dash (the default /bin/sh on Debian) does not support -e
# but /bin/echo always supports -e in Linux; therefore, let's set echo to /bin/echo
# whenever we're on Linux and use the shell's built-in "echo" on everything else.
if [ $(uname -s |tr "[A-Z]" "[a-z]") = "linux" ]; then
ECHO="/bin/echo"
elif [ $(uname -s |tr "[A-Z]" "[a-z]") = "gnu/kfreebsd" ]; then
ECHO="/bin/echo"
else
ECHO="echo"
fi
MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}" MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}"
LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}" LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}"
FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}" FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}"
@ -70,44 +50,96 @@ FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}"
NETBSD_PLATFORMS="${FREEBSD_PLATFORMS} ${MISC_LINUX_PLATFORMS} ${MISC_NETBSD_PLATFORMS}" NETBSD_PLATFORMS="${FREEBSD_PLATFORMS} ${MISC_LINUX_PLATFORMS} ${MISC_NETBSD_PLATFORMS}"
OPENBSD_PLATFORM="${X86_PLATFORMS} ${MISC_OPENBSD_PLATFORMS}" OPENBSD_PLATFORM="${X86_PLATFORMS} ${MISC_OPENBSD_PLATFORMS}"
# FIXME Is this all? #
DARWIN_PLATFORMS="core2 corei" # You should not need to edit anything below this comment.
#
# If JAVA_HOME isn't set we'll try to figure it out
[ -z $JAVA_HOME ] && . ../find-java-home
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then
echo "Cannot find jni.h! Looked in '$JAVA_HOME/include/jni.h'" >&2
echo "Please set JAVA_HOME to a java home that has the JNI" >&2
exit 1
fi
if [ ! $(which m4) ]; then
printf "\aWARNING: \`m4\` not found. If this process fails to complete, install m4 " >&2
printf "and re-run this script.\n\n\n\a" >&2
sleep 10
fi
# Allow TARGET to be overridden (e.g. for use with cross compilers)
[ -z $TARGET ] && TARGET=$(uname -s |tr "[A-Z]" "[a-z]")
# Set the version to 5.0.2 for OSX because AFAIK there are only 64bit capable CPUs for the Intel Macs # Set the version to 5.0.2 for OSX because AFAIK there are only 64bit capable CPUs for the Intel Macs
if [ `uname -s |grep Darwin` ]; then # FIXME do this without sed (and tail) (= portably)
if [ `echo $TARGET|grep darwin` ]; then
VER=5.0.2 VER=5.0.2
elif [ `echo $TARGET|grep sunos` ]; then
VER=$(echo gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | /usr/xpg4/bin/tail -n 1)
else else
VER=$($ECHO gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1) VER=$(echo gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1)
fi fi
if [ "$VER" = "" ] ; then if [ "$VER" = "" ] ; then
$ECHO "ERROR! Can't find gmp source tarball." echo "ERROR! Can't find gmp source tarball."
exit 1 exit 1
fi fi
# If the BITS variable isn't set above we'll proceed without setting the *FLAGS
# variables ourselves.
[ -z $BITS ] && BITS=0
case `uname -s` in if [ $BITS -eq 32 ]; then
MINGW*) export CC="gcc -m32"
export CFLAGS="-m32"
export LDFLAGS="-m32"
SUFFIX=
elif [ $BITS -eq 64 ]; then
export CC="gcc -m64"
export CFLAGS="-m64"
fi
case "$TARGET" in
mingw*)
PLATFORM_LIST="${MINGW_PLATFORMS}" PLATFORM_LIST="${MINGW_PLATFORMS}"
NAME="jbigi" NAME="jbigi"
TYPE="dll" TYPE="dll"
TARGET="windows" TARGET="windows"
$ECHO "Building windows .dlls for all architectures";; echo "Building windows .dlls for all architectures";;
Darwin*) darwin*)
PLATFORM_LIST="${DARWIN_PLATFORMS}" PLATFORM_LIST="${DARWIN_PLATFORMS}"
NAME="libjbigi" NAME="libjbigi"
TYPE="jnilib" TYPE="jnilib"
TARGET="osx" TARGET="osx"
$ECHO "Building ${TARGET} .jnilibs for all architectures";; echo "Building ${TARGET} .jnilibs for all architectures";;
Linux*|*kFreeBSD) sunos*)
PLATFORM_LIST="${X86_64_PLATFORMS}"
NAME="libjbigi"
TYPE="so"
UNIXTYPE="solaris"
TARGET="${UNIXTYPE}"
if $(echo "$CFLAGS" | grep -q "\-m64") ; then
[ -z $SUFFIX ] && SUFFIX="_64"
PLATFORM_LIST="${X86_64_PLATFORMS}"
else
PLATFORM_LIST="${X86_PLATFORMS}"
fi
echo "Building ${TARGET} .sos for all architectures";;
linux*|*kfreebsd)
NAME="libjbigi" NAME="libjbigi"
TYPE="so" TYPE="so"
PLATFORM_LIST="" PLATFORM_LIST=""
if [ $(uname -s | tr "[A-Z]" "[a-z]") = "gnu/kfreebsd" ]; then case "$TARGET" in
*kfreebsd)
TARGET="kfreebsd" TARGET="kfreebsd"
else ;;
*)
TARGET="linux" TARGET="linux"
fi ;;
esac
arch=$(uname -m | cut -f1 -d" ") arch=$(uname -m | cut -f1 -d" ")
case ${arch} in case ${arch} in
i[3-6]86) i[3-6]86)
@ -116,22 +148,23 @@ Linux*|*kFreeBSD)
case ${arch} in case ${arch} in
x86_64 | amd64) x86_64 | amd64)
PLATFORM_LIST="${X86_64_PLATFORMS}" PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="$TARGET-X86_64";; if [ $BITS -ne 32 ]; then
ia64) [ -z $SUFFIX ] && SUFFIX="_64"
PLATFORM_LIST="${X86_64_PLATFORMS}" fi
TARGET="$TARGET-ia64";; ;;
#ia64)
# PLATFORM_LIST="${X86_64_PLATFORMS}"
# TARGET="$TARGET-ia64";;
x86) x86)
PLATFORM_LIST="${X86_PLATFORMS}" PLATFORM_LIST="${X86_PLATFORMS}";;
TARGET="$TARGET-x86";;
*) *)
PLATFORM_LIST="${LINUX_PLATFORMS}";; PLATFORM_LIST="${LINUX_PLATFORMS}";;
esac esac
$ECHO "Building ${TARGET} .sos for ${arch}";; echo "Building ${TARGET} .sos for ${arch}";;
NetBSD*|FreeBSD*|OpenBSD*) netbsd*|freebsd*|openbsd*)
NAME="libjbigi" NAME="libjbigi"
TYPE="so" TYPE="so"
PLATFORM_LIST="" PLATFORM_LIST=
BSDTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
arch=$(uname -m | cut -f1 -d" ") arch=$(uname -m | cut -f1 -d" ")
case ${arch} in case ${arch} in
i[3-6]86) i[3-6]86)
@ -140,15 +173,14 @@ NetBSD*|FreeBSD*|OpenBSD*)
case ${arch} in case ${arch} in
x86_64|amd64) x86_64|amd64)
PLATFORM_LIST="${X86_64_PLATFORMS}" PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="${BSDTYPE}-X86_64";; [ -z $SUFFIX ] && SUFFIX="_64";;
ia64) #ia64)
PLATFORM_LIST="${X86_64_PLATFORMS}" # PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="${BSDTYPE}-ia64";; # SUFFIX="{SYS}-ia64";;
x86) x86)
PLATFORM_LIST="${X86_PLATFORMS}" PLATFORM_LIST="${X86_PLATFORMS}";;
TARGET="${BSDTYPE}-x86";;
*) *)
case ${BSDTYPE} in case ${TARGET} in
netbsd) netbsd)
PLATFORM_LIST="${NETBSD_PLATFORMS}";; PLATFORM_LIST="${NETBSD_PLATFORMS}";;
openbsd) openbsd)
@ -156,63 +188,78 @@ NetBSD*|FreeBSD*|OpenBSD*)
freebsd) freebsd)
PLATFORM_LIST="${FREEBSD_PLATFORMS}";; PLATFORM_LIST="${FREEBSD_PLATFORMS}";;
*) *)
$ECHO "Unsupported build environment" echo "Unsupported build environment"
exit 1;; exit 1;;
esac esac
esac esac
$ECHO "Building ${BSDTYPE} .sos for ${arch}";; echo "Building ${TARGET} .sos for ${arch}";;
*) *)
$ECHO "Unsupported build environment" echo "Unsupported build environment"
exit;; exit;;
esac esac
#####################
# In the below functions:
# $1 = gmp version
# $2 = platform: such as athlon64
# $3 = basename: "jbigi" on Windows, "libjbigi" everywhere else
# $4 = type/extension: windows = "dll". osx = "jnilib". Everything else = "so"
# $5 = target: "linux", "freebsd", "kfreebsd", "osx", "windows", etc.
# $6 = suffix: null if 32bit, _64 if 64bit
make_static () { make_static () {
# echo "Attempting .${4} creation for ${3}${5}${2}${6}"
# TODO
# Fix formatting of output filename. Final versions will need to look
# like libjbigi-linux-athlon64.so or libjbigi-linux-athlon64_64.so
$ECHO "Attempting .${4} creation for ${3}${5}${2}"
../../build_jbigi.sh static || return 1 ../../build_jbigi.sh static || return 1
cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4} cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}${6}.${4}
return 0 return 0
} }
make_file () { make_file () {
# Nonfatal bail out on Failed build. # Nonfatal bail out on Failed build.
$ECHO "Attempting build for ${3}${5}${2}" echo "Attempting build for ${3}${5}${2}"
make && return 0 make && return 0
cd .. cd ..
rm -R "$2" rm -R "$2"
$ECHO -e "\n\nFAILED! ${3}${5}${2} not made.\a" printf "\n\nFAILED! ${3}${5}${2} not made.\a"
sleep 10 sleep 10
return 1 return 1
} }
configure_file () { configure_file () {
$ECHO -e "\n\n\nAttempting configure for ${3}${5}${2}\n\n\n" printf "\n\n\nAttempting configure for ${3}${5}${2}${6}\n\n\n"
if [ $BITS -eq 32 ] && [ "$2" = "none" ]; then
unset ABI
elif [ $BITS -eq 32 ] && [ "$2" != "none" ]; then
export ABI=32
fi
sleep 10 sleep 10
# Nonfatal bail out on unsupported platform. # Nonfatal bail out on unsupported platform.
if [ `uname -s |grep Darwin` ]; then if [ $(echo $TARGET| grep -q osx) ]; then
../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0 ../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0
else else
../../gmp-${1}/configure --build=${2} --with-pic && return 0 ../../gmp-${1}/configure --build=${2} --with-pic && return 0
fi fi
cd .. cd ..
rm -R "$2" rm -R "$2"
$ECHO -e "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a" printf "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a"
sleep 10 sleep 10
return 1 return 1
} }
build_file () { build_file () {
configure_file "$1" "$2" "$3" "$4" "$5" && make_file "$1" "$2" "$3" "$4" "$5" && make_static "$1" "$2" "$3" "$4" "$5" && return 0 configure_file "$1" "$2" "$3" "$4" "$5" "$6" && make_file "$1" "$2" "$3" "$4" "$5" "$6" && make_static "$1" "$2" "$3" "$4" "$5" "$6" && return 0
$ECHO -e "\n\n\nError building static!\n\n\a" printf "\n\n\nError building static!\n\n\a"
sleep 10 sleep 10
return 1 return 1
} }
$ECHO "Extracting GMP Version $VER ..." echo "Extracting GMP Version $VER ..."
tar -xjf gmp-$VER.tar.bz2 || ( $ECHO "Error in tarball file!" ; exit 1 ) if [ -e gmp-$VER.tar.bz2 ]; then
tar -xjf gmp-$VER.tar.bz2 || ( echo "Error in tarball file!" >&2 ; exit 1 )
else
echo "ERROR: gmp tarball not found in current directory" >&2
exit 1
fi
if [ ! -d bin ]; then if [ ! -d bin ]; then
mkdir bin mkdir bin
@ -235,9 +282,11 @@ do
rm -Rf * rm -Rf *
fi fi
build_file "$VER" "$x" "$NAME" "$TYPE" "-$TARGET-" build_file "$VER" "$x" "$NAME" "$TYPE" "-$TARGET-" "$SUFFIX"
) )
done done
$ECHO "Success!" echo "Success!"
exit 0 exit 0
# vim:fenc=utf-8:ai:si:ts=4:sw=4:et:nu

View File

@ -19,7 +19,7 @@ esac
rm -rf lib rm -rf lib
mkdir -p lib/freenet/support/CPUInformation mkdir -p lib/freenet/support/CPUInformation
CC="gcc" [ -z $CC ] && CC="gcc"
case `uname -s` in case `uname -s` in
MINGW*|CYGWIN*) MINGW*|CYGWIN*)
@ -62,6 +62,14 @@ case `uname -s` in
ARCH="ia64";; ARCH="ia64";;
i?86*) i?86*)
ARCH="x86";; ARCH="x86";;
# Solaris x86
i86pc)
if $(echo $CC | grep -q '\-m64') ; then
ARCH="x86_64"
else
ARCH="x86"
fi
;;
*) *)
echo "Unsupported build environment. jcpuid is only used on x86 systems." echo "Unsupported build environment. jcpuid is only used on x86 systems."
exit 0;; exit 0;;

View File

@ -16,7 +16,7 @@ package net.i2p;
public class CoreVersion { public class CoreVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = "0.9.5"; public final static String VERSION = "0.9.6";
public static void main(String args[]) { public static void main(String args[]) {
System.out.println("I2P Core version: " + VERSION); System.out.println("I2P Core version: " + VERSION);

View File

@ -757,6 +757,9 @@ public class NativeBigInteger extends BigInteger {
else if (sCPUType.equals(JBIGI_OPTIMIZATION_COREI) && (!_is64) && ((_isKFreebsd) || (_isNetbsd) || (_isOpenbsd))) else if (sCPUType.equals(JBIGI_OPTIMIZATION_COREI) && (!_is64) && ((_isKFreebsd) || (_isNetbsd) || (_isOpenbsd)))
// corei and core2 are identical on 32bit kfreebsd, openbsd, and netbsd // corei and core2 are identical on 32bit kfreebsd, openbsd, and netbsd
sAppend = JBIGI_OPTIMIZATION_CORE2; sAppend = JBIGI_OPTIMIZATION_CORE2;
else if (sCPUType.equals(JBIGI_OPTIMIZATION_PENTIUM2) && _isSunos && _isX86)
// pentium2 and pentium3 identical on X86 Solaris
sAppend = JBIGI_OPTIMIZATION_PENTIUM3;
else if (sCPUType.equals(JBIGI_OPTIMIZATION_VIAC32)) else if (sCPUType.equals(JBIGI_OPTIMIZATION_VIAC32))
// viac32 and pentium3 identical // viac32 and pentium3 identical
sAppend = JBIGI_OPTIMIZATION_PENTIUM3; sAppend = JBIGI_OPTIMIZATION_PENTIUM3;

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
i2p (0.9.6-1) unstable; urgency=low
* New upstream release
* i2prouter: allow overrides to be set in /etc/default/i2p
-- Kill Your TV <killyourtv@i2pmail.org> Mon, 27 May 2013 00:00:00 +0000
i2p (0.9.5-2) unstable; urgency=low i2p (0.9.5-2) unstable; urgency=low
* debian/i2p.postinst: Explicitly set permissions on /etc/i2p/wrapper.config * debian/i2p.postinst: Explicitly set permissions on /etc/i2p/wrapper.config

View File

@ -32,7 +32,7 @@ Debian wrapper.config to try to prevent confusion.
# #
# This software is the proprietary information of Tanuki Software. # This software is the proprietary information of Tanuki Software.
# You shall use it only in accordance with the terms of the # You shall use it only in accordance with the terms of the
@@ -24,16 +24,9 @@ @@ -24,16 +24,12 @@
# These settings can be modified to fit the needs of your application # These settings can be modified to fit the needs of your application
# Optimized for use with version 3.5.17 of the Wrapper. # Optimized for use with version 3.5.17 of the Wrapper.
@ -46,13 +46,16 @@ Debian wrapper.config to try to prevent confusion.
-# PORTABLE installation: -# PORTABLE installation:
-# Use the following instead. -# Use the following instead.
-#I2PTEMP="%INSTALL_PATH" -#I2PTEMP="%INSTALL_PATH"
+# Read config file if found
+[ -f /etc/default/i2p ] && . /etc/default/i2p
+
+I2P="/usr/share/i2p" +I2P="/usr/share/i2p"
+I2P_CONFIG_DIR="$HOME/.i2p" +I2P_CONFIG_DIR="$HOME/.i2p"
+I2PTEMP="/tmp" +I2PTEMP="/tmp"
# Application # Application
APP_NAME="i2p" APP_NAME="i2p"
@@ -61,8 +54,8 @@ @@ -61,8 +57,8 @@
#RUN_AS_USER= #RUN_AS_USER=
# Wrapper # Wrapper
@ -63,7 +66,7 @@ Debian wrapper.config to try to prevent confusion.
# Priority at which to run the wrapper. See "man nice" for valid priorities. # Priority at which to run the wrapper. See "man nice" for valid priorities.
# nice is only used if a priority is specified. # nice is only used if a priority is specified.
@@ -167,48 +160,6 @@ @@ -167,48 +163,6 @@
# Workaround for Gentoo # Workaround for Gentoo
JAVABINARY=$(awk -F'=' '/^ *wrapper\.java\.command/{print $2}' "$WRAPPER_CONF") JAVABINARY=$(awk -F'=' '/^ *wrapper\.java\.command/{print $2}' "$WRAPPER_CONF")
@ -112,7 +115,7 @@ Debian wrapper.config to try to prevent confusion.
if [ -n "$FIXED_COMMAND" ] if [ -n "$FIXED_COMMAND" ]
then then
COMMAND="$FIXED_COMMAND" COMMAND="$FIXED_COMMAND"
@@ -912,9 +863,6 @@ @@ -920,9 +874,6 @@
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA"
eval $COMMAND_LINE eval $COMMAND_LINE
@ -122,7 +125,7 @@ Debian wrapper.config to try to prevent confusion.
else else
eval echo `gettext '$APP_LONG_NAME is already running.'` eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1 exit 1
@@ -1038,9 +986,6 @@ @@ -1046,9 +997,6 @@
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA"
eval $COMMAND_LINE eval $COMMAND_LINE
@ -132,18 +135,41 @@ Debian wrapper.config to try to prevent confusion.
else else
eval echo `gettext '$APP_LONG_NAME is already running.'` eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1 exit 1
@@ -1850,18 +1795,9 @@ @@ -1785,7 +1733,7 @@
}
showsetusermesg() {
- echo "`gettext \"Please edit $0 and set the variable RUN_AS_USER\"`."
+ echo "`gettext "Please edit /etc/default/i2p and set the variable RUN_AS_USER"`."
}
checkifstartingasroot() {
@@ -1793,7 +1741,7 @@
echo "`gettext 'Running I2P as the root user is *not* recommended.'`"
showsetusermesg
echo
- echo "`gettext \"To run as root anyway, edit $0 and set ALLOW_ROOT=true.\"`"
+ echo "`gettext \"To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true.\"`"
exit 1
fi
}
@@ -1858,23 +1806,9 @@
status status
;; ;;
- 'install') - 'install')
- installdaemon - installdaemon
- if [ ! `grep ^RUN_AS_USER $0` ]; then - if [ ! `grep ^RUN_AS_USER $0` ]; then
- echo
- showsetusermesg - showsetusermesg
- fi - fi
- echo - echo
- echo "You may want to disable the browser from launching at startup at" - echo "You may want to disable the browser from launching at startup at"
- echo "http://127.0.0.1:7657/configclients" - echo "http://127.0.0.1:7657/configclients"
- echo
- echo "I2P_CONFIG_DIR is currently set to $I2P_CONFIG_DIR."
- echo "Change the value in $0 if this is not"
- echo "appropriate for your configuration."
- ;; - ;;
- -
- 'remove' | 'uninstall') - 'remove' | 'uninstall')
@ -292,3 +318,96 @@ Debian wrapper.config to try to prevent confusion.
-# Allow the service to interact with the desktop. -# Allow the service to interact with the desktop.
-wrapper.ntservice.interactive=false -wrapper.ntservice.interactive=false
- -
--- a/installer/resources/locale/po/messages_de.po
+++ b/installer/resources/locale/po/messages_de.po
@@ -192,14 +192,14 @@
msgstr "Falls gestartet, fordere einen Java Thread dump an"
#: ../i2prouter:1788
-msgid "Please edit $0 and set the variable RUN_AS_USER"
-msgstr "Bitte bearbeite $0 und setze die Variable RUN_AS_USER"
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
+msgstr "Bitte bearbeite /etc/default/i2p und setze die Variable RUN_AS_USER"
#: ../i2prouter:1793
msgid "Running I2P as the root user is *not* recommended."
msgstr "I2P als root Benutzer auszuführen ist *nicht* empfehlenswert."
#: ../i2prouter:1796
-msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
msgstr ""
-"Um I2P trotzdem als root auszuführen bearbeite $0 und setze ALLOW_ROOT=true."
+"Um I2P trotzdem als root auszuführen bearbeite /etc/default/i2p und setze ALLOW_ROOT=true."
--- a/installer/resources/locale/po/messages_en.po
+++ b/installer/resources/locale/po/messages_en.po
@@ -185,7 +185,7 @@
msgstr ""
#: ../i2prouter:1788
-msgid "Please edit $0 and set the variable RUN_AS_USER"
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
msgstr ""
#: ../i2prouter:1793
@@ -193,5 +193,5 @@
msgstr ""
#: ../i2prouter:1796
-msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
msgstr ""
--- a/installer/resources/locale/po/messages_fr.po
+++ b/installer/resources/locale/po/messages_fr.po
@@ -187,7 +187,7 @@
msgstr ""
#: ../i2prouter:1780
-msgid "Please edit $0 and set the variable RUN_AS_USER"
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
msgstr ""
#: ../i2prouter:1785
@@ -196,5 +196,5 @@
"Faire fonctionner I2P en tant qu'utilisateur root n'est *pas* recommandé."
#: ../i2prouter:1788
-msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
msgstr ""
--- a/installer/resources/locale/po/messages_it.po
+++ b/installer/resources/locale/po/messages_it.po
@@ -187,7 +187,7 @@
msgstr ""
#: ../i2prouter:1780
-msgid "Please edit $0 and set the variable RUN_AS_USER"
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
msgstr ""
#: ../i2prouter:1785
@@ -195,5 +195,5 @@
msgstr ""
#: ../i2prouter:1788
-msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
msgstr ""
--- a/installer/resources/locale/po/messages_ru.po
+++ b/installer/resources/locale/po/messages_ru.po
@@ -188,7 +188,7 @@
msgstr ""
#: ../i2prouter:1780
-msgid "Please edit $0 and set the variable RUN_AS_USER"
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
msgstr ""
#: ../i2prouter:1785
@@ -196,5 +196,5 @@
msgstr ""
#: ../i2prouter:1788
-msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
msgstr ""

View File

@ -9,20 +9,18 @@ a soname to shut lintian up.
core/c/jbigi/build_jbigi.sh | 4 ++-- core/c/jbigi/build_jbigi.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/c/jbigi/build_jbigi.sh b/core/c/jbigi/build_jbigi.sh
index b1a68dd..99b31e4 100755
--- a/core/c/jbigi/build_jbigi.sh --- a/core/c/jbigi/build_jbigi.sh
+++ b/core/c/jbigi/build_jbigi.sh +++ b/core/c/jbigi/build_jbigi.sh
@@ -39,7 +39,7 @@ SunOS*|OpenBSD*|NetBSD*|*FreeBSD*|Linux*) @@ -39,7 +39,7 @@
UNIXTYPE="linux" UNIXTYPE="linux"
fi fi
COMPILEFLAGS="-fPIC -Wall" COMPILEFLAGS="-fPIC -Wall $CFLAGS"
- INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}" - INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
+ INCLUDES="-I. -I./jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}" + INCLUDES="-I. -I./jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
LINKFLAGS="-shared -Wl,-soname,libjbigi.so" LINKFLAGS="-shared -Wl,-soname,libjbigi.so"
LIBFILE="libjbigi.so";; LIBFILE="libjbigi.so";;
*) *)
@@ -58,7 +58,7 @@ fi @@ -58,7 +58,7 @@
echo "Compiling C code..." echo "Compiling C code..."
rm -f jbigi.o $LIBFILE rm -f jbigi.o $LIBFILE

View File

@ -6,11 +6,9 @@ Subject: rename jcpuid
core/c/jcpuid/build.sh | 8 ++------ core/c/jcpuid/build.sh | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-) 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/core/c/jcpuid/build.sh b/core/c/jcpuid/build.sh
index f3fc9c2..cbd0934 100755
--- a/core/c/jcpuid/build.sh --- a/core/c/jcpuid/build.sh
+++ b/core/c/jcpuid/build.sh +++ b/core/c/jcpuid/build.sh
@@ -67,12 +67,8 @@ case `uname -s` in @@ -75,12 +75,8 @@
exit 0;; exit 0;;
esac esac

View File

@ -1,4 +1,24 @@
* 2013-05-28 0.9.6 released
2013-05-24 kytv
* Update geoip.txt based on Maxmind GeoLite Country database from 2013-05-08
2013-05-13 kytv
* Misc. fixes to i2prouter script
* German translation updates from Transifex
2013-05-13 zzz
* i2psnark:
- Adjust target piece size calculation
- Tweak to make it easier for new peers to connect
* NetDB: Increase floodfill count for good
* UPnP: Detect devices without port forwarding capability (ticket #930)
2013-05-07 zzz
* Streaming: Chain stored IOE to get correct location
2013-05-06 zzz 2013-05-06 zzz
* Console: Fix Jetty thread pool policy and thread name
* Transports: Clean up internal/external port confusion (ticket #873) * Transports: Clean up internal/external port confusion (ticket #873)
- Bind SSU to configured internal, not external, port at startup - Bind SSU to configured internal, not external, port at startup
- Use only internal ports for UPnP (getRequestedPort() fixups) - Use only internal ports for UPnP (getRequestedPort() fixups)
@ -2167,7 +2187,7 @@
* Tunnels: * Tunnels:
- Make most classes package private - Make most classes package private
- Final, static, logs, cleanups - Final, static, logs, cleanups
- Consolideate createRateStat calls - Consolidate createRateStat calls
- Add getTotalLength() - Add getTotalLength()
- Remove unused lengthOverride() - Remove unused lengthOverride()
* UDP: Mark only first fragment as a duplicate * UDP: Mark only first fragment as a duplicate

View File

@ -4,7 +4,7 @@
<info> <info>
<appname>i2p</appname> <appname>i2p</appname>
<appversion>0.9.5</appversion> <appversion>0.9.6</appversion>
<authors> <authors>
<author name="I2P" email="http://www.i2p2.de/"/> <author name="I2P" email="http://www.i2p2.de/"/>
</authors> </authors>

Binary file not shown.

View File

@ -1,20 +1,20 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDRDCCAiwCCQDCm/Zrmali9zANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJB MIIDMjCCAhoCCQCGQa3FtL3BhTANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQGEwJB
VTETMBEGA1UECBMKU29tZS1TdGF0ZTELMAkGA1UEBxMCSEgxDDAKBgNVBAoTA0ky VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
UDEPMA0GA1UECxMGcmVzZWVkMRQwEgYDVQQDEwtyZXNlZWQuaW5mbzAeFw0xMjEw cyBQdHkgTHRkMRQwEgYDVQQDEwt3d3cuNjltZS5kZTAeFw0xMjExMDIxMjE4NTBa
MjcxODU3NDNaFw0xNjEyMDUxODU3NDNaMGQxCzAJBgNVBAYTAkFVMRMwEQYDVQQI Fw0xMzExMDIxMjE4NTBaMFsxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
EwpTb21lLVN0YXRlMQswCQYDVQQHEwJISDEMMAoGA1UEChMDSTJQMQ8wDQYDVQQL YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMT
EwZyZXNlZWQxFDASBgNVBAMTC3Jlc2VlZC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF C3d3dy42OW1lLmRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3g0m
AAOCAQ8AMIIBCgKCAQEAt9nz0iUvjdX4Hkhfk0FbBOeEP4i/FG3V4VrEdQfcviSF 5bhA2m3xjnJOYNDRtG5BdnHai8rybjjcTYSDEDX5OxV3Jjqtk1LLbf1fZx+s+EKw
XgzGYeRtGsvrFWP/5+6bcGnOkIy/jrKJfij3AjKJh8gTzqiNNNnV8VcHwFSNp+hZ 6/+g+TLRhjE5d06puRmpyxpywllWT1OUK74QWYKCpmDY4ez2yTC+iSG9RDDNVzQf
D4BM+UHPACV1Pjd3HQe6f0+LvcTs3HQgIkNkwUyqRuXOm/5Mk6SWSu1740aSwHCj 24d2/tzyAOgETUBh3CP1HEdaLaZC+uSI+JlafIeGG5bAGYcCXTB7qUbvAkMsak/N
Kk0x1FByzI0YBvXCPX6TVk6sJqKkQyLzK0CSGSeqUq8GvGCq+jT9k62Su7ooxCwi w18h/Sa2xa9rE1EYEb8AqpJYM3dzLlo1PdoWEq6G9h/N+3W0g/qAVGLfSZMSUFZ0
GzxaFjMdVYxuI8cuT5Cni+SUw1Ia8vhESnIy6slwzk37xNI80VuMvRT6rD2KcXDH Uc77i3oFgk2YMdnP7+sa3MImscu0rV+/UptuvuktYld9KScGMHJsUYh1q77ClEAZ
mK7ml1qL0rJWoF5AE+x/nen4V41mouv1W9rk3wTlTQIDAQABMA0GCSqGSIb3DQEB KFJBKzivpSjSRcmULQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAVCMB81jxN9kNv
BQUAA4IBAQAr6RBviBDW4bnPDTcdtstTDdaYX9yzoh+zzeGB0dUR26GKoOjpSItb rKGaI2Vlt82Wj1d9LmxAyTQC1f1lGwVgFBrpIkwhHzmudyEYdmag02QP9DLcQ4I/
B9nrsW1eJ2wbblfGBUoXhcmNByKHXXHejMhmurHjdei2BuLbTsknN8DPKXu5UF9z LNe5PdFL6Mzfl3QNoYXeaJeiAZhwkQbSM2DYEN9nGaEU/y2LJWvfAH75vcun+oIl
cg4cKQkxgzXOcNYlaF4+sfwFXDHJ4we/8vduVgkyo8R66543/Sh/nIMvq2slRT4w 7CvntdQzdZYmtcK0NgjCwY/CD97DyZRkLNjJdkKUvpf1lO4Egf+NheSmzVLo5/5u
wIBOVcMb2XxlbdwHW9XALAz9sto+4GH9GAC24f8ngluOpHijMnOOIo4dHibQ5hM9 /DwTqSfPuyhfb4L2pA1e6M9gLzyAPmP4nx+gToHzY54CB/kyuYk5JOY4IJaGAW3F
KcDpHezP0ugMTAxS2NmtVahwAqa2IjpqR7aEQ2wLvxQzDqrXo93L93+b2FKRUQXH YBSYr8/pwXWISCrQi6afB29Ng8WlpWiNqj/yC+X5K9eTihlh2Mun0k/cWgg6JYAm
Duud/n/w0kVV3DaIGikOsJayoanR+9HD tt0UhRK0
-----END CERTIFICATE----- -----END CERTIFICATE-----

File diff suppressed because it is too large Load Diff

View File

@ -702,9 +702,9 @@ checkUser() {
# #
if test -f "/sbin/runuser" if test -f "/sbin/runuser"
then then
/sbin/runuser - $RUN_AS_USER -c "\"$REALPATH\" $ADDITIONAL_PARA" /sbin/runuser -s /bin/sh - $RUN_AS_USER -c "\"$REALPATH\" $ADDITIONAL_PARA"
else else
su - $RUN_AS_USER -c "\"$REALPATH\" $ADDITIONAL_PARA" su - $RUN_AS_USER -s /bin/sh -c "\"$REALPATH\" $ADDITIONAL_PARA"
fi fi
RUN_AS_USER_EXITCODE=$? RUN_AS_USER_EXITCODE=$?
# Now that we are the original user again, we may need to clean up the lock file. # Now that we are the original user again, we may need to clean up the lock file.
@ -877,13 +877,21 @@ waitforwrapperstop() {
done done
} }
create_config_dir() {
if ! mkdir -p "$I2P_CONFIG_DIR"; then
echo "Error creating $I2P_CONFIG_DIR! Edit $0 and set I2P_CONFIG_DIR" >&2
echo "to the correct location." >&2
exit 1
fi
}
launchdinternal() { launchdinternal() {
getpid getpid
trap launchdtrap TERM trap launchdtrap TERM
if [ "X$pid" = "X" ] if [ "X$pid" = "X" ]
then then
prepAdditionalParams "$@" prepAdditionalParams "$@"
mkdir -p "$PIDDIR" "$LOGDIR" create_config_dir
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA"
@ -907,7 +915,7 @@ console() {
trap '' 3 2 trap '' 3 2
prepAdditionalParams "$@" prepAdditionalParams "$@"
mkdir -p "$PIDDIR" "$LOGDIR" create_config_dir
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA"
@ -1033,7 +1041,7 @@ start() {
if [ "X$pid" = "X" ] if [ "X$pid" = "X" ]
then then
prepAdditionalParams "$@" prepAdditionalParams "$@"
mkdir -p "$PIDDIR" "$LOGDIR" create_config_dir
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP wrapper.script.version=3.5.17 $ADDITIONAL_PARA"
@ -1777,7 +1785,7 @@ showUsage() {
} }
showsetusermesg() { showsetusermesg() {
echo "`gettext 'Please edit $0 and set the variable RUN_AS_USER'`." echo "`gettext \"Please edit $0 and set the variable RUN_AS_USER\"`."
} }
checkifstartingasroot() { checkifstartingasroot() {
@ -1785,7 +1793,7 @@ checkifstartingasroot() {
echo "`gettext 'Running I2P as the root user is *not* recommended.'`" echo "`gettext 'Running I2P as the root user is *not* recommended.'`"
showsetusermesg showsetusermesg
echo echo
echo "`gettext 'To run as root anyway, edit $0 and set ALLOW_ROOT=true.'`" echo "`gettext \"To run as root anyway, edit $0 and set ALLOW_ROOT=true.\"`"
exit 1 exit 1
fi fi
} }
@ -1853,11 +1861,16 @@ docommand() {
'install') 'install')
installdaemon installdaemon
if [ ! `grep ^RUN_AS_USER $0` ]; then if [ ! `grep ^RUN_AS_USER $0` ]; then
echo
showsetusermesg showsetusermesg
fi fi
echo echo
echo "You may want to disable the browser from launching at startup at" echo "You may want to disable the browser from launching at startup at"
echo "http://127.0.0.1:7657/configclients" echo "http://127.0.0.1:7657/configclients"
echo
echo "I2P_CONFIG_DIR is currently set to $I2P_CONFIG_DIR."
echo "Change the value in $0 if this is not"
echo "appropriate for your configuration."
;; ;;
'remove' | 'uninstall') 'remove' | 'uninstall')

View File

@ -4,14 +4,14 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers # To contribute translations, see http://www.i2p2.de/newdevelopers
# #
# Translators: # Translators:
# <martin2p@i2pmail.org>, 2013. # Ashoka <martin2p@i2pmail.org>, 2013
# <zeroflag@i2pmail.org>, 2013. # zeroflag <zeroflag@i2pmail.org>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P\n" "Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-22 13:13+0000\n" "POT-Creation-Date: 2013-05-15 22:00+0000\n"
"PO-Revision-Date: 2013-02-07 19:30+0000\n" "PO-Revision-Date: 2013-05-08 14:19+0000\n"
"Last-Translator: zeroflag <zeroflag@i2pmail.org>\n" "Last-Translator: zeroflag <zeroflag@i2pmail.org>\n"
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/" "Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
"de/)\n" "de/)\n"
@ -25,178 +25,181 @@ msgstr ""
msgid "Failed to load the wrapper" msgid "Failed to load the wrapper"
msgstr "Wrapper konnte nicht geladen werden." msgstr "Wrapper konnte nicht geladen werden."
#: ../i2prouter:892 ../i2prouter:919 ../i2prouter:993 ../i2prouter:1021 #: ../i2prouter:900 ../i2prouter:927 ../i2prouter:1001 ../i2prouter:1029
#: ../i2prouter:1045 #: ../i2prouter:1053
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is already running." msgid "$APP_LONG_NAME is already running."
msgstr "$APP_LONG_NAME läuft bereits." msgstr "$APP_LONG_NAME läuft bereits."
#: ../i2prouter:903 #: ../i2prouter:911
#, sh-format #, sh-format
msgid "Running $APP_LONG_NAME" msgid "Running $APP_LONG_NAME"
msgstr "Führe $APP_LONG_NAME aus" msgstr "Führe $APP_LONG_NAME aus"
#: ../i2prouter:926 #: ../i2prouter:934
#, sh-format #, sh-format
msgid "Waiting for $APP_LONG_NAME" msgid "Waiting for $APP_LONG_NAME"
msgstr "Warte auf $APP_LONG_NAME" msgstr "Warte auf $APP_LONG_NAME"
#: ../i2prouter:973 #: ../i2prouter:981
#, sh-format #, sh-format
msgid "WARNING: $APP_LONG_NAME may have failed to start." msgid "WARNING: $APP_LONG_NAME may have failed to start."
msgstr "WARNUNG: Das Starten von $APP_LONG_NAME könnte fehlgeschlagen sein" msgstr "WARNUNG: Das Starten von $APP_LONG_NAME könnte fehlgeschlagen sein"
#: ../i2prouter:987 ../i2prouter:1015 ../i2prouter:1224 ../i2prouter:1513 #: ../i2prouter:995 ../i2prouter:1023 ../i2prouter:1232 ../i2prouter:1521
msgid "Must be root to perform this action." msgid "Must be root to perform this action."
msgstr "Nur root kann diese Aktion durchführen." msgstr "Nur root kann diese Aktion durchführen."
#: ../i2prouter:1031 #: ../i2prouter:1039
#, sh-format #, sh-format
msgid "Starting $APP_LONG_NAME" msgid "Starting $APP_LONG_NAME"
msgstr "Starte $APP_LONG_NAME" msgstr "Starte $APP_LONG_NAME"
#: ../i2prouter:1056 #: ../i2prouter:1064
#, sh-format #, sh-format
msgid "Stopping $APP_LONG_NAME" msgid "Stopping $APP_LONG_NAME"
msgstr "Stoppe $APP_LONG_NAME" msgstr "Stoppe $APP_LONG_NAME"
#: ../i2prouter:1060 ../i2prouter:1128 ../i2prouter:1681 #: ../i2prouter:1068 ../i2prouter:1136 ../i2prouter:1689
#, sh-format #, sh-format
msgid "$APP_LONG_NAME was not running." msgid "$APP_LONG_NAME was not running."
msgstr "$APP_LONG_NAME wurde nicht ausgeführt." msgstr "$APP_LONG_NAME wurde nicht ausgeführt."
#: ../i2prouter:1073 ../i2prouter:1081 ../i2prouter:1143 ../i2prouter:1151 #: ../i2prouter:1081 ../i2prouter:1089 ../i2prouter:1151 ../i2prouter:1159
#, sh-format #, sh-format
msgid "Unable to stop $APP_LONG_NAME." msgid "Unable to stop $APP_LONG_NAME."
msgstr "Konnte $APP_LONG_NAME nicht beenden." msgstr "Konnte $APP_LONG_NAME nicht beenden."
#: ../i2prouter:1099 #: ../i2prouter:1107
#, sh-format #, sh-format
msgid "Waiting for $APP_LONG_NAME to exit" msgid "Waiting for $APP_LONG_NAME to exit"
msgstr "Warte auf die Beendigung von $APP_LONG_NAME." msgstr "Warte auf die Beendigung von $APP_LONG_NAME."
#: ../i2prouter:1113 #: ../i2prouter:1121
#, sh-format #, sh-format
msgid "Failed to stop $APP_LONG_NAME." msgid "Failed to stop $APP_LONG_NAME."
msgstr "Beenden von $APP_LONG_NAME fehlgeschlagen." msgstr "Beenden von $APP_LONG_NAME fehlgeschlagen."
#: ../i2prouter:1116 #: ../i2prouter:1124
#, sh-format #, sh-format
msgid "Stopped $APP_LONG_NAME." msgid "Stopped $APP_LONG_NAME."
msgstr "$APP_LONG_NAME wurde beendet." msgstr "$APP_LONG_NAME wurde beendet."
#: ../i2prouter:1124 #: ../i2prouter:1132
#, sh-format #, sh-format
msgid "Stopping $APP_LONG_NAME gracefully" msgid "Stopping $APP_LONG_NAME gracefully"
msgstr "Beende $APP_LONG_NAME ordnungsgemäß." msgstr "Beende $APP_LONG_NAME ordnungsgemäß."
#: ../i2prouter:1170 #: ../i2prouter:1178
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is not running." msgid "$APP_LONG_NAME is not running."
msgstr "$APP_LONG_NAME wird nicht ausgeführt." msgstr "$APP_LONG_NAME wird nicht ausgeführt."
#: ../i2prouter:1175 #: ../i2prouter:1183
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is running: PID:$pid" msgid "$APP_LONG_NAME is running: PID:$pid"
msgstr "$APP_LONG_NAME wird ausgeführt: PID:$pid" msgstr "$APP_LONG_NAME wird ausgeführt: PID:$pid"
#: ../i2prouter:1178 #: ../i2prouter:1186
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS" msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS"
msgstr "" msgstr ""
"$APP_LONG_NAME wird ausgeführt: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS" "$APP_LONG_NAME wird ausgeführt: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS"
#: ../i2prouter:1231 ../i2prouter:1243 ../i2prouter:1262 ../i2prouter:1279 #: ../i2prouter:1239 ../i2prouter:1251 ../i2prouter:1270 ../i2prouter:1287
#: ../i2prouter:1346 ../i2prouter:1366 ../i2prouter:1380 ../i2prouter:1394 #: ../i2prouter:1354 ../i2prouter:1374 ../i2prouter:1388 ../i2prouter:1402
#: ../i2prouter:1422 ../i2prouter:1460 ../i2prouter:1495 #: ../i2prouter:1430 ../i2prouter:1468 ../i2prouter:1503
#, sh-format #, sh-format
msgid "The $APP_LONG_NAME daemon is already installed." msgid "The $APP_LONG_NAME daemon is already installed."
msgstr "Der $APP_LONG_NAME Dämon ist bereits installiert." msgstr "Der $APP_LONG_NAME Dämon ist bereits installiert."
#: ../i2prouter:1234 ../i2prouter:1249 ../i2prouter:1351 ../i2prouter:1383 #: ../i2prouter:1242 ../i2prouter:1257 ../i2prouter:1359 ../i2prouter:1391
#: ../i2prouter:1397 ../i2prouter:1411 ../i2prouter:1425 ../i2prouter:1463 #: ../i2prouter:1405 ../i2prouter:1419 ../i2prouter:1433 ../i2prouter:1471
#: ../i2prouter:1498 #: ../i2prouter:1506
#, sh-format #, sh-format
msgid "Installing the $APP_LONG_NAME daemon" msgid "Installing the $APP_LONG_NAME daemon"
msgstr "Installiere den $APP_LONG_NAME Dämon" msgstr "Installiere den $APP_LONG_NAME Dämon"
#: ../i2prouter:1505 #: ../i2prouter:1513
#, sh-format #, sh-format
msgid "Install not currently supported for $DIST_OS" msgid "Install not currently supported for $DIST_OS"
msgstr "Die Installation für $DIST_OS wird momentan nicht unterstützt" msgstr "Die Installation für $DIST_OS wird momentan nicht unterstützt"
#: ../i2prouter:1521 ../i2prouter:1534 ../i2prouter:1548 ../i2prouter:1557 #: ../i2prouter:1529 ../i2prouter:1542 ../i2prouter:1556 ../i2prouter:1565
#: ../i2prouter:1567 ../i2prouter:1591 ../i2prouter:1604 ../i2prouter:1616 #: ../i2prouter:1575 ../i2prouter:1599 ../i2prouter:1612 ../i2prouter:1624
#: ../i2prouter:1634 ../i2prouter:1647 ../i2prouter:1661 #: ../i2prouter:1642 ../i2prouter:1655 ../i2prouter:1669
#, sh-format #, sh-format
msgid "Removing $APP_LONG_NAME daemon" msgid "Removing $APP_LONG_NAME daemon"
msgstr "Entferne $APP_LONG_NAME Dämon" msgstr "Entferne $APP_LONG_NAME Dämon"
#: ../i2prouter:1527 ../i2prouter:1542 ../i2prouter:1551 ../i2prouter:1561 #: ../i2prouter:1535 ../i2prouter:1550 ../i2prouter:1559 ../i2prouter:1569
#: ../i2prouter:1572 ../i2prouter:1585 ../i2prouter:1597 ../i2prouter:1610 #: ../i2prouter:1580 ../i2prouter:1593 ../i2prouter:1605 ../i2prouter:1618
#: ../i2prouter:1628 ../i2prouter:1641 ../i2prouter:1655 ../i2prouter:1666 #: ../i2prouter:1636 ../i2prouter:1649 ../i2prouter:1663 ../i2prouter:1674
#, sh-format #, sh-format
msgid "The $APP_LONG_NAME daemon is not currently installed." msgid "The $APP_LONG_NAME daemon is not currently installed."
msgstr "Der $APP_LONG_NAME Dämon ist momentan nicht installiert." msgstr "Der $APP_LONG_NAME Dämon ist momentan nicht installiert."
#: ../i2prouter:1670 #: ../i2prouter:1678
#, sh-format #, sh-format
msgid "Remove not currently supported for $DIST_OS" msgid "Remove not currently supported for $DIST_OS"
msgstr "Entfernen wird momentan unter $DIST_OS nicht unterstützt." msgstr "Entfernen wird momentan unter $DIST_OS nicht unterstützt."
#: ../i2prouter:1757 #: ../i2prouter:1765
msgid "Commands:" msgid "Commands:"
msgstr "Befehle:" msgstr "Befehle:"
#: ../i2prouter:1758 #: ../i2prouter:1766
msgid "Launch in the current console." msgid "Launch in the current console."
msgstr "Start in dieser Konsole." msgstr "Start in dieser Konsole."
#: ../i2prouter:1759 #: ../i2prouter:1767
msgid "Start in the background as a daemon process." msgid "Start in the background as a daemon process."
msgstr "Im Hintergrund als Dämon starten." msgstr "Im Hintergrund als Dämon starten."
#: ../i2prouter:1760 #: ../i2prouter:1768
msgid "Stop if running as a daemon or in another console." msgid "Stop if running as a daemon or in another console."
msgstr "" msgstr ""
"Beende den Router, falls er als Dämon oder in einer anderen Konsole "
"ausgeführt wird."
#: ../i2prouter:1761 #: ../i2prouter:1769
msgid "Stop gracefully, may take up to 11 minutes." msgid "Stop gracefully, may take up to 11 minutes."
msgstr "Ordnungsgemäßes Beenden kann bis zu 11 Minuten dauern." msgstr "Ordnungsgemäßes Beenden kann bis zu 11 Minuten dauern."
#: ../i2prouter:1762 #: ../i2prouter:1770
msgid "Stop if running and then start." msgid "Stop if running and then start."
msgstr "" msgstr ""
"Beende den Router, falls er ausgeführt wird und dann starte ihn erneut."
#: ../i2prouter:1763 #: ../i2prouter:1771
msgid "Restart only if already running." msgid "Restart only if already running."
msgstr "" msgstr "Starte den Router neu, falls er momentan ausgeführt wird."
#: ../i2prouter:1764 #: ../i2prouter:1772
msgid "Query the current status." msgid "Query the current status."
msgstr "Aktuellen Status abfragen." msgstr "Aktuellen Status abfragen."
#: ../i2prouter:1765 #: ../i2prouter:1773
msgid "Install to start automatically when system boots." msgid "Install to start automatically when system boots."
msgstr "Installiere für automatischen Start wenn das System hochfährt." msgstr "Installiere für automatischen Start wenn das System hochfährt."
#: ../i2prouter:1766 #: ../i2prouter:1774
msgid "Uninstall." msgid "Uninstall."
msgstr "Deinstallieren." msgstr "Deinstallieren."
#: ../i2prouter:1767 #: ../i2prouter:1775
msgid "Request a Java thread dump if running." msgid "Request a Java thread dump if running."
msgstr "Falls gestartet, fordere einen Java Thread dump an" msgstr "Falls gestartet, fordere einen Java Thread dump an"
#: ../i2prouter:1780 #: ../i2prouter:1788
msgid "Please edit $0 and set the variable RUN_AS_USER" msgid "Please edit $0 and set the variable RUN_AS_USER"
msgstr "Bitte bearbeite $0 und setze die Variable RUN_AS_USER" msgstr "Bitte bearbeite $0 und setze die Variable RUN_AS_USER"
#: ../i2prouter:1785 #: ../i2prouter:1793
msgid "Running I2P as the root user is *not* recommended." msgid "Running I2P as the root user is *not* recommended."
msgstr "I2P als root Benutzer auszuführen ist *nicht* empfehlenswert." msgstr "I2P als root Benutzer auszuführen ist *nicht* empfehlenswert."
#: ../i2prouter:1788 #: ../i2prouter:1796
msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true." msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
msgstr "" msgstr ""
"Um I2P trotzdem als root auszuführen bearbeite $0 und setze ALLOW_ROOT=true." "Um I2P trotzdem als root auszuführen bearbeite $0 und setze ALLOW_ROOT=true."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P startup script\n" "Project-Id-Version: I2P startup script\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-22 14:58+0000\n" "POT-Creation-Date: 2013-05-15 21:58+0000\n"
"PO-Revision-Date: 2012-12-21 23:34+0000\n" "PO-Revision-Date: 2012-12-21 23:34+0000\n"
"Last-Translator: kytv <killyourtv@mail.i2p>\n" "Last-Translator: kytv <killyourtv@mail.i2p>\n"
"Language-Team: English \n" "Language-Team: English \n"
@ -22,176 +22,176 @@ msgstr ""
msgid "Failed to load the wrapper" msgid "Failed to load the wrapper"
msgstr "" msgstr ""
#: ../i2prouter:892 ../i2prouter:919 ../i2prouter:993 ../i2prouter:1021 #: ../i2prouter:900 ../i2prouter:927 ../i2prouter:1001 ../i2prouter:1029
#: ../i2prouter:1045 #: ../i2prouter:1053
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is already running." msgid "$APP_LONG_NAME is already running."
msgstr "" msgstr ""
#: ../i2prouter:903 #: ../i2prouter:911
#, sh-format #, sh-format
msgid "Running $APP_LONG_NAME" msgid "Running $APP_LONG_NAME"
msgstr "" msgstr ""
#: ../i2prouter:926 #: ../i2prouter:934
#, sh-format #, sh-format
msgid "Waiting for $APP_LONG_NAME" msgid "Waiting for $APP_LONG_NAME"
msgstr "" msgstr ""
#: ../i2prouter:973 #: ../i2prouter:981
#, sh-format #, sh-format
msgid "WARNING: $APP_LONG_NAME may have failed to start." msgid "WARNING: $APP_LONG_NAME may have failed to start."
msgstr "" msgstr ""
#: ../i2prouter:987 ../i2prouter:1015 ../i2prouter:1224 ../i2prouter:1513 #: ../i2prouter:995 ../i2prouter:1023 ../i2prouter:1232 ../i2prouter:1521
msgid "Must be root to perform this action." msgid "Must be root to perform this action."
msgstr "" msgstr ""
#: ../i2prouter:1031 #: ../i2prouter:1039
#, sh-format #, sh-format
msgid "Starting $APP_LONG_NAME" msgid "Starting $APP_LONG_NAME"
msgstr "" msgstr ""
#: ../i2prouter:1056 #: ../i2prouter:1064
#, sh-format #, sh-format
msgid "Stopping $APP_LONG_NAME" msgid "Stopping $APP_LONG_NAME"
msgstr "" msgstr ""
#: ../i2prouter:1060 ../i2prouter:1128 ../i2prouter:1681 #: ../i2prouter:1068 ../i2prouter:1136 ../i2prouter:1689
#, sh-format #, sh-format
msgid "$APP_LONG_NAME was not running." msgid "$APP_LONG_NAME was not running."
msgstr "" msgstr ""
#: ../i2prouter:1073 ../i2prouter:1081 ../i2prouter:1143 ../i2prouter:1151 #: ../i2prouter:1081 ../i2prouter:1089 ../i2prouter:1151 ../i2prouter:1159
#, sh-format #, sh-format
msgid "Unable to stop $APP_LONG_NAME." msgid "Unable to stop $APP_LONG_NAME."
msgstr "" msgstr ""
#: ../i2prouter:1099 #: ../i2prouter:1107
#, sh-format #, sh-format
msgid "Waiting for $APP_LONG_NAME to exit" msgid "Waiting for $APP_LONG_NAME to exit"
msgstr "" msgstr ""
#: ../i2prouter:1113 #: ../i2prouter:1121
#, sh-format #, sh-format
msgid "Failed to stop $APP_LONG_NAME." msgid "Failed to stop $APP_LONG_NAME."
msgstr "" msgstr ""
#: ../i2prouter:1116 #: ../i2prouter:1124
#, sh-format #, sh-format
msgid "Stopped $APP_LONG_NAME." msgid "Stopped $APP_LONG_NAME."
msgstr "" msgstr ""
#: ../i2prouter:1124 #: ../i2prouter:1132
#, sh-format #, sh-format
msgid "Stopping $APP_LONG_NAME gracefully" msgid "Stopping $APP_LONG_NAME gracefully"
msgstr "" msgstr ""
#: ../i2prouter:1170 #: ../i2prouter:1178
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is not running." msgid "$APP_LONG_NAME is not running."
msgstr "" msgstr ""
#: ../i2prouter:1175 #: ../i2prouter:1183
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is running: PID:$pid" msgid "$APP_LONG_NAME is running: PID:$pid"
msgstr "" msgstr ""
#: ../i2prouter:1178 #: ../i2prouter:1186
#, sh-format #, sh-format
msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS" msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS"
msgstr "" msgstr ""
#: ../i2prouter:1231 ../i2prouter:1243 ../i2prouter:1262 ../i2prouter:1279 #: ../i2prouter:1239 ../i2prouter:1251 ../i2prouter:1270 ../i2prouter:1287
#: ../i2prouter:1346 ../i2prouter:1366 ../i2prouter:1380 ../i2prouter:1394 #: ../i2prouter:1354 ../i2prouter:1374 ../i2prouter:1388 ../i2prouter:1402
#: ../i2prouter:1422 ../i2prouter:1460 ../i2prouter:1495 #: ../i2prouter:1430 ../i2prouter:1468 ../i2prouter:1503
#, sh-format #, sh-format
msgid "The $APP_LONG_NAME daemon is already installed." msgid "The $APP_LONG_NAME daemon is already installed."
msgstr "" msgstr ""
#: ../i2prouter:1234 ../i2prouter:1249 ../i2prouter:1351 ../i2prouter:1383 #: ../i2prouter:1242 ../i2prouter:1257 ../i2prouter:1359 ../i2prouter:1391
#: ../i2prouter:1397 ../i2prouter:1411 ../i2prouter:1425 ../i2prouter:1463 #: ../i2prouter:1405 ../i2prouter:1419 ../i2prouter:1433 ../i2prouter:1471
#: ../i2prouter:1498 #: ../i2prouter:1506
#, sh-format #, sh-format
msgid "Installing the $APP_LONG_NAME daemon" msgid "Installing the $APP_LONG_NAME daemon"
msgstr "" msgstr ""
#: ../i2prouter:1505 #: ../i2prouter:1513
#, sh-format #, sh-format
msgid "Install not currently supported for $DIST_OS" msgid "Install not currently supported for $DIST_OS"
msgstr "" msgstr ""
#: ../i2prouter:1521 ../i2prouter:1534 ../i2prouter:1548 ../i2prouter:1557 #: ../i2prouter:1529 ../i2prouter:1542 ../i2prouter:1556 ../i2prouter:1565
#: ../i2prouter:1567 ../i2prouter:1591 ../i2prouter:1604 ../i2prouter:1616 #: ../i2prouter:1575 ../i2prouter:1599 ../i2prouter:1612 ../i2prouter:1624
#: ../i2prouter:1634 ../i2prouter:1647 ../i2prouter:1661 #: ../i2prouter:1642 ../i2prouter:1655 ../i2prouter:1669
#, sh-format #, sh-format
msgid "Removing $APP_LONG_NAME daemon" msgid "Removing $APP_LONG_NAME daemon"
msgstr "" msgstr ""
#: ../i2prouter:1527 ../i2prouter:1542 ../i2prouter:1551 ../i2prouter:1561 #: ../i2prouter:1535 ../i2prouter:1550 ../i2prouter:1559 ../i2prouter:1569
#: ../i2prouter:1572 ../i2prouter:1585 ../i2prouter:1597 ../i2prouter:1610 #: ../i2prouter:1580 ../i2prouter:1593 ../i2prouter:1605 ../i2prouter:1618
#: ../i2prouter:1628 ../i2prouter:1641 ../i2prouter:1655 ../i2prouter:1666 #: ../i2prouter:1636 ../i2prouter:1649 ../i2prouter:1663 ../i2prouter:1674
#, sh-format #, sh-format
msgid "The $APP_LONG_NAME daemon is not currently installed." msgid "The $APP_LONG_NAME daemon is not currently installed."
msgstr "" msgstr ""
#: ../i2prouter:1670 #: ../i2prouter:1678
#, sh-format #, sh-format
msgid "Remove not currently supported for $DIST_OS" msgid "Remove not currently supported for $DIST_OS"
msgstr "" msgstr ""
#: ../i2prouter:1757 #: ../i2prouter:1765
msgid "Commands:" msgid "Commands:"
msgstr "" msgstr ""
#: ../i2prouter:1758 #: ../i2prouter:1766
msgid "Launch in the current console." msgid "Launch in the current console."
msgstr "" msgstr ""
#: ../i2prouter:1759 #: ../i2prouter:1767
msgid "Start in the background as a daemon process." msgid "Start in the background as a daemon process."
msgstr "" msgstr ""
#: ../i2prouter:1760 #: ../i2prouter:1768
msgid "Stop if running as a daemon or in another console." msgid "Stop if running as a daemon or in another console."
msgstr "" msgstr ""
#: ../i2prouter:1761 #: ../i2prouter:1769
msgid "Stop gracefully, may take up to 11 minutes." msgid "Stop gracefully, may take up to 11 minutes."
msgstr "" msgstr ""
#: ../i2prouter:1762 #: ../i2prouter:1770
msgid "Stop if running and then start." msgid "Stop if running and then start."
msgstr "" msgstr ""
#: ../i2prouter:1763 #: ../i2prouter:1771
msgid "Restart only if already running." msgid "Restart only if already running."
msgstr "" msgstr ""
#: ../i2prouter:1764 #: ../i2prouter:1772
msgid "Query the current status." msgid "Query the current status."
msgstr "" msgstr ""
#: ../i2prouter:1765 #: ../i2prouter:1773
msgid "Install to start automatically when system boots." msgid "Install to start automatically when system boots."
msgstr "" msgstr ""
#: ../i2prouter:1766 #: ../i2prouter:1774
msgid "Uninstall." msgid "Uninstall."
msgstr "" msgstr ""
#: ../i2prouter:1767 #: ../i2prouter:1775
msgid "Request a Java thread dump if running." msgid "Request a Java thread dump if running."
msgstr "" msgstr ""
#: ../i2prouter:1780 #: ../i2prouter:1788
msgid "Please edit $0 and set the variable RUN_AS_USER" msgid "Please edit $0 and set the variable RUN_AS_USER"
msgstr "" msgstr ""
#: ../i2prouter:1785 #: ../i2prouter:1793
msgid "Running I2P as the root user is *not* recommended." msgid "Running I2P as the root user is *not* recommended."
msgstr "" msgstr ""
#: ../i2prouter:1788 #: ../i2prouter:1796
msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true." msgid "To run as root anyway, edit $0 and set ALLOW_ROOT=true."
msgstr "" msgstr ""

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 21; public final static long BUILD = 0;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = "-ipv6"; public final static String EXTRA = "-ipv6";

View File

@ -78,9 +78,10 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
return; return;
} }
// TODO only look up once, then check type // only lookup once, then cast to correct type
LeaseSet ls = getContext().netDb().lookupLeaseSetLocally(_message.getSearchKey()); DatabaseEntry dbe = getContext().netDb().lookupLocally(_message.getSearchKey());
if (ls != null) { if (dbe != null && dbe.getType() == DatabaseEntry.KEY_TYPE_LEASESET) {
LeaseSet ls = (LeaseSet) dbe;
// We have to be very careful here to decide whether or not to send out the leaseSet, // We have to be very careful here to decide whether or not to send out the leaseSet,
// to avoid anonymity vulnerabilities. // to avoid anonymity vulnerabilities.
// As this is complex, lots of comments follow... // As this is complex, lots of comments follow...
@ -105,7 +106,7 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
// so we don't check the answerAllQueries() flag. // so we don't check the answerAllQueries() flag.
// Local leasesets are not handled here // Local leasesets are not handled here
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("We have the published LS " + _message.getSearchKey().toBase64() + ", answering query"); _log.info("We have the published LS " + _message.getSearchKey() + ", answering query");
getContext().statManager().addRateData("netDb.lookupsMatchedReceivedPublished", 1, 0); getContext().statManager().addRateData("netDb.lookupsMatchedReceivedPublished", 1, 0);
sendData(_message.getSearchKey(), ls, fromKey, _message.getReplyTunnel()); sendData(_message.getSearchKey(), ls, fromKey, _message.getReplyTunnel());
} else if (shouldPublishLocal && answerAllQueries()) { } else if (shouldPublishLocal && answerAllQueries()) {
@ -118,13 +119,13 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
if (weAreClosest(closestHashes)) { if (weAreClosest(closestHashes)) {
// It's in our keyspace, so give it to them // It's in our keyspace, so give it to them
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("We have local LS " + _message.getSearchKey().toBase64() + ", answering query, in our keyspace"); _log.info("We have local LS " + _message.getSearchKey() + ", answering query, in our keyspace");
getContext().statManager().addRateData("netDb.lookupsMatchedLocalClosest", 1, 0); getContext().statManager().addRateData("netDb.lookupsMatchedLocalClosest", 1, 0);
sendData(_message.getSearchKey(), ls, fromKey, _message.getReplyTunnel()); sendData(_message.getSearchKey(), ls, fromKey, _message.getReplyTunnel());
} else { } else {
// Lie, pretend we don't have it // Lie, pretend we don't have it
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("We have local LS " + _message.getSearchKey().toBase64() + ", NOT answering query, out of our keyspace"); _log.info("We have local LS " + _message.getSearchKey() + ", NOT answering query, out of our keyspace");
getContext().statManager().addRateData("netDb.lookupsMatchedLocalNotClosest", 1, 0); getContext().statManager().addRateData("netDb.lookupsMatchedLocalNotClosest", 1, 0);
Set<Hash> routerHashSet = getNearestRouters(); Set<Hash> routerHashSet = getNearestRouters();
sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel()); sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel());
@ -135,16 +136,16 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
// or it's local and we don't publish it. // or it's local and we don't publish it.
// Lie, pretend we don't have it // Lie, pretend we don't have it
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("We have LS " + _message.getSearchKey().toBase64() + _log.info("We have LS " + _message.getSearchKey() +
", NOT answering query - local? " + isLocal + " shouldPublish? " + shouldPublishLocal + ", NOT answering query - local? " + isLocal + " shouldPublish? " + shouldPublishLocal +
" RAP? " + ls.getReceivedAsPublished() + " RAR? " + ls.getReceivedAsReply()); " RAP? " + ls.getReceivedAsPublished() + " RAR? " + ls.getReceivedAsReply());
getContext().statManager().addRateData("netDb.lookupsMatchedRemoteNotClosest", 1, 0); getContext().statManager().addRateData("netDb.lookupsMatchedRemoteNotClosest", 1, 0);
Set<Hash> routerHashSet = getNearestRouters(); Set<Hash> routerHashSet = getNearestRouters();
sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel()); sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel());
} }
} else { } else if (dbe != null && dbe.getType() == DatabaseEntry.KEY_TYPE_ROUTERINFO) {
RouterInfo info = getContext().netDb().lookupRouterInfoLocally(_message.getSearchKey()); RouterInfo info = (RouterInfo) dbe;
if ( (info != null) && (info.isCurrent(EXPIRE_DELAY)) ) { if (info.isCurrent(EXPIRE_DELAY)) {
if ( (info.getIdentity().isHidden()) || (isUnreachable(info) && !publishUnreachable()) ) { if ( (info.getIdentity().isHidden()) || (isUnreachable(info) && !publishUnreachable()) ) {
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("Not answering a query for a netDb peer who isn't reachable"); _log.debug("Not answering a query for a netDb peer who isn't reachable");
@ -162,12 +163,12 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
} else { } else {
// send that routerInfo to the _message.getFromHash peer // send that routerInfo to the _message.getFromHash peer
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("We do have key " + _message.getSearchKey().toBase64() _log.debug("We do have key " + _message.getSearchKey()
+ " locally as a router info. sending to " + fromKey.toBase64()); + " locally as a router info. sending to " + fromKey);
sendData(_message.getSearchKey(), info, fromKey, _message.getReplyTunnel()); sendData(_message.getSearchKey(), info, fromKey, _message.getReplyTunnel());
} }
} else { } else {
// not found locally - return closest peer hashes // expired locally - return closest peer hashes
Set<Hash> routerHashSet = getNearestRouters(); Set<Hash> routerHashSet = getNearestRouters();
// ERR: see above // ERR: see above
@ -180,10 +181,17 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
// } // }
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("We do not have key " + _message.getSearchKey().toBase64() + _log.debug("Expired " + _message.getSearchKey() +
" locally. sending back " + routerHashSet.size() + " peers to " + fromKey.toBase64()); " locally. sending back " + routerHashSet.size() + " peers to " + fromKey);
sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel()); sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel());
} }
} else {
// not found locally - return closest peer hashes
Set<Hash> routerHashSet = getNearestRouters();
if (_log.shouldLog(Log.DEBUG))
_log.debug("We do not have key " + _message.getSearchKey() +
" locally. sending back " + routerHashSet.size() + " peers to " + fromKey);
sendClosest(_message.getSearchKey(), routerHashSet, fromKey, _message.getReplyTunnel());
} }
} }
@ -230,7 +238,7 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
return; return;
} }
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("Sending data matching key " + key.toBase64() + " to peer " + toPeer.toBase64() _log.debug("Sending data matching key " + key + " to peer " + toPeer
+ " tunnel " + replyTunnel); + " tunnel " + replyTunnel);
DatabaseStoreMessage msg = new DatabaseStoreMessage(getContext()); DatabaseStoreMessage msg = new DatabaseStoreMessage(getContext());
if (data.getType() == DatabaseEntry.KEY_TYPE_LEASESET) { if (data.getType() == DatabaseEntry.KEY_TYPE_LEASESET) {
@ -244,7 +252,7 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
protected void sendClosest(Hash key, Set<Hash> routerHashes, Hash toPeer, TunnelId replyTunnel) { protected void sendClosest(Hash key, Set<Hash> routerHashes, Hash toPeer, TunnelId replyTunnel) {
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("Sending closest routers to key " + key.toBase64() + ": # peers = " _log.debug("Sending closest routers to key " + key + ": # peers = "
+ routerHashes.size() + " tunnel " + replyTunnel); + routerHashes.size() + " tunnel " + replyTunnel);
DatabaseSearchReplyMessage msg = new DatabaseSearchReplyMessage(getContext()); DatabaseSearchReplyMessage msg = new DatabaseSearchReplyMessage(getContext());
msg.setFromHash(getContext().routerHash()); msg.setFromHash(getContext().routerHash());

View File

@ -25,7 +25,7 @@ class FloodfillMonitorJob extends JobImpl {
private static final int REQUEUE_DELAY = 60*60*1000; private static final int REQUEUE_DELAY = 60*60*1000;
private static final long MIN_UPTIME = 2*60*60*1000; private static final long MIN_UPTIME = 2*60*60*1000;
private static final long MIN_CHANGE_DELAY = 6*60*60*1000; private static final long MIN_CHANGE_DELAY = 6*60*60*1000;
private static final int MIN_FF = 500; private static final int MIN_FF = 1000;
private static final int MAX_FF = 999999; private static final int MAX_FF = 999999;
private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant"; private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";

View File

@ -42,7 +42,6 @@ import net.i2p.util.SecureFileOutputStream;
* *
*/ */
class PersistentDataStore extends TransientDataStore { class PersistentDataStore extends TransientDataStore {
private final Log _log;
private final File _dbDir; private final File _dbDir;
private final KademliaNetworkDatabaseFacade _facade; private final KademliaNetworkDatabaseFacade _facade;
private final Writer _writer; private final Writer _writer;
@ -60,7 +59,6 @@ class PersistentDataStore extends TransientDataStore {
*/ */
public PersistentDataStore(RouterContext ctx, String dbDir, KademliaNetworkDatabaseFacade facade) throws IOException { public PersistentDataStore(RouterContext ctx, String dbDir, KademliaNetworkDatabaseFacade facade) throws IOException {
super(ctx); super(ctx);
_log = ctx.logManager().getLog(PersistentDataStore.class);
_flat = ctx.getBooleanProperty(PROP_FLAT); _flat = ctx.getBooleanProperty(PROP_FLAT);
_dbDir = getDbDir(dbDir); _dbDir = getDbDir(dbDir);
_facade = facade; _facade = facade;

View File

@ -22,14 +22,17 @@ import net.i2p.data.RouterInfo;
import net.i2p.router.RouterContext; import net.i2p.router.RouterContext;
import net.i2p.util.Log; import net.i2p.util.Log;
/**
* Stores in-memory only. See extension.
*/
class TransientDataStore implements DataStore { class TransientDataStore implements DataStore {
private Log _log; protected final Log _log;
private ConcurrentHashMap<Hash, DatabaseEntry> _data; private final ConcurrentHashMap<Hash, DatabaseEntry> _data;
protected RouterContext _context; protected final RouterContext _context;
public TransientDataStore(RouterContext ctx) { public TransientDataStore(RouterContext ctx) {
_context = ctx; _context = ctx;
_log = ctx.logManager().getLog(TransientDataStore.class); _log = ctx.logManager().getLog(getClass());
_data = new ConcurrentHashMap(1024); _data = new ConcurrentHashMap(1024);
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("Data Store initialized"); _log.info("Data Store initialized");
@ -191,7 +194,7 @@ class TransientDataStore implements DataStore {
public DatabaseEntry remove(Hash key) { public DatabaseEntry remove(Hash key) {
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("Removing key " + key.toBase64()); _log.debug("Removing key " + key);
return _data.remove(key); return _data.remove(key);
} }
} }

View File

@ -63,7 +63,7 @@ public class Reseeder {
public static final String DEFAULT_SEED_URL = public static final String DEFAULT_SEED_URL =
"http://netdb.i2p2.de/" + "," + "http://netdb.i2p2.de/" + "," +
"http://reseed.i2p-projekt.de/" + "," + "http://reseed.i2p-projekt.de/" + "," +
"http://euve5653.vserver.de/netDb/" + "," + //"http://euve5653.vserver.de/netDb/" + "," +
"http://cowpuncher.drollette.com/netdb/" + "," + "http://cowpuncher.drollette.com/netdb/" + "," +
"http://i2p.mooo.com/netDb/" + "," + "http://i2p.mooo.com/netDb/" + "," +
"http://193.150.121.66/netDb/" + "," + "http://193.150.121.66/netDb/" + "," +
@ -77,7 +77,7 @@ public class Reseeder {
public static final String DEFAULT_SSL_SEED_URL = public static final String DEFAULT_SSL_SEED_URL =
"https://netdb.i2p2.de/" + "," + "https://netdb.i2p2.de/" + "," +
"https://reseed.i2p-projekt.de/" + "," + "https://reseed.i2p-projekt.de/" + "," +
"https://euve5653.vserver.de/netDb/" + "," + //"https://euve5653.vserver.de/netDb/" + "," +
"https://cowpuncher.drollette.com/netdb/" + "," + "https://cowpuncher.drollette.com/netdb/" + "," +
"https://i2p.mooo.com/netDb/" + "," + "https://i2p.mooo.com/netDb/" + "," +
"https://193.150.121.66/netDb/" + "," + "https://193.150.121.66/netDb/" + "," +

View File

@ -74,6 +74,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
private Device _router; private Device _router;
private Service _service; private Service _service;
private boolean isDisabled = false; // We disable the plugin if more than one IGD is found private boolean isDisabled = false; // We disable the plugin if more than one IGD is found
private volatile boolean _serviceLacksAPM;
private final Object lock = new Object(); private final Object lock = new Object();
// FIXME: detect it for real and deal with it! @see #2524 // FIXME: detect it for real and deal with it! @see #2524
private volatile boolean thinksWeAreDoubleNatted = false; private volatile boolean thinksWeAreDoubleNatted = false;
@ -121,6 +122,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
super.stop(); super.stop();
_router = null; _router = null;
_service = null; _service = null;
_serviceLacksAPM = false;
} }
public DetectedIP[] getAddress() { public DetectedIP[] getAddress() {
@ -255,20 +257,21 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
_log.error(_router.getFriendlyName()+ " doesn't export WAN_IP_CONNECTION either: we won't be able to use it!"); _log.error(_router.getFriendlyName()+ " doesn't export WAN_IP_CONNECTION either: we won't be able to use it!");
} }
_serviceLacksAPM = false;
return; return;
} }
} }
} }
} }
public boolean tryAddMapping(String protocol, int port, String description, ForwardPort fp) { private boolean tryAddMapping(String protocol, int port, String description, ForwardPort fp) {
if (_log.shouldLog(Log.WARN)) if (_log.shouldLog(Log.WARN))
_log.warn("Registering a port mapping for " + port + "/" + protocol); _log.warn("Registering a port mapping for " + port + "/" + protocol);
int nbOfTries = 0; int nbOfTries = 0;
boolean isPortForwarded = false; boolean isPortForwarded = false;
while(nbOfTries++ < 5) { while ((!_serviceLacksAPM) && nbOfTries++ < 5) {
isPortForwarded = addMapping(protocol, port, "I2P " + description, fp); isPortForwarded = addMapping(protocol, port, "I2P " + description, fp);
if(isPortForwarded) if(isPortForwarded || _serviceLacksAPM)
break; break;
try { try {
Thread.sleep(5000); Thread.sleep(5000);
@ -307,6 +310,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
_log.warn("UP&P IGD device removed : " + dev.getFriendlyName()); _log.warn("UP&P IGD device removed : " + dev.getFriendlyName());
_router = null; _router = null;
_service = null; _service = null;
_serviceLacksAPM = false;
} }
} }
} }
@ -565,7 +569,13 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
Action add = _service.getAction("AddPortMapping"); Action add = _service.getAction("AddPortMapping");
if(add == null) { if(add == null) {
_log.error("Couldn't find AddPortMapping action!"); if (_serviceLacksAPM) {
if (_log.shouldLog(Log.WARN))
_log.warn("Couldn't find AddPortMapping action!");
} else {
_serviceLacksAPM = true;
_log.logAlways(Log.WARN, "UPnP device does not support port forwarding");
}
return false; return false;
} }
@ -695,7 +705,8 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
Action remove = _service.getAction("DeletePortMapping"); Action remove = _service.getAction("DeletePortMapping");
if(remove == null) { if(remove == null) {
_log.error("Couldn't find DeletePortMapping action!"); if (_log.shouldLog(Log.WARN))
_log.warn("Couldn't find DeletePortMapping action!");
return false; return false;
} }
@ -794,6 +805,18 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
* so throw this in a thread. * so throw this in a thread.
*/ */
private void registerPorts(Set<ForwardPort> portsToForwardNow) { private void registerPorts(Set<ForwardPort> portsToForwardNow) {
if (_serviceLacksAPM) {
if (_log.shouldLog(Log.WARN))
_log.warn("UPnP device does not support port forwarding");
for (ForwardPort port : portsToForwardNow) {
ForwardPortStatus fps = new ForwardPortStatus(ForwardPortStatus.DEFINITE_FAILURE,
"UPnP device does not support port forwarding",
port.portNumber);
Map map = Collections.singletonMap(port, fps);
forwardCallback.portForwardStatus(map);
}
return;
}
if (_log.shouldLog(Log.INFO)) if (_log.shouldLog(Log.INFO))
_log.info("Starting thread to forward " + portsToForwardNow.size() + " ports"); _log.info("Starting thread to forward " + portsToForwardNow.size() + " ports");
Thread t = new Thread(new RegisterPortsThread(portsToForwardNow)); Thread t = new Thread(new RegisterPortsThread(portsToForwardNow));

View File

@ -693,7 +693,8 @@ class EventPumper implements Runnable {
} }
} else { } else {
// Nothing more to write // Nothing more to write
key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE); if (key.isValid())
key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
break; break;
} }
} }

View File

@ -160,7 +160,7 @@ abstract class BuildRequestor {
if (cfg.isInbound()) { if (cfg.isInbound()) {
if (log.shouldLog(Log.INFO)) if (log.shouldLog(Log.INFO))
log.info("Sending the tunnel build request " + msg.getUniqueId() + " out the tunnel " + pairedTunnel + " to " log.info("Sending the tunnel build request " + msg.getUniqueId() + " out the tunnel " + pairedTunnel + " to "
+ cfg.getPeer(0).toBase64() + " for " + cfg + " waiting for the reply of " + cfg.getPeer(0) + " for " + cfg + " waiting for the reply of "
+ cfg.getReplyMessageId()); + cfg.getReplyMessageId());
// send it out a tunnel targetting the first hop // send it out a tunnel targetting the first hop
// TODO - would be nice to have a TunnelBuildFirstHopFailJob queued if the // TODO - would be nice to have a TunnelBuildFirstHopFailJob queued if the
@ -168,7 +168,7 @@ abstract class BuildRequestor {
ctx.tunnelDispatcher().dispatchOutbound(msg, pairedTunnel.getSendTunnelId(0), cfg.getPeer(0)); ctx.tunnelDispatcher().dispatchOutbound(msg, pairedTunnel.getSendTunnelId(0), cfg.getPeer(0));
} else { } else {
if (log.shouldLog(Log.INFO)) if (log.shouldLog(Log.INFO))
log.info("Sending the tunnel build request directly to " + cfg.getPeer(1).toBase64() log.info("Sending the tunnel build request directly to " + cfg.getPeer(1)
+ " for " + cfg + " waiting for the reply of " + cfg.getReplyMessageId() + " for " + cfg + " waiting for the reply of " + cfg.getReplyMessageId()
+ " with msgId=" + msg.getUniqueId()); + " with msgId=" + msg.getUniqueId());
// send it directly to the first hop // send it directly to the first hop
@ -183,8 +183,8 @@ abstract class BuildRequestor {
outMsg.setPriority(PRIORITY); outMsg.setPriority(PRIORITY);
RouterInfo peer = ctx.netDb().lookupRouterInfoLocally(cfg.getPeer(1)); RouterInfo peer = ctx.netDb().lookupRouterInfoLocally(cfg.getPeer(1));
if (peer == null) { if (peer == null) {
if (log.shouldLog(Log.ERROR)) if (log.shouldLog(Log.WARN))
log.error("Could not find the next hop to send the outbound request to: " + cfg); log.warn("Could not find the next hop to send the outbound request to: " + cfg);
exec.buildComplete(cfg, pool); exec.buildComplete(cfg, pool);
return; return;
} }
@ -300,7 +300,7 @@ abstract class BuildRequestor {
if (peerInfo == null) { if (peerInfo == null) {
if (log.shouldLog(Log.WARN)) if (log.shouldLog(Log.WARN))
log.warn("Peer selected for hop " + i + "/" + hop + " was not found locally: " log.warn("Peer selected for hop " + i + "/" + hop + " was not found locally: "
+ peer.toBase64() + " for " + cfg); + peer + " for " + cfg);
return null; return null;
} else { } else {
key = peerInfo.getIdentity().getPublicKey(); key = peerInfo.getIdentity().getPublicKey();
@ -343,9 +343,9 @@ abstract class BuildRequestor {
* Can't do this for inbound tunnels since the msg goes out an expl. tunnel. * Can't do this for inbound tunnels since the msg goes out an expl. tunnel.
*/ */
private static class TunnelBuildFirstHopFailJob extends JobImpl { private static class TunnelBuildFirstHopFailJob extends JobImpl {
final TunnelPool _pool; private final TunnelPool _pool;
final PooledTunnelCreatorConfig _cfg; private final PooledTunnelCreatorConfig _cfg;
final BuildExecutor _exec; private final BuildExecutor _exec;
private TunnelBuildFirstHopFailJob(RouterContext ctx, TunnelPool pool, PooledTunnelCreatorConfig cfg, BuildExecutor exec) { private TunnelBuildFirstHopFailJob(RouterContext ctx, TunnelPool pool, PooledTunnelCreatorConfig cfg, BuildExecutor exec) {
super(ctx); super(ctx);
_cfg = cfg; _cfg = cfg;

View File

@ -154,7 +154,7 @@ fi
cd `dirname $0`/../../installer/resources/certificates cd `dirname $0`/../../installer/resources/certificates
for i in *.crt for i in *.crt *.cert
do do
echo "Checking $i ..." echo "Checking $i ..."
EXPIRES=`checkcert $i` EXPIRES=`checkcert $i`