forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p' (head fc46f2d84625265a3899b5ad50af5e91d396ba01)
to branch 'i2p.i2p.str4d.ui' (head f8d5c7b37f4813b669d8a10f9ff82d0ed2a33282)
This commit is contained in:
@@ -75,6 +75,8 @@
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<!-- ideal for linux: 24x24, but transparency doesn't work -->
|
||||
<copy tofile="${build}/desktopgui/resources/images/logo.png" file="../../installer/resources/themes/console/images/itoopie_xsm.png" />
|
||||
<copy todir="${build}/desktopgui/resources/images" file="images/itoopie_black_24.png" />
|
||||
<copy todir="${build}/desktopgui/resources/images" file="images/itoopie_white_24.png" />
|
||||
<jar basedir="${build}" excludes="messages-src/**" destfile="${dist}/${jar}">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.desktopgui.Main"/>
|
||||
|
BIN
apps/desktopgui/images/itoopie_black_24.png
Normal file
BIN
apps/desktopgui/images/itoopie_black_24.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 558 B |
BIN
apps/desktopgui/images/itoopie_white_24.png
Normal file
BIN
apps/desktopgui/images/itoopie_white_24.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 677 B |
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P desktopgui\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
|
||||
"POT-Creation-Date: 2016-05-25 12:29+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@@ -18,38 +18,76 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:31
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:59
|
||||
msgid "Start I2P"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:44
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:72
|
||||
msgid "I2P is starting!"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:44
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:72
|
||||
msgid "Starting"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:55
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:207
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:76
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:228
|
||||
msgid "Configure I2P System Tray"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:77
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:229
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:93
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:245
|
||||
msgid "Restart I2P"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:110
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:262
|
||||
msgid "Stop I2P"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:43
|
||||
msgid "Tray icon configuration"
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:126
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:278
|
||||
msgid "Restart I2P Immediately"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:46
|
||||
msgid "Should tray icon be enabled?"
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:143
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:295
|
||||
msgid "Stop I2P Immediately"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:157
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:309
|
||||
msgid "Cancel I2P Shutdown"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:363
|
||||
#, java-format
|
||||
msgid "Shutdown in {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:365
|
||||
msgid "Shutdown imminent"
|
||||
msgstr ""
|
||||
|
||||
#. status translations are in the console bundle
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:370
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
#. Windows typically has tooltips; Linux (at least Ubuntu) doesn't
|
||||
#: src/net/i2p/desktopgui/TrayManager.java:63
|
||||
msgid "I2P: Right-click for menu"
|
||||
msgstr ""
|
||||
|
@@ -38,6 +38,11 @@ abstract class TrayManager {
|
||||
///Our tray icon, or null if unsupported
|
||||
protected TrayIcon trayIcon;
|
||||
|
||||
private static final String PNG_DIR = "/desktopgui/resources/images/";
|
||||
private static final String MAC_ICON = "itoopie_black_24.png";
|
||||
private static final String WIN_ICON = "itoopie_white_24.png";
|
||||
private static final String LIN_ICON = "logo.png";
|
||||
|
||||
/**
|
||||
* Instantiate tray manager.
|
||||
*/
|
||||
@@ -185,9 +190,16 @@ abstract class TrayManager {
|
||||
* @throws AWTException if image not found
|
||||
*/
|
||||
private Image getTrayImage() throws AWTException {
|
||||
URL url = getClass().getResource("/desktopgui/resources/images/logo.png");
|
||||
String img;
|
||||
if (SystemVersion.isWindows())
|
||||
img = WIN_ICON;
|
||||
else if (SystemVersion.isMac())
|
||||
img = MAC_ICON;
|
||||
else
|
||||
img = LIN_ICON;
|
||||
URL url = getClass().getResource(PNG_DIR + img);
|
||||
if (url == null)
|
||||
throw new AWTException("cannot load tray image");
|
||||
throw new AWTException("cannot load tray image " + img);
|
||||
Image image = Toolkit.getDefaultToolkit().getImage(url);
|
||||
return image;
|
||||
}
|
||||
|
@@ -2147,7 +2147,7 @@ public class SnarkManager implements CompleteListener {
|
||||
}
|
||||
_magnets.remove(snark.getName());
|
||||
removeMagnetStatus(snark.getInfoHash());
|
||||
addMessage(_t("Metainfo received for {0}", snark.getName()));
|
||||
//addMessage(_t("Metainfo received for {0}", snark.getName()));
|
||||
addMessageNoEscape(_t("Starting up torrent {0}", linkify(snark)));
|
||||
return name;
|
||||
} catch (IOException ioe) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2ptunnel\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-01-17 17:08+0000\n"
|
||||
"POT-Creation-Date: 2016-05-25 12:28+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@@ -18,470 +18,479 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../java/build/Proxy.java:5
|
||||
msgid "Information: New Host Name"
|
||||
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
|
||||
#: ../java/build/Proxy.java:40 ../java/build/Proxy.java:46
|
||||
#: ../java/build/Proxy.java:82 ../java/build/Proxy.java:88
|
||||
msgid "Website Unreachable"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
|
||||
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
|
||||
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
|
||||
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
|
||||
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:96
|
||||
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:119
|
||||
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:140
|
||||
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:164
|
||||
#: ../java/build/Proxy.java:173 ../java/build/Proxy.java:185
|
||||
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:17
|
||||
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:41
|
||||
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:61
|
||||
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:83
|
||||
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:103
|
||||
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:124
|
||||
#: ../java/build/Proxy.java:134 ../java/build/Proxy.java:144
|
||||
#: ../java/build/Proxy.java:156 ../java/build/Proxy.java:169
|
||||
#: ../java/build/Proxy.java:181 ../java/build/Proxy.java:191
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:209
|
||||
msgid "Router Console"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
|
||||
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
|
||||
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
|
||||
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
|
||||
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:97
|
||||
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:120
|
||||
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:141
|
||||
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:165
|
||||
#: ../java/build/Proxy.java:174 ../java/build/Proxy.java:186
|
||||
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:18
|
||||
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:42
|
||||
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:62
|
||||
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:84
|
||||
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
|
||||
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:125
|
||||
#: ../java/build/Proxy.java:135 ../java/build/Proxy.java:145
|
||||
#: ../java/build/Proxy.java:157 ../java/build/Proxy.java:170
|
||||
#: ../java/build/Proxy.java:182 ../java/build/Proxy.java:192
|
||||
msgid "I2P Router Console"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
|
||||
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
|
||||
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
|
||||
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
|
||||
#: ../java/build/Proxy.java:89 ../java/build/Proxy.java:98
|
||||
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:121
|
||||
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:142
|
||||
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:166
|
||||
#: ../java/build/Proxy.java:175 ../java/build/Proxy.java:187
|
||||
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:19
|
||||
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:43
|
||||
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:63
|
||||
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:85
|
||||
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
|
||||
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:126
|
||||
#: ../java/build/Proxy.java:136 ../java/build/Proxy.java:146
|
||||
#: ../java/build/Proxy.java:158 ../java/build/Proxy.java:171
|
||||
#: ../java/build/Proxy.java:183 ../java/build/Proxy.java:193
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:210
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
|
||||
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
|
||||
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
|
||||
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
|
||||
#: ../java/build/Proxy.java:90 ../java/build/Proxy.java:99
|
||||
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:122
|
||||
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:143
|
||||
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:167
|
||||
#: ../java/build/Proxy.java:176 ../java/build/Proxy.java:188
|
||||
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:20
|
||||
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:44
|
||||
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:64
|
||||
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:86
|
||||
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
|
||||
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:127
|
||||
#: ../java/build/Proxy.java:137 ../java/build/Proxy.java:147
|
||||
#: ../java/build/Proxy.java:159 ../java/build/Proxy.java:172
|
||||
#: ../java/build/Proxy.java:184 ../java/build/Proxy.java:194
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:210
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
|
||||
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
|
||||
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
|
||||
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
|
||||
#: ../java/build/Proxy.java:91 ../java/build/Proxy.java:100
|
||||
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:123
|
||||
#: ../java/build/Proxy.java:133 ../java/build/Proxy.java:144
|
||||
#: ../java/build/Proxy.java:155 ../java/build/Proxy.java:168
|
||||
#: ../java/build/Proxy.java:177 ../java/build/Proxy.java:189
|
||||
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:21
|
||||
#: ../java/build/Proxy.java:33 ../java/build/Proxy.java:45
|
||||
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:65
|
||||
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:87
|
||||
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
|
||||
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:128
|
||||
#: ../java/build/Proxy.java:138 ../java/build/Proxy.java:148
|
||||
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:173
|
||||
#: ../java/build/Proxy.java:185 ../java/build/Proxy.java:195
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:210
|
||||
msgid "Addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:11
|
||||
msgid "Information: New Host Name with Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:12
|
||||
msgid ""
|
||||
"The address helper link you followed is for a new host name that is not in "
|
||||
"your address book."
|
||||
msgid "The website was not reachable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:13
|
||||
msgid "You may save this host name to your local address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:14
|
||||
msgid ""
|
||||
"If you save it to your address book, you will not see this message again."
|
||||
"The website is offline, there is network congestion, or your router is not "
|
||||
"yet well-integrated with peers."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:15
|
||||
msgid ""
|
||||
"If you do not save it, the host name will be forgotten after the next router "
|
||||
"restart."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:16
|
||||
msgid ""
|
||||
"If you do not wish to visit this host, click the \"back\" button on your "
|
||||
"browser."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
|
||||
msgid "Warning: Destination Key Conflict"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:24
|
||||
msgid ""
|
||||
"The addresshelper link you followed specifies a different destination key "
|
||||
"than a host entry in your host database."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:25
|
||||
msgid ""
|
||||
"Someone could be trying to impersonate another website, or people have given "
|
||||
"two websites identical names."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:26
|
||||
msgid ""
|
||||
"You can resolve the conflict by considering which key you trust, and either "
|
||||
"discarding the addresshelper link, discarding the host entry from your host "
|
||||
"database, or naming one of them differently."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
|
||||
msgid "Warning: Bad Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:34
|
||||
#, java-format
|
||||
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:35
|
||||
msgid "It seems to be garbage data, or a mistyped Base 32 address."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:36
|
||||
msgid ""
|
||||
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
|
||||
"or Base 64 key."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
|
||||
msgid "Warning: Request Denied"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:44
|
||||
msgid "You attempted to connect to a non-I2P website or location."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
|
||||
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
|
||||
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:101
|
||||
msgid "Website Unreachable"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:52
|
||||
msgid "The website was not reachable, because its lease set was not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:53
|
||||
msgid ""
|
||||
"The website is probably down, but there could also be network congestion."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:104
|
||||
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:137
|
||||
#: ../java/build/Proxy.java:14 ../java/build/Proxy.java:49
|
||||
#: ../java/build/Proxy.java:100 ../java/build/Proxy.java:112
|
||||
#, java-format
|
||||
msgid "You may want to {0}retry{1}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:67
|
||||
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:117
|
||||
#: ../java/build/Proxy.java:138 ../java/build/Proxy.java:162
|
||||
#: ../java/build/Proxy.java:183 ../java/build/Proxy.java:195
|
||||
#: ../java/build/Proxy.java:15 ../java/build/Proxy.java:27
|
||||
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:81
|
||||
#: ../java/build/Proxy.java:101 ../java/build/Proxy.java:113
|
||||
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:179
|
||||
msgid "Could not find the following destination:"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
|
||||
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:134
|
||||
msgid "Connection Reset"
|
||||
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:22
|
||||
#: ../java/build/Proxy.java:143 ../java/build/Proxy.java:149
|
||||
msgid "Outproxy Not Found"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:63
|
||||
msgid "The connection to the proxy was reset."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:64
|
||||
#: ../java/build/Proxy.java:23
|
||||
msgid ""
|
||||
"The proxy could be temporarily unavailable, too busy, or it has blocked your "
|
||||
"access."
|
||||
"The HTTP outproxy was not reachable, because its lease set was not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:65 ../java/build/Proxy.java:147
|
||||
#: ../java/build/Proxy.java:181 ../java/build/Proxy.java:193
|
||||
#: ../java/build/Proxy.java:24
|
||||
msgid ""
|
||||
"The outproxy is probably down, but there could also be network congestion."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:25 ../java/build/Proxy.java:152
|
||||
#: ../java/build/Proxy.java:177 ../java/build/Proxy.java:198
|
||||
#, java-format
|
||||
msgid ""
|
||||
"You may want to {0}retry{1} as this will randomly reselect an outproxy from "
|
||||
"the pool you have defined {2}here{3} (if you have more than one configured)."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:148
|
||||
#: ../java/build/Proxy.java:182 ../java/build/Proxy.java:194
|
||||
#: ../java/build/Proxy.java:26 ../java/build/Proxy.java:153
|
||||
#: ../java/build/Proxy.java:178 ../java/build/Proxy.java:199
|
||||
#, java-format
|
||||
msgid ""
|
||||
"If you continue to have trouble you may want to edit your outproxy list {0}"
|
||||
"here{1}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:75
|
||||
#: ../java/build/Proxy.java:28
|
||||
msgid "Information: New Host Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:34
|
||||
msgid "Information: New Host Name with Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:35
|
||||
msgid ""
|
||||
"The website was not reachable, because it uses encryption options that are "
|
||||
"not supported by your I2P or Java version."
|
||||
"The address helper link you followed is for a new host name that is not in "
|
||||
"your address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:76 ../java/build/Proxy.java:149
|
||||
msgid "Could not connect to the following destination:"
|
||||
#: ../java/build/Proxy.java:36
|
||||
msgid "You may save this host name to your local address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:77
|
||||
#: ../java/build/Proxy.java:37
|
||||
msgid ""
|
||||
"If you save it to your address book, you will not see this message again."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:38
|
||||
msgid ""
|
||||
"If you do not save it, the host name will be forgotten after the next router "
|
||||
"restart."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:39
|
||||
msgid ""
|
||||
"If you do not wish to visit this host, click the \"back\" button on your "
|
||||
"browser."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:47
|
||||
msgid "The website was not reachable, because its lease set was not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:48
|
||||
msgid ""
|
||||
"The website is probably down, but there could also be network congestion."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:57
|
||||
msgid "Warning: Invalid Request URI"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:58
|
||||
msgid "The request URI is invalid, and probably contains illegal characters."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:59
|
||||
msgid ""
|
||||
"If you clicked a link, check the end of the URI for any characters the "
|
||||
"browser has mistakenly added on."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:60
|
||||
msgid "Error: Request Denied"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:83
|
||||
#: ../java/build/Proxy.java:66
|
||||
msgid "Error: Local Access"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:84
|
||||
#: ../java/build/Proxy.java:67
|
||||
msgid "Your browser is misconfigured."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:85
|
||||
#: ../java/build/Proxy.java:68
|
||||
msgid ""
|
||||
"Do not use the proxy to access the router console, localhost, or local LAN "
|
||||
"destinations."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:92
|
||||
msgid "Warning: No Outproxy Configured"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:93
|
||||
msgid ""
|
||||
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
|
||||
"configured."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:94
|
||||
msgid "Please configure an outproxy in I2PTunnel."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:102
|
||||
msgid "The website was not reachable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:103
|
||||
msgid ""
|
||||
"The website is offline, there is network congestion, or your router is not "
|
||||
"yet well-integrated with peers."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
|
||||
msgid "Warning: Invalid Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:113
|
||||
msgid ""
|
||||
"The website destination specified was not valid, or was otherwise "
|
||||
"unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:114
|
||||
msgid ""
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
|
||||
"is bad."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:115
|
||||
msgid "The I2P host could also be offline."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:124
|
||||
msgid "Warning: Non-HTTP Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:125
|
||||
msgid "The request uses a bad protocol."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:126
|
||||
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:127
|
||||
msgid "Other protocols such as FTP are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:135
|
||||
msgid "The connection to the website was reset while the page was loading."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:136
|
||||
msgid ""
|
||||
"The website could be temporarily unavailable, too busy, or it has blocked "
|
||||
"your access."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:139 ../java/build/Proxy.java:145
|
||||
msgid "Outproxy Unreachable"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:146
|
||||
msgid ""
|
||||
"The HTTP outproxy was not reachable, because it uses encryption options that "
|
||||
"are not supported by your I2P or Java version."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:150
|
||||
#: ../java/build/Proxy.java:69
|
||||
msgid "Website Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:156
|
||||
#: ../java/build/Proxy.java:75
|
||||
msgid "Website Not Found in Addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:157
|
||||
#: ../java/build/Proxy.java:76
|
||||
msgid "The website was not found in your router's addressbook."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:158
|
||||
#: ../java/build/Proxy.java:77
|
||||
msgid "Check the link or find a Base 32 or Base 64 address."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:159
|
||||
#: ../java/build/Proxy.java:78
|
||||
#, java-format
|
||||
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:160
|
||||
#: ../java/build/Proxy.java:79
|
||||
msgid ""
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
|
||||
"below."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:161
|
||||
#: ../java/build/Proxy.java:80
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
|
||||
"subscriptions{3} to your addressbook."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:163 ../java/build/Proxy.java:169
|
||||
msgid "Warning: Invalid Request URI"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:170
|
||||
msgid "The request URI is invalid, and probably contains illegal characters."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:171
|
||||
#: ../java/build/Proxy.java:89
|
||||
msgid ""
|
||||
"If you clicked a link, check the end of the URI for any characters the "
|
||||
"browser has mistakenly added on."
|
||||
"The website was not reachable, because it uses encryption options that are "
|
||||
"not supported by your I2P or Java version."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:172 ../java/build/Proxy.java:178
|
||||
#: ../java/build/Proxy.java:184 ../java/build/Proxy.java:190
|
||||
msgid "Outproxy Not Found"
|
||||
#: ../java/build/Proxy.java:90 ../java/build/Proxy.java:200
|
||||
msgid "Could not connect to the following destination:"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:179
|
||||
#: ../java/build/Proxy.java:91 ../java/build/Proxy.java:97
|
||||
#: ../java/build/Proxy.java:168 ../java/build/Proxy.java:174
|
||||
msgid "Connection Reset"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:98
|
||||
msgid "The connection to the website was reset while the page was loading."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:99
|
||||
msgid ""
|
||||
"The HTTP outproxy was not reachable, because its lease set was not found."
|
||||
"The website could be temporarily unavailable, too busy, or it has blocked "
|
||||
"your access."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:180
|
||||
#: ../java/build/Proxy.java:102 ../java/build/Proxy.java:108
|
||||
msgid "Warning: Invalid Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:109
|
||||
msgid ""
|
||||
"The outproxy is probably down, but there could also be network congestion."
|
||||
"The website destination specified was not valid, or was otherwise "
|
||||
"unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:191
|
||||
#: ../java/build/Proxy.java:110
|
||||
msgid ""
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
|
||||
"is bad."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:111
|
||||
msgid "The I2P host could also be offline."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:114 ../java/build/Proxy.java:120
|
||||
msgid "Warning: No Outproxy Configured"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:121
|
||||
msgid ""
|
||||
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
|
||||
"configured."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:122
|
||||
msgid "Please configure an outproxy in I2PTunnel."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:123 ../java/build/Proxy.java:129
|
||||
msgid "Warning: Destination Key Conflict"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:130
|
||||
msgid ""
|
||||
"The address helper link you followed specifies a different destination key "
|
||||
"than the entry in your address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:131
|
||||
msgid ""
|
||||
"Someone could be trying to impersonate another website, or people have given "
|
||||
"two websites identical names."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:132
|
||||
msgid ""
|
||||
"Resolve the conflict by deciding which key you trust, and then either ignore "
|
||||
"the address helper link, or delete the host entry from your address book and "
|
||||
"click the address helper link again."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:133 ../java/build/Proxy.java:139
|
||||
msgid "Warning: Bad Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:140
|
||||
#, java-format
|
||||
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:141
|
||||
msgid "It seems to be garbage data, or a mistyped Base 32 address."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:142
|
||||
msgid ""
|
||||
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
|
||||
"or Base 64 key."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:150
|
||||
msgid "The HTTP Outproxy was not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:192
|
||||
#: ../java/build/Proxy.java:151
|
||||
msgid ""
|
||||
"It is offline, there is network congestion, or your router is not yet well-"
|
||||
"integrated with peers."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:196
|
||||
#: ../java/build/Proxy.java:155 ../java/build/Proxy.java:161
|
||||
msgid "Warning: Request Denied"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:162
|
||||
msgid "You attempted to connect to a non-I2P website or location."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:163
|
||||
msgid "Proxy Authorization Required"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:197
|
||||
#: ../java/build/Proxy.java:164
|
||||
msgid "I2P HTTP Proxy Authorization Required"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:198
|
||||
#: ../java/build/Proxy.java:165
|
||||
msgid "This proxy is configured to require a username and password for access."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:199
|
||||
#: ../java/build/Proxy.java:166
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Please enter your username and password, or check your {0}router "
|
||||
"configuration{1} or {2}I2PTunnel configuration{3}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:200
|
||||
#: ../java/build/Proxy.java:167
|
||||
#, java-format
|
||||
msgid ""
|
||||
"To disable authorization, remove the configuration {0}i2ptunnel.proxy."
|
||||
"auth=basic{1}, then stop and restart the HTTP Proxy tunnel."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:634
|
||||
#: ../java/build/Proxy.java:175
|
||||
msgid "The connection to the proxy was reset."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:176
|
||||
msgid ""
|
||||
"The proxy could be temporarily unavailable, too busy, or it has blocked your "
|
||||
"access."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:180 ../java/build/Proxy.java:186
|
||||
msgid "Warning: Non-HTTP Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:187
|
||||
msgid "The request uses a bad protocol."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:188
|
||||
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:189
|
||||
msgid "Other protocols such as FTP are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:190 ../java/build/Proxy.java:196
|
||||
msgid "Outproxy Unreachable"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/build/Proxy.java:197
|
||||
msgid ""
|
||||
"The HTTP outproxy was not reachable, because it uses encryption options that "
|
||||
"are not supported by your I2P or Java version."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:640
|
||||
msgid "This seems to be a bad destination:"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:635
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:641
|
||||
msgid "i2paddresshelper cannot help you with a destination like that!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:709
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:716
|
||||
#, java-format
|
||||
msgid ""
|
||||
"To visit the destination in your host database, click <a href=\"{0}\">here</"
|
||||
"To visit the destination in your address book, click <a href=\"{0}\">here</"
|
||||
"a>. To visit the conflicting addresshelper destination, click <a href="
|
||||
"\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1121
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:741
|
||||
#, java-format
|
||||
msgid "Destination for {0} in address book"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:744
|
||||
msgid "Conflicting address helper destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1169
|
||||
msgid "Destination lease set not found"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1273
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1321
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1277
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1325
|
||||
msgid "Base 32"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1281
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1329
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1287
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1335
|
||||
#, java-format
|
||||
msgid "Continue to {0} without saving"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1341
|
||||
#, java-format
|
||||
msgid "Save {0} to router address book and continue to website"
|
||||
msgstr ""
|
||||
|
||||
#. only blockfile supports multiple books
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1296
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1344
|
||||
#, java-format
|
||||
msgid "Save {0} to master address book and continue to website"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1297
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1345
|
||||
#, java-format
|
||||
msgid "Save {0} to private address book and continue to website"
|
||||
msgstr ""
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,7 @@ import java.nio.channels.ServerSocketChannel;
|
||||
|
||||
import net.i2p.I2PException;
|
||||
import net.i2p.client.streaming.I2PSocket;
|
||||
import net.i2p.client.streaming.I2PSocketAddress;
|
||||
|
||||
/**
|
||||
* Bridge to I2PServerSocket.
|
||||
@@ -99,11 +100,14 @@ class StandardServerSocket extends ServerSocket {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null always
|
||||
* Port in returned SocketAddress will be zero.
|
||||
*
|
||||
* @return an I2PSocketAddress as of 0.9.26; prior to that, returned null
|
||||
* @since implemented in 0.9.26
|
||||
*/
|
||||
@Override
|
||||
public SocketAddress getLocalSocketAddress() {
|
||||
return null;
|
||||
return new I2PSocketAddress(_socket.getManager().getSession().getMyDestination(), 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -10,6 +10,7 @@ import java.net.SocketException;
|
||||
import java.nio.channels.SocketChannel;
|
||||
|
||||
import net.i2p.client.streaming.I2PSocket;
|
||||
import net.i2p.client.streaming.I2PSocketAddress;
|
||||
import net.i2p.client.streaming.I2PSocketOptions;
|
||||
|
||||
/**
|
||||
@@ -117,11 +118,12 @@ class StandardSocket extends Socket {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null always
|
||||
* @return an I2PSocketAddress as of 0.9.26; prior to that, returned null
|
||||
* @since implemented in 0.9.26
|
||||
*/
|
||||
@Override
|
||||
public SocketAddress getLocalSocketAddress() {
|
||||
return null;
|
||||
return new I2PSocketAddress(_socket.getThisDestination(), _socket.getLocalPort());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,11 +159,12 @@ class StandardSocket extends Socket {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws UnsupportedOperationException always
|
||||
* @return an I2PSocketAddress as of 0.9.26; prior to that, threw UnsupportedOperationException
|
||||
* @since implemented in 0.9.26
|
||||
*/
|
||||
@Override
|
||||
public SocketAddress getRemoteSocketAddress() {
|
||||
throw new UnsupportedOperationException();
|
||||
return new I2PSocketAddress(_socket.getPeerDestination(), _socket.getPort());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susidns\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-05 17:12+0000\n"
|
||||
"POT-Creation-Date: 2016-05-25 12:28+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@@ -48,35 +48,35 @@ msgid ""
|
||||
"unavailable in this JVM"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:223
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:227
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:231
|
||||
msgid "Hashcash"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:229
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:233
|
||||
msgid "Hidden"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:231
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:235
|
||||
msgid "Signed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:233
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:237
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:235
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:239
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:264
|
||||
#, java-format
|
||||
msgid "Type {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:247
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:254
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:251
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:258
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:261
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr ""
|
||||
|
||||
@@ -114,27 +114,27 @@ msgid "Showing {0} of {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:244
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:232
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:432
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:234
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:453
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:244
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:255
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:232
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:430
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:234
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:246
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:451
|
||||
msgid "Replace"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:254
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:245
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:256
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:245
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:247
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name {0} is already in address book with a different destination. Click "
|
||||
@@ -142,63 +142,63 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:258
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:260
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:271
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:262
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:273
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:262
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:264
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:270
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:272
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:276
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:279
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:281
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr ""
|
||||
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:312
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:283
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:308
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:270
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:285
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:310
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:285
|
||||
msgid "Delete Entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:283
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:354
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:285
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:369
|
||||
msgid "Delete Selected"
|
||||
msgstr ""
|
||||
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr ""
|
||||
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:308
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:305
|
||||
#, java-format
|
||||
msgid "1 destination deleted."
|
||||
msgid_plural "{0} destinations deleted."
|
||||
@@ -206,12 +206,12 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:310
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:305
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
msgid "No entries selected to delete."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:312
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:314
|
||||
msgid "Address book saved."
|
||||
msgstr ""
|
||||
|
||||
@@ -221,7 +221,7 @@ msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:108
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:316
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:318
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:157
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||
@@ -230,7 +230,7 @@ msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:328
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:110
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:318
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:320
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:159
|
||||
msgid ""
|
||||
"If the problem persists, verify that you have cookies enabled in your "
|
||||
@@ -239,8 +239,8 @@ msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:99
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:152
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
@@ -250,8 +250,8 @@ msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:102
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:150
|
||||
msgid "Reload"
|
||||
msgstr ""
|
||||
|
||||
@@ -259,21 +259,21 @@ msgstr ""
|
||||
msgid "Configuration reloaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:104
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:106
|
||||
#, java-format
|
||||
msgid "{0} address book in {1} database"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
|
||||
msgid "Manually added via SusiDNS"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:267
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
||||
#, java-format
|
||||
msgid "Failed to add Destination for {0} to naming service {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:291
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:293
|
||||
#, java-format
|
||||
msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr ""
|
||||
@@ -291,428 +291,440 @@ msgstr ""
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
msgid "address book"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:126
|
||||
msgid "Address books"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||
msgid "private"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:147
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "master"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "router"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid "published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid "Subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:147
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:147
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:143
|
||||
msgid "Address book"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:156
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:164
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:148
|
||||
msgid "Storage"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:174
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:184
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:187
|
||||
msgid "other"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:179
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:189
|
||||
msgid "all"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:201
|
||||
msgid "Current filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:198
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:206
|
||||
msgid "clear filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:211
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:215
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:219
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:223
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:249
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:262
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:251
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:264
|
||||
msgid "Links"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:253
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:424
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:262
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:266
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:445
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:277
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:289
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:302
|
||||
msgid "Mark for deletion"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:308
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:321
|
||||
msgid "Base 32 address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:325
|
||||
msgid "More information on this entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:315
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:328
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:352
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:428
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:367
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:449
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:379
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:396
|
||||
msgid "Export in hosts.txt format"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:403
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:424
|
||||
msgid "This address book is empty."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:418
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:439
|
||||
msgid "Add new destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:420
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:441
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:177
|
||||
msgid "Host Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
|
||||
msgid "configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
msgid ""
|
||||
"File and directory paths here are relative to the addressbook's working "
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
|
||||
"\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
msgid ""
|
||||
"If you want to manually add lines to an addressbook, add them to the private "
|
||||
"or master addressbooks."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:170
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
msgid ""
|
||||
"When you publish your addressbook, ALL destinations from the master and "
|
||||
"router addressbooks appear there."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:172
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:174
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:176
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:178
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
|
||||
msgid "Update interval in hours"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:180
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:182
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:184
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:185
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:186
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:187
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:188
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:190
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:192
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:193
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:194
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:195
|
||||
msgid ""
|
||||
"File containing the etags header from the fetched subscription URLs (no need "
|
||||
"to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:196
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:197
|
||||
msgid ""
|
||||
"File containing the modification timestamp for each fetched subscription URL "
|
||||
"(no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:198
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:199
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:200
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:201
|
||||
msgid "Name of the theme to use (defaults to 'light')"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:119
|
||||
msgid "addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:182
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:191
|
||||
msgid "Encoded Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:196
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:205
|
||||
msgid "Base 32 Address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:204
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "Base 64 Hash"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:210
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
|
||||
msgid "Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:225
|
||||
msgid "link"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
|
||||
msgid "Public Key"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:222
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:231
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
|
||||
msgid "Signing Key"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
|
||||
msgid "Added Date"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
|
||||
msgid "Validated"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:255
|
||||
msgid "no"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:255
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:259
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:265
|
||||
msgid "Last Modified"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:256
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:271
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138
|
||||
msgid "What is the addressbook?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:144
|
||||
#, java-format
|
||||
msgid ""
|
||||
"In the default configuration, the address book is only subscribed to {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:146
|
||||
msgid ""
|
||||
"Subscribing to additional sites is easy, just add them to your <a href="
|
||||
"\"subscriptions\">subscriptions</a> file."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:147
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:148
|
||||
msgid ""
|
||||
"For more information on naming in I2P, see <a href=\"http://i2p-projekt.i2p/"
|
||||
"naming.html\" target=\"_top\">the overview</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:150
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:152
|
||||
msgid ""
|
||||
"The addressbook application regularly polls your subscriptions and merges "
|
||||
"their content into your \"router\" address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:154
|
||||
msgid ""
|
||||
"Then it merges your \"master\" address book into the router address book as "
|
||||
"well."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:156
|
||||
msgid ""
|
||||
"If configured, the router address book is now written to the \"published\" "
|
||||
"address book, which will be publicly available if you are running an eepsite."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:158
|
||||
msgid ""
|
||||
"The router also uses a private address book (not shown in the picture), "
|
||||
"which is not merged or published."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:160
|
||||
msgid ""
|
||||
"Hosts in the private address book can be accessed by you but their addresses "
|
||||
"are never distributed to others."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:162
|
||||
msgid ""
|
||||
"The private address book can also be used for aliases of hosts in your other "
|
||||
"address books."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:154
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:156
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:158
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:160
|
||||
#, java-format
|
||||
msgid ""
|
||||
"The default subscription is the hosts.txt from {0}, which is updated "
|
||||
"infrequently."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:162
|
||||
msgid ""
|
||||
"So it is a good idea to add additional subscriptions to sites that have the "
|
||||
"latest addresses."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:164
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr ""
|
||||
|
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susimail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-03-29 14:30+0000\n"
|
||||
"POT-Creation-Date: 2016-05-25 12:29+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@@ -109,6 +109,7 @@ msgid "User logged out."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:837
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1143
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr ""
|
||||
|
||||
@@ -126,7 +127,7 @@ msgid "end forwarded mail"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1070
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2369
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2376
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr ""
|
||||
|
||||
@@ -138,209 +139,209 @@ msgstr ""
|
||||
msgid "Configuration reloaded"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1199
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1205
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1203
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1209
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1208
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1214
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr ""
|
||||
|
||||
#. error if we get here
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1293
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1296
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1299
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1302
|
||||
msgid "Attachment not found."
|
||||
msgstr ""
|
||||
|
||||
#. error if we get here
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1323
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1329
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1331
|
||||
msgid "Message not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1370
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1498
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1376
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1504
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1410
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1416
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1477
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1483
|
||||
msgid "Configuration saved"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1697
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2159
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1704
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2166
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#. mailbox.getNumMails() forces a connection, don't use it
|
||||
#. Not only does it slow things down, but a failure causes all our messages to "vanish"
|
||||
#. subtitle = ngettext("1 Message", "{0} Messages", sessionObject.mailbox.getNumMails());
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1702
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1709
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1708
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1715
|
||||
msgid "Show Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1710
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1717
|
||||
msgid "New Message"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1712
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1719
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1723
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1730
|
||||
msgid "SusiMail"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1736
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1743
|
||||
msgid "Message has not been sent. Do you want to discard it?"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1798
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1805
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1907
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1914
|
||||
msgid "no subject"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1924
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1931
|
||||
msgid "Found no valid sender address."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1930
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1937
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1951
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1958
|
||||
msgid "No recipients found."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2015
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2022
|
||||
msgid "Mail sent."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2059
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2066
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2060
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2275
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2409
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2067
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2282
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2416
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2103
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2202
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2357
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2110
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2209
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2364
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2104
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2111
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2105
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2112
|
||||
msgid "Cc"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2106
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2113
|
||||
msgid "Bcc"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2107
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2114
|
||||
msgid "Bcc to self"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2108
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2203
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2359
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2115
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2210
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2366
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2111
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2118
|
||||
msgid "Add Attachment"
|
||||
msgstr ""
|
||||
|
||||
#. TODO disable/hide in JS if no file selected
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2113
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2120
|
||||
msgid "Add another attachment"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2119
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2126
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2128
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2135
|
||||
msgid "Delete selected attachments"
|
||||
msgstr ""
|
||||
|
||||
#. current postman hq length limits 16/12, new postman version 32/32
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2147
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2154
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2148
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2155
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2153
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2160
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2154
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2161
|
||||
msgid "POP3 Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2155
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2162
|
||||
msgid "SMTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2160
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2167
|
||||
msgid "Read Mail Offline"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2164
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2293
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2171
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2300
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2167
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2174
|
||||
msgid "Learn about I2P mail"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2168
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2175
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2181
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2337
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2188
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2344
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
@@ -350,139 +351,139 @@ msgstr ""
|
||||
#. button( REPLYALL, _t("Reply All") ) +
|
||||
#. button( FORWARD, _t("Forward") ) + spacer +
|
||||
#. button( DELETE, _t("Delete") ) + spacer +
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2188
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2195
|
||||
msgid "Check Mail"
|
||||
msgstr ""
|
||||
|
||||
#. if (Config.hasConfigFile())
|
||||
#. out.println(button( RELOAD, _t("Reload Config") ) + spacer);
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2191
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2198
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2204
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2361
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2211
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2368
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2207
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2214
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2248
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2255
|
||||
msgid "Message is new"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2251
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2258
|
||||
msgid "Message has an attachment"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2253
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2260
|
||||
msgid "Message is spam"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2261
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2268
|
||||
msgid "No messages"
|
||||
msgstr ""
|
||||
|
||||
#. TODO ngettext
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2273
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2280
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2274
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2281
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2277
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2284
|
||||
msgid "Delete Selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2279
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2286
|
||||
msgid "Mark All"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2281
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2288
|
||||
msgid "Clear All"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2306
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2307
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2313
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2314
|
||||
msgid "First"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2306
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2307
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2347
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2313
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2314
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2354
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2309
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2316
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2312
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2313
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2319
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2320
|
||||
msgid "Last"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2312
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2313
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2349
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2319
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2320
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2356
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2325
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2332
|
||||
msgid "Really delete this message?"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2325
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2332
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2338
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2345
|
||||
msgid "Reply"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2339
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2346
|
||||
msgid "Reply All"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2340
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2347
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2341
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2348
|
||||
msgid "Save As"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2343
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2345
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2350
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2352
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2348
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2355
|
||||
msgid "Back to Folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2373
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2380
|
||||
msgid "Could not fetch mail."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2391
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2398
|
||||
msgid "Folder Page Size"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2394
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2401
|
||||
msgid "Set"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2397
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2404
|
||||
msgid "Advanced Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2408
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:2415
|
||||
msgid "Save Configuration"
|
||||
msgstr ""
|
||||
|
||||
|
80
build.xml
80
build.xml
@@ -2094,6 +2094,86 @@
|
||||
</tar>
|
||||
</target>
|
||||
|
||||
<!-- same as debian-tarball but with bundled jetty -->
|
||||
<target name="precise-tarball" depends="getExtendedVersion">
|
||||
<!-- this will use the monotonerc file in the current workspace -->
|
||||
<fail message="This target cannot be used without Monotone! Use "fakeroot debian/rules get-orig-source" instead.">
|
||||
<condition>
|
||||
<not>
|
||||
<isset property="mtn.available" />
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<property name="debian.tarball.name" value="i2p_${Extended.Version}.orig.tar.bz2" />
|
||||
<echo message="Checking out fresh copy into ../i2p-${Extended.Version} for tarballing:" />
|
||||
<delete dir="../i2p-${Extended.Version}" />
|
||||
<exec executable="mtn" failonerror="true">
|
||||
<arg value="co" />
|
||||
<!-- w: is the revision of the current workspace -->
|
||||
<arg value="-r" />
|
||||
<arg value="w:" />
|
||||
<arg value="../i2p-${Extended.Version}" />
|
||||
</exec>
|
||||
<delete includeemptydirs="true" quiet="false">
|
||||
<fileset dir="../i2p-${Extended.Version}/debian-alt/" />
|
||||
<fileset dir="../i2p-${Extended.Version}/installer/lib/" />
|
||||
<fileset dir="../i2p-${Extended.Version}/Slackware" />
|
||||
<fileset dir="../i2p-${Extended.Version}/_MTN" />
|
||||
<!-- gettext-base -->
|
||||
<fileset dir="../i2p-${Extended.Version}/core/java/src/gnu/gettext" />
|
||||
<!-- libgetopt-java -->
|
||||
<fileset dir="../i2p-${Extended.Version}/core/java/src/gnu/getopt" />
|
||||
<!-- libhttpclient-java and libhttpcore-java -->
|
||||
<!--
|
||||
<fileset dir="../i2p-${Extended.Version}/core/java/src/org/apache/http" />
|
||||
-->
|
||||
<!-- systray4j -->
|
||||
<fileset dir="../i2p-${Extended.Version}/apps/systray/java/lib" />
|
||||
<file name="../i2p-${Extended.Version}/apps/systray/java/src/net/i2p/apps/systray/SysTrayImpl.java" />
|
||||
<!-- geoip-database -->
|
||||
<file name="../i2p-${Extended.Version}/installer/resources/geoip.txt" />
|
||||
<file name="../i2p-${Extended.Version}/installer/resources/geoipv6.dat.gz" />
|
||||
<!-- libjetty8-java -->
|
||||
<!--
|
||||
<fileset dir="../i2p-${Extended.Version}/apps/jetty/jetty-distribution-8.1.17.v20150415" />
|
||||
-->
|
||||
<!-- libjstl1.1-java or glassfish-javaee -->
|
||||
<file name="../i2p-${Extended.Version}/apps/susidns/src/lib/jstl.jar" />
|
||||
<!-- libjakarta-taglibs-standard-java or glassfish-javaee -->
|
||||
<file name="../i2p-${Extended.Version}/apps/susidns/src/lib/standard.jar" />
|
||||
<!-- libtomcat6-java or libtomcat7-java -->
|
||||
<!--
|
||||
<fileset dir="../i2p-${Extended.Version}/apps/jetty/apache-tomcat" />
|
||||
<fileset dir="../i2p-${Extended.Version}/apps/jetty/apache-tomcat-deployer/" />
|
||||
-->
|
||||
<!-- anything added above, add in debian-release-tarball also -->
|
||||
</delete>
|
||||
<tar longfile="gnu" destfile="../${debian.tarball.name}" compression="bzip2">
|
||||
<tarfileset dir="../i2p-${Extended.Version}" prefix="/i2p-${Extended.Version}">
|
||||
<include name="**/**" />
|
||||
<exclude name="debian/**"/>
|
||||
<exclude name="debian-alt/**"/>
|
||||
<exclude name="**/*.sh"/>
|
||||
<exclude name="installer/resources/geoip.txt"/>
|
||||
<exclude name="installer/resources/geoipv6.dat.gz"/>
|
||||
<!--
|
||||
<exclude name="apps/jetty/jetty-distribution-*/**"/>
|
||||
-->
|
||||
<exclude name="apps/susidns/src/lib/jstl.jar" />
|
||||
<exclude name="apps/susidns/src/lib/standard.jar" />
|
||||
<!--
|
||||
<exclude name="apps/jetty/apache-tomcat/**"/>
|
||||
<exclude name="apps/jetty/apache-tomcat-deployer/**"/>
|
||||
-->
|
||||
<!-- anything added above, add in debian-release-tarball also -->
|
||||
</tarfileset>
|
||||
<tarfileset dir="../i2p-${Extended.Version}" prefix="/i2p-${Extended.Version}" filemode="755">
|
||||
<exclude name="debian/**" />
|
||||
<include name="**/*.sh" />
|
||||
</tarfileset>
|
||||
</tar>
|
||||
</target>
|
||||
|
||||
<!-- same as debian-tarball but with a release tar.bz2 file name and tar prefix -->
|
||||
<target name="debian-release-tarball" depends="getExtendedVersion">
|
||||
<!-- this will use the monotonerc file in the current workspace -->
|
||||
|
@@ -26,7 +26,7 @@ if [ -z $BITS ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
printf "\aBITS variable not set, $BITS bit system detected\n\a" >&2
|
||||
printf "BITS variable not set, $BITS bit system detected\n" >&2
|
||||
fi
|
||||
|
||||
# If JAVA_HOME isn't set we'll try to figure it out
|
||||
|
@@ -45,13 +45,13 @@ if [ -z $BITS ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
printf "\aBITS variable not set, $BITS bit system detected\n\a" >&2
|
||||
printf "BITS variable not set, $BITS bit system detected\n" >&2
|
||||
fi
|
||||
|
||||
|
||||
if [ -z $CC ]; then
|
||||
export CC="gcc"
|
||||
printf "\aCC variable not set, defaulting to $CC\n\a" >&2
|
||||
printf "CC variable not set, defaulting to $CC\n" >&2
|
||||
fi
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ elif [ $BITS -eq 64 ]; then
|
||||
export CFLAGS="-m64 -mtune=generic"
|
||||
export LDFLAGS="-m64"
|
||||
else
|
||||
printf "\aBITS value \"$BITS\" not valid, please select 32 or 64\n\a" >&2
|
||||
printf "BITS value \"$BITS\" not valid, please select 32 or 64\n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
218
core/java/src/net/i2p/util/FileLogWriter.java
Normal file
218
core/java/src/net/i2p/util/FileLogWriter.java
Normal file
@@ -0,0 +1,218 @@
|
||||
package net.i2p.util;
|
||||
|
||||
/*
|
||||
* free (adj.): unencumbered; not under the control of others
|
||||
* Written by jrandom in 2003 and released into the public domain
|
||||
* with no warranty of any kind, either expressed or implied.
|
||||
* It probably won't make your computer catch on fire, or eat
|
||||
* your children, but it might. Use at your own risk.
|
||||
*
|
||||
*/
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
|
||||
/**
|
||||
* File-based log writer thread that pulls log records from the LogManager,
|
||||
* writes them to the current logfile, and rotates the logs as necessary.
|
||||
*
|
||||
*/
|
||||
class FileLogWriter extends LogWriter {
|
||||
// volatile as it changes on log file rotation
|
||||
private volatile Writer _currentOut;
|
||||
private int _rotationNum = -1;
|
||||
private File _currentFile;
|
||||
private long _numBytesInCurrentFile;
|
||||
|
||||
private static final int MAX_DISKFULL_MESSAGES = 8;
|
||||
private int _diskFullMessageCount;
|
||||
|
||||
public FileLogWriter(LogManager manager) {
|
||||
super(manager);
|
||||
}
|
||||
|
||||
/**
|
||||
* File may not exist or have old logs in it if not opened yet
|
||||
*/
|
||||
public synchronized String currentFile() {
|
||||
if (_currentFile != null)
|
||||
return _currentFile.getAbsolutePath();
|
||||
String rv = getNextFile().getAbsolutePath();
|
||||
// so it doesn't increment every time we call this
|
||||
_rotationNum = -1;
|
||||
return rv;
|
||||
}
|
||||
|
||||
protected void writeRecord(LogRecord rec, String formatted) {
|
||||
writeRecord(rec.getPriority(), formatted);
|
||||
}
|
||||
|
||||
protected synchronized void writeRecord(int priority, String val) {
|
||||
if (val == null) return;
|
||||
if (_currentOut == null) {
|
||||
rotateFile();
|
||||
if (_currentOut == null)
|
||||
return; // hosed
|
||||
}
|
||||
|
||||
try {
|
||||
_currentOut.write(val);
|
||||
// may be a little off if a lot of multi-byte chars, but unlikely
|
||||
_numBytesInCurrentFile += val.length();
|
||||
} catch (Throwable t) {
|
||||
if (!_write)
|
||||
return;
|
||||
if (++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error writing log, disk full? " + t);
|
||||
//t.printStackTrace();
|
||||
}
|
||||
if (_numBytesInCurrentFile >= _manager.getFileSize()) {
|
||||
rotateFile();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 0.9.19
|
||||
*/
|
||||
protected void flushWriter() {
|
||||
try {
|
||||
if (_currentOut != null)
|
||||
_currentOut.flush();
|
||||
} catch (IOException ioe) {
|
||||
if (_write && ++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error writing the router log - disk full? " + ioe);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 0.9.19 renamed from closeFile()
|
||||
*/
|
||||
protected void closeWriter() {
|
||||
Writer out = _currentOut;
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
} catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotate to the next file (or the first file if this is the first call)
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private void rotateFile() {
|
||||
File f = getNextFile();
|
||||
_currentFile = f;
|
||||
_numBytesInCurrentFile = 0;
|
||||
File parent = f.getParentFile();
|
||||
if (parent != null) {
|
||||
if (!parent.exists()) {
|
||||
File sd = new SecureDirectory(parent.getAbsolutePath());
|
||||
boolean ok = sd.mkdirs();
|
||||
if (!ok) {
|
||||
System.err.println("Unable to create the parent directory: " + parent.getAbsolutePath());
|
||||
//System.exit(0);
|
||||
}
|
||||
}
|
||||
if (!parent.isDirectory()) {
|
||||
System.err.println("Cannot put the logs in a subdirectory of a plain file: " + f.getAbsolutePath());
|
||||
//System.exit(0);
|
||||
}
|
||||
}
|
||||
closeWriter();
|
||||
try {
|
||||
_currentOut = new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(f), "UTF-8"));
|
||||
} catch (IOException ioe) {
|
||||
if (++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error creating log file [" + f.getAbsolutePath() + "]" + ioe);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next file in the rotation
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private File getNextFile() {
|
||||
String pattern = _manager.getBaseLogfilename();
|
||||
File f = new File(pattern);
|
||||
File base = null;
|
||||
if (!f.isAbsolute())
|
||||
base = _manager.getContext().getLogDir();
|
||||
|
||||
if ( (pattern.indexOf('#') < 0) && (pattern.indexOf('@') <= 0) ) {
|
||||
if (base != null)
|
||||
return new File(base, pattern);
|
||||
else
|
||||
return f;
|
||||
}
|
||||
|
||||
int max = _manager.getRotationLimit();
|
||||
if (_rotationNum == -1) {
|
||||
return getFirstFile(base, pattern, max);
|
||||
}
|
||||
|
||||
// we're in rotation, just go to the next
|
||||
_rotationNum++;
|
||||
if (_rotationNum > max) _rotationNum = 0;
|
||||
|
||||
String newf = replace(pattern, _rotationNum);
|
||||
if (base != null)
|
||||
return new File(base, newf);
|
||||
return new File(newf);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the first file, updating the rotation number accordingly
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private File getFirstFile(File base, String pattern, int max) {
|
||||
for (int i = 0; i < max; i++) {
|
||||
File f;
|
||||
if (base != null)
|
||||
f = new File(base, replace(pattern, i));
|
||||
else
|
||||
f = new File(replace(pattern, i));
|
||||
if (!f.exists()) {
|
||||
_rotationNum = i;
|
||||
return f;
|
||||
}
|
||||
}
|
||||
|
||||
// all exist, pick the oldest to replace
|
||||
File oldest = null;
|
||||
for (int i = 0; i < max; i++) {
|
||||
File f;
|
||||
if (base != null)
|
||||
f = new File(base, replace(pattern, i));
|
||||
else
|
||||
f = new File(replace(pattern, i));
|
||||
if (oldest == null) {
|
||||
oldest = f;
|
||||
} else {
|
||||
if (f.lastModified() < oldest.lastModified()) {
|
||||
_rotationNum = i;
|
||||
oldest = f;
|
||||
}
|
||||
}
|
||||
}
|
||||
return oldest;
|
||||
}
|
||||
|
||||
private static final String replace(String pattern, int num) {
|
||||
char c[] = pattern.toCharArray();
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (int i = 0; i < c.length; i++) {
|
||||
if ( (c[i] != '#') && (c[i] != '@') )
|
||||
buf.append(c[i]);
|
||||
else
|
||||
buf.append(num);
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
@@ -12,6 +12,8 @@ package net.i2p.util;
|
||||
import java.io.File;
|
||||
import java.io.Flushable;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
@@ -163,7 +165,21 @@ public class LogManager implements Flushable {
|
||||
// yeah, this doesn't always work, _writer should be volatile
|
||||
if (_writer != null)
|
||||
return;
|
||||
_writer = new LogWriter(this);
|
||||
if (SystemVersion.isAndroid()) {
|
||||
try {
|
||||
Class<?> clazz = Class.forName("net.i2p.util.AndroidLogWriter");
|
||||
Constructor<?> ctor = clazz.getDeclaredConstructor(LogManager.class);
|
||||
_writer = (LogWriter) ctor.newInstance(this);
|
||||
} catch (ClassNotFoundException e) {
|
||||
} catch (InstantiationException e) {
|
||||
} catch (IllegalAccessException e) {
|
||||
} catch (InvocationTargetException e) {
|
||||
} catch (NoSuchMethodException e) {
|
||||
}
|
||||
}
|
||||
// Default writer
|
||||
if (_writer == null)
|
||||
_writer = new FileLogWriter(this);
|
||||
_writer.setFlushInterval(_flushInterval * 1000);
|
||||
// if you enable logging in I2PThread again, you MUST change this back to Thread
|
||||
Thread t = new I2PThread(_writer, "LogWriter");
|
||||
|
@@ -9,210 +9,182 @@ package net.i2p.util;
|
||||
*
|
||||
*/
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.Queue;
|
||||
|
||||
/**
|
||||
* File-based log writer thread that pulls log records from the LogManager,
|
||||
* writes them to the current logfile, and rotates the logs as necessary.
|
||||
* Log writer thread that pulls log records from the LogManager and writes them to
|
||||
* the log. This also periodically instructs the LogManager to reread its config
|
||||
* file.
|
||||
*
|
||||
* @since 0.9.19 pulled from FileLogWriter so Android may extend
|
||||
*/
|
||||
class LogWriter extends LogWriterBase {
|
||||
// volatile as it changes on log file rotation
|
||||
private volatile Writer _currentOut;
|
||||
private int _rotationNum = -1;
|
||||
private File _currentFile;
|
||||
private long _numBytesInCurrentFile;
|
||||
abstract class LogWriter implements Runnable {
|
||||
/** every 10 seconds? why? Just have the gui force a reread after a change?? */
|
||||
private final static long CONFIG_READ_INTERVAL = 50 * 1000;
|
||||
final static long FLUSH_INTERVAL = 29 * 1000;
|
||||
private final static long MIN_FLUSH_INTERVAL = 2*1000;
|
||||
private final static long MAX_FLUSH_INTERVAL = 5*60*1000;
|
||||
private long _lastReadConfig;
|
||||
protected final LogManager _manager;
|
||||
|
||||
private static final int MAX_DISKFULL_MESSAGES = 8;
|
||||
private int _diskFullMessageCount;
|
||||
protected volatile boolean _write;
|
||||
private LogRecord _last;
|
||||
// ms
|
||||
private volatile long _flushInterval = FLUSH_INTERVAL;
|
||||
|
||||
public LogWriter(LogManager manager) {
|
||||
super(manager);
|
||||
_manager = manager;
|
||||
_lastReadConfig = Clock.getInstance().now();
|
||||
}
|
||||
|
||||
public abstract String currentFile();
|
||||
/**
|
||||
* Write the provided LogRecord to the writer.
|
||||
* @param rec the LogRecord to write.
|
||||
* @param formatted a String pre-formatted from rec, may be ignored.
|
||||
*/
|
||||
protected abstract void writeRecord(LogRecord rec, String formatted);
|
||||
/**
|
||||
* Write a single String verbatim to the writer.
|
||||
* @param priority the level to log the line at.
|
||||
* @param line the String to write.
|
||||
*/
|
||||
protected abstract void writeRecord(int priority, String line);
|
||||
protected abstract void flushWriter();
|
||||
protected abstract void closeWriter();
|
||||
|
||||
public void stopWriting() {
|
||||
_write = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* File may not exist or have old logs in it if not opened yet
|
||||
* @param interval ms
|
||||
* @since 0.9.18
|
||||
*/
|
||||
public synchronized String currentFile() {
|
||||
if (_currentFile != null)
|
||||
return _currentFile.getAbsolutePath();
|
||||
String rv = getNextFile().getAbsolutePath();
|
||||
// so it doesn't increment every time we call this
|
||||
_rotationNum = -1;
|
||||
return rv;
|
||||
}
|
||||
|
||||
protected void writeRecord(LogRecord rec, String formatted) {
|
||||
writeRecord(rec.getPriority(), formatted);
|
||||
}
|
||||
|
||||
protected synchronized void writeRecord(int priority, String val) {
|
||||
if (val == null) return;
|
||||
if (_currentOut == null) {
|
||||
rotateFile();
|
||||
if (_currentOut == null)
|
||||
return; // hosed
|
||||
public void setFlushInterval(long interval) {
|
||||
_flushInterval = Math.min(MAX_FLUSH_INTERVAL, Math.max(MIN_FLUSH_INTERVAL, interval));
|
||||
}
|
||||
|
||||
public void run() {
|
||||
_write = true;
|
||||
// don't bother on Android
|
||||
final boolean shouldReadConfig = !SystemVersion.isAndroid();
|
||||
try {
|
||||
_currentOut.write(val);
|
||||
// may be a little off if a lot of multi-byte chars, but unlikely
|
||||
_numBytesInCurrentFile += val.length();
|
||||
} catch (Throwable t) {
|
||||
if (!_write)
|
||||
return;
|
||||
if (++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error writing log, disk full? " + t);
|
||||
//t.printStackTrace();
|
||||
}
|
||||
if (_numBytesInCurrentFile >= _manager.getFileSize()) {
|
||||
rotateFile();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 0.9.19
|
||||
*/
|
||||
protected void flushWriter() {
|
||||
try {
|
||||
if (_currentOut != null)
|
||||
_currentOut.flush();
|
||||
} catch (IOException ioe) {
|
||||
if (_write && ++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error writing the router log - disk full? " + ioe);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 0.9.19 renamed from closeFile()
|
||||
*/
|
||||
protected void closeWriter() {
|
||||
Writer out = _currentOut;
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
} catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotate to the next file (or the first file if this is the first call)
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private void rotateFile() {
|
||||
File f = getNextFile();
|
||||
_currentFile = f;
|
||||
_numBytesInCurrentFile = 0;
|
||||
File parent = f.getParentFile();
|
||||
if (parent != null) {
|
||||
if (!parent.exists()) {
|
||||
File sd = new SecureDirectory(parent.getAbsolutePath());
|
||||
boolean ok = sd.mkdirs();
|
||||
if (!ok) {
|
||||
System.err.println("Unable to create the parent directory: " + parent.getAbsolutePath());
|
||||
//System.exit(0);
|
||||
}
|
||||
}
|
||||
if (!parent.isDirectory()) {
|
||||
System.err.println("Cannot put the logs in a subdirectory of a plain file: " + f.getAbsolutePath());
|
||||
//System.exit(0);
|
||||
while (_write) {
|
||||
flushRecords();
|
||||
if (_write && shouldReadConfig)
|
||||
rereadConfig();
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
System.err.println("Error writing the log: " + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
closeWriter();
|
||||
}
|
||||
|
||||
public void flushRecords() { flushRecords(true); }
|
||||
|
||||
public void flushRecords(boolean shouldWait) {
|
||||
try {
|
||||
_currentOut = new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(f), "UTF-8"));
|
||||
} catch (IOException ioe) {
|
||||
if (++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error creating log file [" + f.getAbsolutePath() + "]" + ioe);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next file in the rotation
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private File getNextFile() {
|
||||
String pattern = _manager.getBaseLogfilename();
|
||||
File f = new File(pattern);
|
||||
File base = null;
|
||||
if (!f.isAbsolute())
|
||||
base = _manager.getContext().getLogDir();
|
||||
|
||||
if ( (pattern.indexOf('#') < 0) && (pattern.indexOf('@') <= 0) ) {
|
||||
if (base != null)
|
||||
return new File(base, pattern);
|
||||
else
|
||||
return f;
|
||||
}
|
||||
|
||||
int max = _manager.getRotationLimit();
|
||||
if (_rotationNum == -1) {
|
||||
return getFirstFile(base, pattern, max);
|
||||
}
|
||||
|
||||
// we're in rotation, just go to the next
|
||||
_rotationNum++;
|
||||
if (_rotationNum > max) _rotationNum = 0;
|
||||
|
||||
String newf = replace(pattern, _rotationNum);
|
||||
if (base != null)
|
||||
return new File(base, newf);
|
||||
return new File(newf);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the first file, updating the rotation number accordingly
|
||||
*
|
||||
* Caller must synch
|
||||
*/
|
||||
private File getFirstFile(File base, String pattern, int max) {
|
||||
for (int i = 0; i < max; i++) {
|
||||
File f;
|
||||
if (base != null)
|
||||
f = new File(base, replace(pattern, i));
|
||||
else
|
||||
f = new File(replace(pattern, i));
|
||||
if (!f.exists()) {
|
||||
_rotationNum = i;
|
||||
return f;
|
||||
}
|
||||
}
|
||||
|
||||
// all exist, pick the oldest to replace
|
||||
File oldest = null;
|
||||
for (int i = 0; i < max; i++) {
|
||||
File f;
|
||||
if (base != null)
|
||||
f = new File(base, replace(pattern, i));
|
||||
else
|
||||
f = new File(replace(pattern, i));
|
||||
if (oldest == null) {
|
||||
oldest = f;
|
||||
// zero copy, drain the manager queue directly
|
||||
Queue<LogRecord> records = _manager.getQueue();
|
||||
if (records == null) return;
|
||||
if (!records.isEmpty()) {
|
||||
if (_last != null && _last.getDate() < _manager.getContext().clock().now() - 30*60*1000)
|
||||
_last = null;
|
||||
LogRecord rec;
|
||||
int dupCount = 0;
|
||||
while ((rec = records.poll()) != null) {
|
||||
if (_manager.shouldDropDuplicates() && rec.equals(_last)) {
|
||||
dupCount++;
|
||||
} else {
|
||||
if (f.lastModified() < oldest.lastModified()) {
|
||||
_rotationNum = i;
|
||||
oldest = f;
|
||||
if (dupCount > 0) {
|
||||
writeDupMessage(dupCount, _last);
|
||||
dupCount = 0;
|
||||
}
|
||||
writeRecord(rec);
|
||||
}
|
||||
_last = rec;
|
||||
}
|
||||
if (dupCount > 0) {
|
||||
writeDupMessage(dupCount, _last);
|
||||
}
|
||||
flushWriter();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
} finally {
|
||||
if (shouldWait) {
|
||||
try {
|
||||
synchronized (this) {
|
||||
this.wait(_flushInterval);
|
||||
}
|
||||
} catch (InterruptedException ie) { // nop
|
||||
}
|
||||
}
|
||||
}
|
||||
return oldest;
|
||||
}
|
||||
|
||||
private static final String replace(String pattern, int num) {
|
||||
char c[] = pattern.toCharArray();
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (int i = 0; i < c.length; i++) {
|
||||
if ( (c[i] != '#') && (c[i] != '@') )
|
||||
buf.append(c[i]);
|
||||
/**
|
||||
* Write a msg with the date stamp of the last duplicate
|
||||
* @since 0.9.21
|
||||
*/
|
||||
private void writeDupMessage(int dupCount, LogRecord lastRecord) {
|
||||
String dmsg = dupMessage(dupCount, lastRecord, false);
|
||||
writeRecord(lastRecord.getPriority(), dmsg);
|
||||
if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen())
|
||||
System.out.print(dmsg);
|
||||
dmsg = dupMessage(dupCount, lastRecord, true);
|
||||
_manager.getBuffer().add(dmsg);
|
||||
if (lastRecord.getPriority() >= Log.CRIT)
|
||||
_manager.getBuffer().addCritical(dmsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a msg with the date stamp of the last duplicate
|
||||
* @since 0.9.3
|
||||
*/
|
||||
private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse) {
|
||||
String arrows = reverse ? (SystemVersion.isAndroid() ? "vvv" : "↓↓↓") : "^^^";
|
||||
return LogRecordFormatter.getWhen(_manager, lastRecord) + ' ' + arrows + ' ' +
|
||||
_t(dupCount, "1 similar message omitted", "{0} similar messages omitted") + ' ' + arrows +
|
||||
LogRecordFormatter.NL;
|
||||
}
|
||||
|
||||
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
||||
|
||||
/**
|
||||
* gettext
|
||||
* @since 0.9.3
|
||||
*/
|
||||
private String _t(int a, String b, String c) {
|
||||
return Translate.getString(a, b, c, _manager.getContext(), BUNDLE_NAME);
|
||||
}
|
||||
|
||||
private void rereadConfig() {
|
||||
long now = Clock.getInstance().now();
|
||||
if (now - _lastReadConfig > CONFIG_READ_INTERVAL) {
|
||||
_manager.rereadConfig();
|
||||
_lastReadConfig = now;
|
||||
}
|
||||
}
|
||||
|
||||
private void writeRecord(LogRecord rec) {
|
||||
String val = LogRecordFormatter.formatRecord(_manager, rec, true);
|
||||
writeRecord(rec, val);
|
||||
|
||||
// we always add to the console buffer, but only sometimes write to stdout
|
||||
_manager.getBuffer().add(val);
|
||||
if (rec.getPriority() >= Log.CRIT)
|
||||
_manager.getBuffer().addCritical(val);
|
||||
if (_manager.getDisplayOnScreenLevel() <= rec.getPriority()) {
|
||||
if (_manager.displayOnScreen()) {
|
||||
// wrapper and android logs already do time stamps, so reformat without the date
|
||||
if (_manager.getContext().hasWrapper() || SystemVersion.isAndroid())
|
||||
System.out.print(LogRecordFormatter.formatRecord(_manager, rec, false));
|
||||
else
|
||||
buf.append(num);
|
||||
}
|
||||
return buf.toString();
|
||||
System.out.print(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,190 +0,0 @@
|
||||
package net.i2p.util;
|
||||
|
||||
/*
|
||||
* free (adj.): unencumbered; not under the control of others
|
||||
* Written by jrandom in 2003 and released into the public domain
|
||||
* with no warranty of any kind, either expressed or implied.
|
||||
* It probably won't make your computer catch on fire, or eat
|
||||
* your children, but it might. Use at your own risk.
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.Queue;
|
||||
|
||||
/**
|
||||
* Log writer thread that pulls log records from the LogManager and writes them to
|
||||
* the log. This also periodically instructs the LogManager to reread its config
|
||||
* file.
|
||||
*
|
||||
* @since 0.9.19 pulled from LogWriter so Android may extend
|
||||
*/
|
||||
abstract class LogWriterBase implements Runnable {
|
||||
/** every 10 seconds? why? Just have the gui force a reread after a change?? */
|
||||
private final static long CONFIG_READ_INTERVAL = 50 * 1000;
|
||||
final static long FLUSH_INTERVAL = 29 * 1000;
|
||||
private final static long MIN_FLUSH_INTERVAL = 2*1000;
|
||||
private final static long MAX_FLUSH_INTERVAL = 5*60*1000;
|
||||
private long _lastReadConfig;
|
||||
protected final LogManager _manager;
|
||||
|
||||
protected volatile boolean _write;
|
||||
private LogRecord _last;
|
||||
// ms
|
||||
private volatile long _flushInterval = FLUSH_INTERVAL;
|
||||
|
||||
public LogWriterBase(LogManager manager) {
|
||||
_manager = manager;
|
||||
_lastReadConfig = Clock.getInstance().now();
|
||||
}
|
||||
|
||||
public abstract String currentFile();
|
||||
/**
|
||||
* Write the provided LogRecord to the writer.
|
||||
* @param rec the LogRecord to write.
|
||||
* @param formatted a String pre-formatted from rec, may be ignored.
|
||||
*/
|
||||
protected abstract void writeRecord(LogRecord rec, String formatted);
|
||||
/**
|
||||
* Write a single String verbatim to the writer.
|
||||
* @param priority the level to log the line at.
|
||||
* @param line the String to write.
|
||||
*/
|
||||
protected abstract void writeRecord(int priority, String line);
|
||||
protected abstract void flushWriter();
|
||||
protected abstract void closeWriter();
|
||||
|
||||
public void stopWriting() {
|
||||
_write = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param interval ms
|
||||
* @since 0.9.18
|
||||
*/
|
||||
public void setFlushInterval(long interval) {
|
||||
_flushInterval = Math.min(MAX_FLUSH_INTERVAL, Math.max(MIN_FLUSH_INTERVAL, interval));
|
||||
}
|
||||
|
||||
public void run() {
|
||||
_write = true;
|
||||
// don't bother on Android
|
||||
final boolean shouldReadConfig = !SystemVersion.isAndroid();
|
||||
try {
|
||||
while (_write) {
|
||||
flushRecords();
|
||||
if (_write && shouldReadConfig)
|
||||
rereadConfig();
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
System.err.println("Error writing the log: " + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
closeWriter();
|
||||
}
|
||||
|
||||
public void flushRecords() { flushRecords(true); }
|
||||
|
||||
public void flushRecords(boolean shouldWait) {
|
||||
try {
|
||||
// zero copy, drain the manager queue directly
|
||||
Queue<LogRecord> records = _manager.getQueue();
|
||||
if (records == null) return;
|
||||
if (!records.isEmpty()) {
|
||||
if (_last != null && _last.getDate() < _manager.getContext().clock().now() - 30*60*1000)
|
||||
_last = null;
|
||||
LogRecord rec;
|
||||
int dupCount = 0;
|
||||
while ((rec = records.poll()) != null) {
|
||||
if (_manager.shouldDropDuplicates() && rec.equals(_last)) {
|
||||
dupCount++;
|
||||
} else {
|
||||
if (dupCount > 0) {
|
||||
writeDupMessage(dupCount, _last);
|
||||
dupCount = 0;
|
||||
}
|
||||
writeRecord(rec);
|
||||
}
|
||||
_last = rec;
|
||||
}
|
||||
if (dupCount > 0) {
|
||||
writeDupMessage(dupCount, _last);
|
||||
}
|
||||
flushWriter();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
} finally {
|
||||
if (shouldWait) {
|
||||
try {
|
||||
synchronized (this) {
|
||||
this.wait(_flushInterval);
|
||||
}
|
||||
} catch (InterruptedException ie) { // nop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Write a msg with the date stamp of the last duplicate
|
||||
* @since 0.9.21
|
||||
*/
|
||||
private void writeDupMessage(int dupCount, LogRecord lastRecord) {
|
||||
String dmsg = dupMessage(dupCount, lastRecord, false);
|
||||
writeRecord(lastRecord.getPriority(), dmsg);
|
||||
if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen())
|
||||
System.out.print(dmsg);
|
||||
dmsg = dupMessage(dupCount, lastRecord, true);
|
||||
_manager.getBuffer().add(dmsg);
|
||||
if (lastRecord.getPriority() >= Log.CRIT)
|
||||
_manager.getBuffer().addCritical(dmsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a msg with the date stamp of the last duplicate
|
||||
* @since 0.9.3
|
||||
*/
|
||||
private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse) {
|
||||
String arrows = reverse ? (SystemVersion.isAndroid() ? "vvv" : "↓↓↓") : "^^^";
|
||||
return LogRecordFormatter.getWhen(_manager, lastRecord) + ' ' + arrows + ' ' +
|
||||
_t(dupCount, "1 similar message omitted", "{0} similar messages omitted") + ' ' + arrows +
|
||||
LogRecordFormatter.NL;
|
||||
}
|
||||
|
||||
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
||||
|
||||
/**
|
||||
* gettext
|
||||
* @since 0.9.3
|
||||
*/
|
||||
private String _t(int a, String b, String c) {
|
||||
return Translate.getString(a, b, c, _manager.getContext(), BUNDLE_NAME);
|
||||
}
|
||||
|
||||
private void rereadConfig() {
|
||||
long now = Clock.getInstance().now();
|
||||
if (now - _lastReadConfig > CONFIG_READ_INTERVAL) {
|
||||
_manager.rereadConfig();
|
||||
_lastReadConfig = now;
|
||||
}
|
||||
}
|
||||
|
||||
private void writeRecord(LogRecord rec) {
|
||||
String val = LogRecordFormatter.formatRecord(_manager, rec, true);
|
||||
writeRecord(rec, val);
|
||||
|
||||
// we always add to the console buffer, but only sometimes write to stdout
|
||||
_manager.getBuffer().add(val);
|
||||
if (rec.getPriority() >= Log.CRIT)
|
||||
_manager.getBuffer().addCritical(val);
|
||||
if (_manager.getDisplayOnScreenLevel() <= rec.getPriority()) {
|
||||
if (_manager.displayOnScreen()) {
|
||||
// wrapper and android logs already do time stamps, so reformat without the date
|
||||
if (_manager.getContext().hasWrapper() || SystemVersion.isAndroid())
|
||||
System.out.print(LogRecordFormatter.formatRecord(_manager, rec, false));
|
||||
else
|
||||
System.out.print(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,9 +1,7 @@
|
||||
The files in ../debian/ are for jessie/stable.
|
||||
Alternates are in the subdirectories here.
|
||||
|
||||
trusty may be copied to utopic and vivid.
|
||||
They do not have libjetty8-java.
|
||||
wily has libjetty8-java.
|
||||
trusty may be copied to utopic, vivid, wily, xenial.
|
||||
|
||||
tails-jessie and tails-wheezy are currently the same as
|
||||
jessie and wheezy, respectively. If they diverge, put the changes here.
|
||||
|
@@ -39,20 +39,21 @@ Generate files to upload
|
||||
|
||||
- export TZ=UTC
|
||||
- cd i2p.i2p.foobar
|
||||
- copy debian-alt/(series)/changelog to debian/
|
||||
- edit debian/changelog to add the release at the top
|
||||
* version MUST be 0.9.XX-1ubuntu1
|
||||
next version for fixes would be 0.9.XX-2ubunutu1
|
||||
* series MUST be trusty
|
||||
* series MUST be trusty (or precise)
|
||||
* name and email MUST EXACTLY match what's in your GPG keyring
|
||||
or the signing will fail.
|
||||
(or add -kkeyid argument to debuild, which you must do
|
||||
if you want to sign with a subkey)
|
||||
run gpg -K to list your private keys
|
||||
- edit debian/control to uncomment libservice-wrapper-java line
|
||||
- ant debian-release-tarball
|
||||
this will make a directory ../i2p-0.9.XX-0-xxxxxxxx/
|
||||
and a tarball ../i2p_0.9.XX.orig.tar.bz2
|
||||
- cp debian/changelog ../i2p-0.9.XX-0-xxxxxxxx/debian/
|
||||
- cp debian-alt/(series)/(other files besides changelog) to ../i2p-0.9.XX-0-xxxxxxxx/debian/
|
||||
- cd ../i2p-0.9.XX-0-xxxxxxxx/
|
||||
- Build the *1ubuntu1* files:
|
||||
If you have NOT done a successful dput for this release yet:
|
||||
|
@@ -4,7 +4,7 @@ Section: net
|
||||
Standards-Version: 3.9.6
|
||||
Priority: optional
|
||||
Bugs: mailto:zzz@i2pmail.org
|
||||
Homepage: https://geti2p.net
|
||||
Homepage: https://geti2p.net/
|
||||
Build-Depends: debhelper (>= 7.0.50~)
|
||||
,ant (>= 1.8)
|
||||
,ant-optional
|
||||
@@ -13,9 +13,11 @@ Build-Depends: debhelper (>= 7.0.50~)
|
||||
# Ant requires java 6 tools.jar:
|
||||
# Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk-amd64/lib/tools.jar
|
||||
,openjdk-6-jdk
|
||||
,glassfish-javaee
|
||||
,dh-apparmor
|
||||
,gettext
|
||||
,libgmp3-dev
|
||||
,libgetopt-java
|
||||
,libgmp-dev (>= 2:5.0.2)
|
||||
,libservice-wrapper-java
|
||||
,hardening-wrapper
|
||||
,po-debconf
|
||||
@@ -45,7 +47,7 @@ Architecture: any
|
||||
Section: java
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends}, i2p-router
|
||||
Homepage: http://www.i2p2.de/jbigi
|
||||
Homepage: https://geti2p.net/
|
||||
Description: Java Big Integer library
|
||||
This Package contains the libjbigi JNI library (and on x86 platforms, jcpuid).
|
||||
.
|
||||
@@ -72,7 +74,12 @@ Architecture: all
|
||||
Section: net
|
||||
Priority: optional
|
||||
Depends: ${misc:Depends}, ${java:Depends}, ${shlibs:Depends},
|
||||
openjdk-8-jre-headless | openjdk-7-jre-headless | java8-runtime-headless | java7-runtime-headless, libecj-java
|
||||
openjdk-8-jre-headless | openjdk-7-jre-headless | java8-runtime-headless | java7-runtime-headless,
|
||||
libecj-java,
|
||||
geoip-database,
|
||||
gettext-base,
|
||||
libgetopt-java,
|
||||
glassfish-javaee
|
||||
Replaces: i2p ( << 0.8.6-5)
|
||||
Breaks: i2p (<< 0.8.6-5)
|
||||
Recommends: libjbigi-jni, ttf-dejavu
|
||||
|
72
debian-alt/precise/i2p-router.install
Normal file
72
debian-alt/precise/i2p-router.install
Normal file
@@ -0,0 +1,72 @@
|
||||
# history.txt is installed to /usr/share/i2p because
|
||||
# it's shown in the router console at http://127.0.0.1:7657
|
||||
# (this is also why I don't use dh_installchangelogs -k for it)
|
||||
history.txt usr/share/i2p
|
||||
|
||||
pkg-temp/blocklist.txt usr/share/i2p
|
||||
pkg-temp/certificates usr/share/i2p
|
||||
pkg-temp/clients.config usr/share/i2p
|
||||
pkg-temp/docs usr/share/i2p/
|
||||
pkg-temp/eepget usr/bin
|
||||
pkg-temp/eepsite usr/share/i2p
|
||||
pkg-temp/geoip usr/share/i2p
|
||||
pkg-temp/hosts.txt usr/share/i2p
|
||||
pkg-temp/i2prouter-nowrapper usr/bin
|
||||
pkg-temp/i2psnark.config usr/share/i2p
|
||||
pkg-temp/i2ptunnel.config usr/share/i2p
|
||||
pkg-temp/router.config usr/share/i2p
|
||||
pkg-temp/systray.config usr/share/i2p
|
||||
pkg-temp/webapps usr/share/i2p
|
||||
|
||||
|
||||
pkg-temp/lib/BOB.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/desktopgui.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/i2p.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/i2psnark.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/i2ptunnel.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-i2p.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jrobin.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/mstreaming.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/routerconsole.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/router.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/sam.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/streaming.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/systray.jar usr/share/i2p/lib
|
||||
|
||||
|
||||
# uncomment if not building with libjetty8-java
|
||||
# ubuntu: in trusty vivid wily xenial
|
||||
# debian: in wheezy jessie stretch sid
|
||||
pkg-temp/lib/jetty-continuation.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-deploy.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-http.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-io.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-rewrite-handler.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-security.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-servlet.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-servlets.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-start.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-util.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-webapp.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jetty-xml.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/org.mortbay.jetty.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/org.mortbay.jmx.jar usr/share/i2p/lib
|
||||
# following two are from libservlet3.0-java which is a dependency of libjetty8-java
|
||||
pkg-temp/lib/javax.servlet.jar usr/share/i2p/lib
|
||||
|
||||
|
||||
# uncomment if not building with either libtomcat6-java or libtomcat7-java
|
||||
pkg-temp/lib/commons-el.jar usr/share/i2p/lib
|
||||
# legacy name, contains only tomcat-juli, not commons-logging
|
||||
pkg-temp/lib/commons-logging.jar usr/share/i2p/lib
|
||||
pkg-temp/lib/jasper-runtime.jar usr/share/i2p/lib
|
||||
|
||||
|
||||
# uncomment if not building with either glassfish-javaee or libjakarta-taglibs-standard-java
|
||||
# ubuntu and debian: everywhere
|
||||
#pkg-temp/lib/jstl.jar usr/share/i2p/lib
|
||||
|
||||
|
||||
# uncomment if not building with either glassfish-javaee or libjstl1.1-java
|
||||
# ubuntu and debian: everywhere
|
||||
#pkg-temp/lib/standard.jar usr/share/i2p/lib
|
100
debian-alt/precise/i2p-router.links
Normal file
100
debian-alt/precise/i2p-router.links
Normal file
@@ -0,0 +1,100 @@
|
||||
usr/share/common-licenses/GPL-2 usr/share/doc/i2p-router/licenses/LICENSE-GPLv2.txt
|
||||
usr/share/common-licenses/LGPL-2.1 usr/share/doc/i2p-router/licenses/LICENSE-LGPLv2.1.txt
|
||||
usr/share/common-licenses/Apache-2.0 usr/share/doc/i2p-router/licenses/LICENSE-Apache2.0.txt
|
||||
usr/share/common-licenses/BSD usr/share/doc/i2p-router/licenses/LICENSE-BSD.txt
|
||||
|
||||
usr/share/java/eclipse-ecj.jar usr/share/i2p/lib/eclipse-ecj.jar
|
||||
|
||||
|
||||
# comment out if not building with libjetty8-java
|
||||
# ubuntu: in trusty vivid wily xenial
|
||||
# debian: in wheezy jessie stretch sid
|
||||
#usr/share/java/jetty8-continuation.jar usr/share/i2p/lib/jetty-continuation.jar
|
||||
#usr/share/java/jetty8-deploy.jar usr/share/i2p/lib/jetty-deploy.jar
|
||||
#usr/share/java/jetty8-http.jar usr/share/i2p/lib/jetty-http.jar
|
||||
#usr/share/java/jetty8-io.jar usr/share/i2p/lib/jetty-io.jar
|
||||
# legacy name in lib/
|
||||
#usr/share/java/jetty8-rewrite.jar usr/share/i2p/lib/jetty-rewrite-handler.jar
|
||||
#usr/share/java/jetty8-security.jar usr/share/i2p/lib/jetty-security.jar
|
||||
#usr/share/java/jetty8-servlet.jar usr/share/i2p/lib/jetty-servlet.jar
|
||||
#usr/share/java/jetty8-servlets.jar usr/share/i2p/lib/jetty-servlets.jar
|
||||
#usr/share/java/jetty8-start.jar usr/share/i2p/lib/jetty-start.jar
|
||||
#usr/share/java/jetty8-util.jar usr/share/i2p/lib/jetty-util.jar
|
||||
#usr/share/java/jetty8-webapp.jar usr/share/i2p/lib/jetty-webapp.jar
|
||||
#usr/share/java/jetty8-xml.jar usr/share/i2p/lib/jetty-xml.jar
|
||||
# legacy name in lib/
|
||||
#usr/share/java/jetty8-server.jar usr/share/i2p/lib/org.mortbay.jetty.jar
|
||||
# legacy name in lib/
|
||||
#usr/share/java/jetty8-jmx.jar usr/share/i2p/lib/org.mortbay.jmx.jar
|
||||
# following two are from libservlet3.0-java which is a dependency of libjetty8-java
|
||||
# legacy name in lib/
|
||||
#usr/share/java/servlet-api-3.0.jar usr/share/i2p/lib/javax.servlet.jar
|
||||
# combined into javax.servlet.jar in non-package builds
|
||||
#usr/share/java/jsp-api-2.2.jar usr/share/i2p/lib/jsp-api.jar
|
||||
|
||||
|
||||
# comment out if not building with libtomcat6-java
|
||||
# ubuntu: only in precise trusty vivid
|
||||
# debian: only in wheezy
|
||||
# legacy name, contains only tomcat-juli, not commons-logging
|
||||
#usr/share/java/tomcat-juli.jar usr/share/i2p/lib/commons-logging.jar
|
||||
#usr/share/java/jasper.jar usr/share/i2p/lib/jasper-runtime.jar
|
||||
# combined into jasper-runtime.jar in non-package builds
|
||||
#usr/share/java/tomcat-coyote.jar usr/share/i2p/lib/tomcat-coyote.jar
|
||||
# combined into commons-el.jar in non-package builds
|
||||
#usr/share/java/jasper-el.jar usr/share/i2p/lib/jasper-el.jar
|
||||
# following is from libservlet2.5-java which is a dependency of libtomcat6-java
|
||||
# legacy name in lib/
|
||||
#usr/share/java/el-api-2.1.jar usr/share/i2p/lib/commons-el.jar
|
||||
|
||||
|
||||
# comment out if not building with libtomcat7-java
|
||||
# ubuntu: only in precise trusty vivid
|
||||
# debian: only in wheezy
|
||||
# legacy name, contains only tomcat-juli, not commons-logging
|
||||
#usr/share/java/tomcat-juli.jar usr/share/i2p/lib/commons-logging.jar
|
||||
#usr/share/java/tomcat-jasper.jar usr/share/i2p/lib/jasper-runtime.jar
|
||||
# combined into jasper-runtime.jar in non-package builds
|
||||
#usr/share/java/tomcat-coyote.jar usr/share/i2p/lib/tomcat-coyote.jar
|
||||
# tomcat 7 only
|
||||
#usr/share/java/tomcat-api.jar usr/share/i2p/lib/tomcat-api.jar
|
||||
#usr/share/java/tomcat-util.jar usr/share/i2p/lib/tomcat-util.jar
|
||||
# combined into commons-el.jar in non-package builds
|
||||
#usr/share/java/tomcat-jasper-el.jar usr/share/i2p/lib/jasper-el.jar
|
||||
# following is from libservlet3.0-java which is a dependency of libtomcat7-java
|
||||
# legacy name in lib/
|
||||
#usr/share/java/el-api-2.2.jar usr/share/i2p/lib/commons-el.jar
|
||||
|
||||
|
||||
# comment out if not building with glassfish-javaee
|
||||
usr/share/java/glassfish-javaee.jar usr/share/i2p/lib/jstl.jar
|
||||
usr/share/java/glassfish-appserv-jstl.jar usr/share/i2p/lib/standard.jar
|
||||
|
||||
|
||||
# comment out if not building with libjakarta-taglibs-standard-java
|
||||
# ubuntu and debian: everywhere
|
||||
#usr/share/java/standard.jar usr/share/i2p/lib/standard.jar
|
||||
|
||||
|
||||
# comment out if not building with libjstl1.1-java
|
||||
# ubuntu and debian: everywhere
|
||||
#usr/share/java/jstl1.1.jar usr/share/i2p/lib/jstl.jar
|
||||
|
||||
|
||||
# comment out if not building with gettext-base
|
||||
# ubuntu and debian: everywhere
|
||||
usr/share/java/libintl.jar usr/share/i2p/lib/libintl.jar
|
||||
|
||||
|
||||
# comment out if not building with libgetopt-java
|
||||
# ubuntu and debian: everywhere
|
||||
usr/share/java/gnu-getopt.jar usr/share/i2p/lib/gnu-getopt.jar
|
||||
|
||||
|
||||
# comment out if not building with libhttpclient-java and libhttpcore-java
|
||||
# 2 MB of dependencies vs. 20 KB of copied source
|
||||
# Requires 4.4 or higher.
|
||||
# Debian: Not in wheezy/jessie
|
||||
# Ubuntu: Only in wily and later
|
||||
#usr/share/java/httpclient.jar usr/share/i2p/lib/httpclient.jar
|
||||
#usr/share/java/httpcore.jar usr/share/i2p/lib/httpcore.jar
|
@@ -34,6 +34,9 @@ export DEB_BUILD_HARDENING=1
|
||||
#export EXTRAPREFIX := deb
|
||||
export JAVA_HOME I2P
|
||||
export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/^Version:/{print $$2}' |sed 's/.*-\([.0-9A-Za-z~+]\{1,\}\)$$/\1/')
|
||||
# required for jbigi/jcpuid build
|
||||
export BITS := $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
|
||||
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
||||
|
||||
%:
|
||||
dh $@
|
||||
@@ -62,8 +65,6 @@ binary-indep: build-indep
|
||||
build-indep:
|
||||
dh_prep
|
||||
mkdir -p $(CURDIR)/installer/lib/wrapper/all
|
||||
mkdir -p $(CURDIR)/installer/lib/launch4j/lib/
|
||||
ln -sf /usr/share/java/commons-logging.jar $(CURDIR)/installer/lib/launch4j/lib/commons-logging.jar
|
||||
ln -sf /usr/share/java/wrapper.jar $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
||||
if [ ! -e $(CURDIR)/debian/routerversion.java.bak ]; then \
|
||||
cp $(ROUTERVERSION) $(CURDIR)/debian/routerversion.java.bak; \
|
||||
@@ -74,11 +75,92 @@ ifeq "$(findstring deb,$(shell grep 'deb' $(ROUTERVERSION)))" ""
|
||||
else
|
||||
@echo "Already found deb in version, not doing anything"
|
||||
endif
|
||||
# build options
|
||||
@# build options
|
||||
@/bin/echo -e "javac.version=1.7" > $(CURDIR)/override.properties
|
||||
@/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
||||
@/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
||||
@/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-geoip-database=true" >> $(CURDIR)/override.properties
|
||||
|
||||
@# ubuntu: not in precise
|
||||
@# debian: in wheezy jessie stretch sid
|
||||
@#/bin/echo -e "with-libjetty8-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
@#ln -sf /usr/share/java/jetty8-continuation.jar $(CURDIR)/apps/jetty/jettylib/jetty-continuation.jar
|
||||
@#ln -sf /usr/share/java/jetty8-deploy.jar $(CURDIR)/apps/jetty/jettylib/jetty-deploy.jar
|
||||
@#ln -sf /usr/share/java/jetty8-http.jar $(CURDIR)/apps/jetty/jettylib/jetty-http.jar
|
||||
@#ln -sf /usr/share/java/jetty8-io.jar $(CURDIR)/apps/jetty/jettylib/jetty-io.jar
|
||||
@#ln -sf /usr/share/java/jetty8-rewrite.jar $(CURDIR)/apps/jetty/jettylib/jetty-rewrite-handler.jar
|
||||
@#ln -sf /usr/share/java/jetty8-security.jar $(CURDIR)/apps/jetty/jettylib/jetty-security.jar
|
||||
@#ln -sf /usr/share/java/jetty8-servlet.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlet.jar
|
||||
@#ln -sf /usr/share/java/jetty8-servlets.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlets.jar
|
||||
@#ln -sf /usr/share/java/jetty8-start.jar $(CURDIR)/apps/jetty/jettylib/jetty-start.jar
|
||||
@#ln -sf /usr/share/java/jetty8-util.jar $(CURDIR)/apps/jetty/jettylib/jetty-util.jar
|
||||
@#ln -sf /usr/share/java/jetty8-webapp.jar $(CURDIR)/apps/jetty/jettylib/jetty-webapp.jar
|
||||
@#ln -sf /usr/share/java/jetty8-xml.jar $(CURDIR)/apps/jetty/jettylib/jetty-xml.jar
|
||||
@#ln -sf /usr/share/java/jetty8-server.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jetty.jar
|
||||
@#ln -sf /usr/share/java/jetty8-jmx.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jmx.jar
|
||||
@# following two are from libservlet3.0-java which is a dependency of libjetty8-java
|
||||
@#ln -sf /usr/share/java/servlet-api-3.0.jar $(CURDIR)/apps/jetty/jettylib/javax.servlet.jar
|
||||
@#ln -sf /usr/share/java/jsp-api-2.2.jar $(CURDIR)/apps/jetty/jettylib/jsp-api.jar
|
||||
|
||||
@# ubuntu: only in precise trusty vivid
|
||||
@# debian: only in wheezy
|
||||
@#@/bin/echo -e "with-libtomcat6-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
@#ln -sf /usr/share/java/jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
|
||||
@#ln -sf /usr/share/java/tomcat-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
|
||||
@#ln -sf /usr/share/java/tomcat-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
|
||||
@#ln -sf /usr/share/java/jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
|
||||
@# following is from libservlet2.5-java which is a dependency of libtomcat6-java
|
||||
@#ln -sf /usr/share/java/el-api-2.1.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libtomcat7-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
@#ln -sf /usr/share/java/tomcat-jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
|
||||
@#ln -sf /usr/share/java/tomcat-api.jar $(CURDIR)/apps/jetty/jettylib/tomcat-api.jar
|
||||
@#ln -sf /usr/share/java/tomcat-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
|
||||
@#ln -sf /usr/share/java/tomcat-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
|
||||
@#ln -sf /usr/share/java/tomcat-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
|
||||
@#ln -sf /usr/share/java/tomcat-jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
|
||||
@# following is from libservlet3.0-java which is a dependency of libtomcat7-java
|
||||
@#ln -sf /usr/share/java/el-api-2.2.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
|
||||
ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
||||
ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties
|
||||
@#ln -sf /usr/share/java/standard.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libjstl1.1-java=true" >> $(CURDIR)/override.properties
|
||||
@#ln -sf /usr/share/java/jstl1.1.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-gettext-base=true" >> $(CURDIR)/override.properties
|
||||
@mkdir -p $(CURDIR)/core/java/build
|
||||
ln -sf /usr/share/java/libintl.jar $(CURDIR)/core/java/build/libintl.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-libgetopt-java=true" >> $(CURDIR)/override.properties
|
||||
@mkdir -p $(CURDIR)/core/java/build
|
||||
ln -sf /usr/share/java/gnu-getopt.jar $(CURDIR)/core/java/build/gnu-getopt.jar
|
||||
|
||||
@# 2 MB of dependencies vs. 20 KB of copied source
|
||||
@# Requires 4.4 or higher.
|
||||
@# Debian: Not in wheezy/jessie
|
||||
@# Ubuntu: Only in wily and later
|
||||
@#/bin/echo -e "with-libhttpclient-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/core/java/build
|
||||
@#ln -sf /usr/share/java/httpclient.jar $(CURDIR)/core/java/build/httpclient.jar
|
||||
@#ln -sf /usr/share/java/httpcore.jar $(CURDIR)/core/java/build/httpcore.jar
|
||||
|
||||
TZ=UTC JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 ant preppkg-unix javadoc
|
||||
echo router.updateDisabled=true > $(I2P)/router.config
|
||||
mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper
|
||||
|
213
debian-alt/trusty/rules
Executable file
213
debian-alt/trusty/rules
Executable file
@@ -0,0 +1,213 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Quoting Policy version 3.9.2.0, 2011-04-07 section 4.9:
|
||||
|
||||
# /start quote
|
||||
# For some packages, notably ones where the same source tree is compiled in
|
||||
# different ways to produce two binary packages, the build target does not make
|
||||
# much sense. For these packages it is good enough to provide two (or more)
|
||||
# targets (build-a and build-b or whatever) for each of the ways of building the
|
||||
# package, and a build target that does nothing. The binary target will have to
|
||||
# build the package in each of the possible ways and make the binary package out
|
||||
# of each.
|
||||
# ...
|
||||
# When a package has a configuration and build routine which takes a long time,
|
||||
# or when the makefiles are poorly designed, or when build needs to run clean
|
||||
# first, it is a good idea to touch build when the build process is complete.
|
||||
# This will ensure that if debian/rules build is run again it will not rebuild
|
||||
# the whole program.
|
||||
# /end quote
|
||||
|
||||
# Since that fits building I2P very well, we override the build target.
|
||||
#
|
||||
|
||||
build:
|
||||
@echo 'The build target is disabled. Use the appropriate binary target.'
|
||||
|
||||
JAVA_HOME=/usr/lib/jvm/default-java
|
||||
I2P=$(CURDIR)/pkg-temp
|
||||
ROUTERVERSION=$(CURDIR)/router/java/src/net/i2p/router/RouterVersion.java
|
||||
export DEB_BUILD_HARDENING=1
|
||||
|
||||
# I2P's version will be displayed in the router console as "$I2PVERSION-$EXTRAPREFIX$DEBIANVERSION", eg. 0.8.12-0-deb1
|
||||
#export EXTRAPREFIX := deb
|
||||
export JAVA_HOME I2P
|
||||
export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/^Version:/{print $$2}' |sed 's/.*-\([.0-9A-Za-z~+]\{1,\}\)$$/\1/')
|
||||
# required for jbigi/jcpuid build
|
||||
export BITS := $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
|
||||
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
||||
|
||||
%:
|
||||
dh $@ --with systemd
|
||||
|
||||
clean: createcopyright
|
||||
|
||||
override_dh_auto_clean:
|
||||
-[ -r $(CURDIR)/debian/routerversion.java.bak ] && mv -f $(CURDIR)/debian/routerversion.java.bak $(ROUTERVERSION)
|
||||
dh_auto_clean
|
||||
ant distclean
|
||||
find $(CURDIR)/core \( -name '*\.so' -o -name '*\.o' \) -exec rm -f {} \;
|
||||
rm -rf $(CURDIR)/core/c/jcpuid/lib/
|
||||
rm -f $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
||||
rm -rf $(CURDIR)/debian/python-i2p
|
||||
rm -f $(CURDIR)/override.properties
|
||||
debconf-updatepo
|
||||
|
||||
override_dh_auto_build:
|
||||
|
||||
override_dh_systemd_enable:
|
||||
# We purposely do not set I2P to start at boot.
|
||||
# This matches the behavior of the initscript
|
||||
# and the setting RUN_DAEMON=false in /etc/default/i2p
|
||||
|
||||
binary-indep: build-indep
|
||||
build-indep:
|
||||
dh_prep
|
||||
mkdir -p $(CURDIR)/installer/lib/wrapper/all
|
||||
ln -sf /usr/share/java/wrapper.jar $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
||||
if [ ! -e $(CURDIR)/debian/routerversion.java.bak ]; then \
|
||||
cp $(ROUTERVERSION) $(CURDIR)/debian/routerversion.java.bak; \
|
||||
fi
|
||||
ifeq "$(findstring deb,$(shell grep 'deb' $(ROUTERVERSION)))" ""
|
||||
sed -e "s/\(.*EXTRA\ =\ \)[^ ]*\"\(.*\)\"/\1\"\2-$$EXTRAPREFIX$$DEBIANVERSION\"/" < $(ROUTERVERSION) > $(ROUTERVERSION).tmp
|
||||
mv -f $(ROUTERVERSION).tmp $(ROUTERVERSION)
|
||||
else
|
||||
@echo "Already found deb in version, not doing anything"
|
||||
endif
|
||||
@# build options
|
||||
@/bin/echo -e "javac.version=1.7" > $(CURDIR)/override.properties
|
||||
@/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
||||
@/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
||||
@/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-geoip-database=true" >> $(CURDIR)/override.properties
|
||||
|
||||
@# ubuntu: not in precise
|
||||
@# debian: in wheezy jessie stretch sid
|
||||
@/bin/echo -e "with-libjetty8-java=true" >> $(CURDIR)/override.properties
|
||||
mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
ln -sf /usr/share/java/jetty8-continuation.jar $(CURDIR)/apps/jetty/jettylib/jetty-continuation.jar
|
||||
ln -sf /usr/share/java/jetty8-deploy.jar $(CURDIR)/apps/jetty/jettylib/jetty-deploy.jar
|
||||
ln -sf /usr/share/java/jetty8-http.jar $(CURDIR)/apps/jetty/jettylib/jetty-http.jar
|
||||
ln -sf /usr/share/java/jetty8-io.jar $(CURDIR)/apps/jetty/jettylib/jetty-io.jar
|
||||
ln -sf /usr/share/java/jetty8-rewrite.jar $(CURDIR)/apps/jetty/jettylib/jetty-rewrite-handler.jar
|
||||
ln -sf /usr/share/java/jetty8-security.jar $(CURDIR)/apps/jetty/jettylib/jetty-security.jar
|
||||
ln -sf /usr/share/java/jetty8-servlet.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlet.jar
|
||||
ln -sf /usr/share/java/jetty8-servlets.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlets.jar
|
||||
ln -sf /usr/share/java/jetty8-start.jar $(CURDIR)/apps/jetty/jettylib/jetty-start.jar
|
||||
ln -sf /usr/share/java/jetty8-util.jar $(CURDIR)/apps/jetty/jettylib/jetty-util.jar
|
||||
ln -sf /usr/share/java/jetty8-webapp.jar $(CURDIR)/apps/jetty/jettylib/jetty-webapp.jar
|
||||
ln -sf /usr/share/java/jetty8-xml.jar $(CURDIR)/apps/jetty/jettylib/jetty-xml.jar
|
||||
ln -sf /usr/share/java/jetty8-server.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jetty.jar
|
||||
ln -sf /usr/share/java/jetty8-jmx.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jmx.jar
|
||||
@# following two are from libservlet3.0-java which is a dependency of libjetty8-java
|
||||
ln -sf /usr/share/java/servlet-api-3.0.jar $(CURDIR)/apps/jetty/jettylib/javax.servlet.jar
|
||||
ln -sf /usr/share/java/jsp-api-2.2.jar $(CURDIR)/apps/jetty/jettylib/jsp-api.jar
|
||||
|
||||
@# ubuntu: only in precise trusty vivid
|
||||
@# debian: only in wheezy
|
||||
@#@/bin/echo -e "with-libtomcat6-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
@#ln -sf /usr/share/java/jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
|
||||
@#ln -sf /usr/share/java/tomcat-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
|
||||
@#ln -sf /usr/share/java/tomcat-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
|
||||
@#ln -sf /usr/share/java/jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
|
||||
@# following is from libservlet2.5-java which is a dependency of libtomcat6-java
|
||||
@#ln -sf /usr/share/java/el-api-2.1.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libtomcat7-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/apps/jetty/jettylib
|
||||
@#ln -sf /usr/share/java/tomcat-jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
|
||||
@#ln -sf /usr/share/java/tomcat-api.jar $(CURDIR)/apps/jetty/jettylib/tomcat-api.jar
|
||||
@#ln -sf /usr/share/java/tomcat-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
|
||||
@#ln -sf /usr/share/java/tomcat-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
|
||||
@#ln -sf /usr/share/java/tomcat-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
|
||||
@#ln -sf /usr/share/java/tomcat-jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
|
||||
@# following is from libservlet3.0-java which is a dependency of libtomcat7-java
|
||||
@#ln -sf /usr/share/java/el-api-2.2.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
|
||||
ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
||||
ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties
|
||||
@#ln -sf /usr/share/java/standard.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@#/bin/echo -e "with-libjstl1.1-java=true" >> $(CURDIR)/override.properties
|
||||
@#ln -sf /usr/share/java/jstl1.1.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-gettext-base=true" >> $(CURDIR)/override.properties
|
||||
@mkdir -p $(CURDIR)/core/java/build
|
||||
ln -sf /usr/share/java/libintl.jar $(CURDIR)/core/java/build/libintl.jar
|
||||
|
||||
@# debian and ubuntu: everywhere
|
||||
@/bin/echo -e "with-libgetopt-java=true" >> $(CURDIR)/override.properties
|
||||
@mkdir -p $(CURDIR)/core/java/build
|
||||
ln -sf /usr/share/java/gnu-getopt.jar $(CURDIR)/core/java/build/gnu-getopt.jar
|
||||
|
||||
@# 2 MB of dependencies vs. 20 KB of copied source
|
||||
@# Requires 4.4 or higher.
|
||||
@# Debian: Not in wheezy/jessie
|
||||
@# Ubuntu: Only in wily and later
|
||||
@#/bin/echo -e "with-libhttpclient-java=true" >> $(CURDIR)/override.properties
|
||||
@#mkdir -p $(CURDIR)/core/java/build
|
||||
@#ln -sf /usr/share/java/httpclient.jar $(CURDIR)/core/java/build/httpclient.jar
|
||||
@#ln -sf /usr/share/java/httpcore.jar $(CURDIR)/core/java/build/httpcore.jar
|
||||
|
||||
TZ=UTC JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 ant preppkg-unix javadoc
|
||||
echo router.updateDisabled=true > $(I2P)/router.config
|
||||
mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper
|
||||
|
||||
binary-arch: build-arch
|
||||
build-arch:
|
||||
# build jbigi
|
||||
cd $(CURDIR)/core/c/jbigi && ./build_jbigi.sh dynamic
|
||||
# build jcpuid
|
||||
cd $(CURDIR)/core/c/jcpuid && ./build.sh
|
||||
|
||||
binary: binary-arch binary-indep
|
||||
|
||||
createcopyright:
|
||||
@echo " *** Creating debian/copyright*** "
|
||||
@rm -f $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "This package was Debianized by kytv <killyourtv@i2pmail.org>" >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "Sun, 23 Jan 2011 20:26:51 +0000" >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "\nIt was downloaded from https://geti2p.net" >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "\nI2P is tracked upstream using the Monotone VCS" >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "Complete information on fetching the source with monotone can be found" >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "at https://geti2p.net/newdevelopers#getting-the-i2p-code\n\n\n" >> $(CURDIR)/debian/copyright
|
||||
@/bin/cat $(CURDIR)/LICENSE.txt >> $(CURDIR)/debian/copyright
|
||||
@/bin/echo -e "\n\n The debian packaging has been released into the public domain." >> $(CURDIR)/debian/copyright
|
||||
|
||||
override_dh_compress:
|
||||
dh_compress -X.xsl -X.xml
|
||||
|
||||
override_dh_install:
|
||||
dh_install --list-missing
|
||||
dh_apparmor --profile-name=system_i2p -pi2p
|
||||
dh_apparmor --profile-name=usr.bin.i2prouter -pi2p
|
||||
|
||||
override_dh_installchangelogs:
|
||||
dh_installchangelogs history.txt
|
||||
|
||||
override_dh_installdocs:
|
||||
dh_installdocs -pi2p -plibjbigi-jni --link-doc=i2p-router
|
||||
dh_installdocs --remaining-packages
|
||||
|
||||
override_dh_dhlibdeps:
|
||||
dh_shlibdeps -llibjbigi-jni debian/libjbigi-jni/usr/lib/jni/*.so
|
||||
|
||||
#override_dh_installinit:
|
||||
# dh_installinit -r
|
||||
|
||||
override_dh_builddeb:
|
||||
dh_builddeb -- -Zxz
|
||||
|
||||
get-orig-source:
|
||||
uscan --verbose --rename --destdir $(CURDIR)/.. --watchfile debian/watch --force-download
|
6
debian/patches/0001-path-substitution.patch
vendored
6
debian/patches/0001-path-substitution.patch
vendored
@@ -371,16 +371,16 @@ Debian wrapper.config to try to prevent confusion.
|
||||
@@ -185,7 +185,7 @@
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1864
|
||||
#: ../i2prouter:1875
|
||||
-msgid "Please edit i2prouter and set the variable RUN_AS_USER"
|
||||
+msgid "Please edit /etc/default/i2p and set the variable RUN_AS_USER"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1869
|
||||
#: ../i2prouter:1880
|
||||
@@ -193,5 +193,5 @@
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1872
|
||||
#: ../i2prouter:1883
|
||||
-msgid "To run as root anyway, edit i2prouter and set ALLOW_ROOT=true."
|
||||
+msgid "To run as root anyway, edit /etc/default/i2p and set ALLOW_ROOT=true."
|
||||
msgstr ""
|
||||
|
2
debian/rules
vendored
2
debian/rules
vendored
@@ -33,6 +33,8 @@ export DEB_BUILD_HARDENING=1
|
||||
#export EXTRAPREFIX := deb
|
||||
export JAVA_HOME I2P
|
||||
export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/^Version:/{print $$2}' |sed 's/.*-\([.0-9A-Za-z~+]\{1,\}\)$$/\1/')
|
||||
# required for jbigi/jcpuid build
|
||||
export BITS := $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
|
||||
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
||||
|
||||
%:
|
||||
|
@@ -1,3 +1,10 @@
|
||||
2016-05-25 zzz
|
||||
* DesktopGui: Add monochrome icons for Windows and Mac
|
||||
* Reseed:
|
||||
- Require two sources minimum (ticket #1794)
|
||||
- Update list of sources requiring SNI
|
||||
* Translations: Update English po files
|
||||
|
||||
2016-05-20 zzz
|
||||
* DesktopGui:
|
||||
- Fix systray menu redraw on Mac;
|
||||
|
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P startup script\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 01:16+0000\n"
|
||||
"POT-Creation-Date: 2016-05-25 12:29+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 23:34+0000\n"
|
||||
"Last-Translator: kytv <killyourtv@mail.i2p>\n"
|
||||
"Language-Team: English \n"
|
||||
@@ -18,180 +18,180 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../i2prouter:221
|
||||
#: ../i2prouter:224
|
||||
msgid "Failed to load the wrapper"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:978 ../i2prouter:1006 ../i2prouter:1080 ../i2prouter:1108
|
||||
#: ../i2prouter:1129
|
||||
#: ../i2prouter:989 ../i2prouter:1017 ../i2prouter:1091 ../i2prouter:1119
|
||||
#: ../i2prouter:1140
|
||||
#, sh-format
|
||||
msgid "$APP_LONG_NAME is already running."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:989
|
||||
#: ../i2prouter:1000
|
||||
#, sh-format
|
||||
msgid "Running $APP_LONG_NAME"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1013
|
||||
#: ../i2prouter:1024
|
||||
#, sh-format
|
||||
msgid "Waiting for $APP_LONG_NAME"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1060
|
||||
#: ../i2prouter:1071
|
||||
#, sh-format
|
||||
msgid "WARNING: $APP_LONG_NAME may have failed to start."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1074 ../i2prouter:1102 ../i2prouter:1308 ../i2prouter:1597
|
||||
#: ../i2prouter:1085 ../i2prouter:1113 ../i2prouter:1319 ../i2prouter:1608
|
||||
msgid "Must be root to perform this action."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1118
|
||||
#: ../i2prouter:1129
|
||||
#, sh-format
|
||||
msgid "Starting $APP_LONG_NAME"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1140
|
||||
#: ../i2prouter:1151
|
||||
#, sh-format
|
||||
msgid "Stopping $APP_LONG_NAME"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1144 ../i2prouter:1212 ../i2prouter:1765
|
||||
#: ../i2prouter:1155 ../i2prouter:1223 ../i2prouter:1776
|
||||
#, sh-format
|
||||
msgid "$APP_LONG_NAME was not running."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1157 ../i2prouter:1165 ../i2prouter:1227 ../i2prouter:1235
|
||||
#: ../i2prouter:1168 ../i2prouter:1176 ../i2prouter:1238 ../i2prouter:1246
|
||||
#, sh-format
|
||||
msgid "Unable to stop $APP_LONG_NAME."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1183
|
||||
#: ../i2prouter:1194
|
||||
#, sh-format
|
||||
msgid "Waiting for $APP_LONG_NAME to exit"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1197
|
||||
#: ../i2prouter:1208
|
||||
#, sh-format
|
||||
msgid "Failed to stop $APP_LONG_NAME."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1200
|
||||
#: ../i2prouter:1211
|
||||
#, sh-format
|
||||
msgid "Stopped $APP_LONG_NAME."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1208
|
||||
#: ../i2prouter:1219
|
||||
#, sh-format
|
||||
msgid "Stopping $APP_LONG_NAME gracefully"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1254
|
||||
#: ../i2prouter:1265
|
||||
#, sh-format
|
||||
msgid "$APP_LONG_NAME is not running."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1259
|
||||
#: ../i2prouter:1270
|
||||
#, sh-format
|
||||
msgid "$APP_LONG_NAME is running: PID:$pid"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1262
|
||||
#: ../i2prouter:1273
|
||||
#, sh-format
|
||||
msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1315 ../i2prouter:1327 ../i2prouter:1346 ../i2prouter:1363
|
||||
#: ../i2prouter:1430 ../i2prouter:1450 ../i2prouter:1464 ../i2prouter:1478
|
||||
#: ../i2prouter:1506 ../i2prouter:1544 ../i2prouter:1579
|
||||
#: ../i2prouter:1326 ../i2prouter:1338 ../i2prouter:1357 ../i2prouter:1374
|
||||
#: ../i2prouter:1441 ../i2prouter:1461 ../i2prouter:1475 ../i2prouter:1489
|
||||
#: ../i2prouter:1517 ../i2prouter:1555 ../i2prouter:1590
|
||||
#, sh-format
|
||||
msgid "The $APP_LONG_NAME daemon is already installed."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1318 ../i2prouter:1333 ../i2prouter:1435 ../i2prouter:1467
|
||||
#: ../i2prouter:1481 ../i2prouter:1495 ../i2prouter:1509 ../i2prouter:1547
|
||||
#: ../i2prouter:1582
|
||||
#: ../i2prouter:1329 ../i2prouter:1344 ../i2prouter:1446 ../i2prouter:1478
|
||||
#: ../i2prouter:1492 ../i2prouter:1506 ../i2prouter:1520 ../i2prouter:1558
|
||||
#: ../i2prouter:1593
|
||||
#, sh-format
|
||||
msgid "Installing the $APP_LONG_NAME daemon"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1589
|
||||
#: ../i2prouter:1600
|
||||
#, sh-format
|
||||
msgid "Install not currently supported for $DIST_OS"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1605 ../i2prouter:1618 ../i2prouter:1632 ../i2prouter:1641
|
||||
#: ../i2prouter:1651 ../i2prouter:1675 ../i2prouter:1688 ../i2prouter:1700
|
||||
#: ../i2prouter:1718 ../i2prouter:1731 ../i2prouter:1745
|
||||
#: ../i2prouter:1616 ../i2prouter:1629 ../i2prouter:1643 ../i2prouter:1652
|
||||
#: ../i2prouter:1662 ../i2prouter:1686 ../i2prouter:1699 ../i2prouter:1711
|
||||
#: ../i2prouter:1729 ../i2prouter:1742 ../i2prouter:1756
|
||||
#, sh-format
|
||||
msgid "Removing $APP_LONG_NAME daemon"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1611 ../i2prouter:1626 ../i2prouter:1635 ../i2prouter:1645
|
||||
#: ../i2prouter:1656 ../i2prouter:1669 ../i2prouter:1681 ../i2prouter:1694
|
||||
#: ../i2prouter:1712 ../i2prouter:1725 ../i2prouter:1739 ../i2prouter:1750
|
||||
#: ../i2prouter:1622 ../i2prouter:1637 ../i2prouter:1646 ../i2prouter:1656
|
||||
#: ../i2prouter:1667 ../i2prouter:1680 ../i2prouter:1692 ../i2prouter:1705
|
||||
#: ../i2prouter:1723 ../i2prouter:1736 ../i2prouter:1750 ../i2prouter:1761
|
||||
#, sh-format
|
||||
msgid "The $APP_LONG_NAME daemon is not currently installed."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1754
|
||||
#: ../i2prouter:1765
|
||||
#, sh-format
|
||||
msgid "Remove not currently supported for $DIST_OS"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1841
|
||||
#: ../i2prouter:1852
|
||||
msgid "Commands:"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1842
|
||||
#: ../i2prouter:1853
|
||||
msgid "Launch in the current console."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1843
|
||||
#: ../i2prouter:1854
|
||||
msgid "Start in the background as a daemon process."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1844
|
||||
#: ../i2prouter:1855
|
||||
msgid "Stop if running as a daemon or in another console."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1845
|
||||
#: ../i2prouter:1856
|
||||
msgid "Stop gracefully, may take up to 11 minutes."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1846
|
||||
#: ../i2prouter:1857
|
||||
msgid "Stop if running and then start."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1847
|
||||
#: ../i2prouter:1858
|
||||
msgid "Restart only if already running."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1848
|
||||
#: ../i2prouter:1859
|
||||
msgid "Query the current status."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1849
|
||||
#: ../i2prouter:1860
|
||||
msgid "Install to start automatically when system boots."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1850
|
||||
#: ../i2prouter:1861
|
||||
msgid "Uninstall."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1851
|
||||
#: ../i2prouter:1862
|
||||
msgid "Request a Java thread dump if running."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1864
|
||||
#: ../i2prouter:1875
|
||||
msgid "Please edit i2prouter and set the variable RUN_AS_USER"
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1869
|
||||
#: ../i2prouter:1880
|
||||
msgid "Running I2P as the root user is *not* recommended."
|
||||
msgstr ""
|
||||
|
||||
#: ../i2prouter:1872
|
||||
#: ../i2prouter:1883
|
||||
msgid "To run as root anyway, edit i2prouter and set ALLOW_ROOT=true."
|
||||
msgstr ""
|
||||
|
@@ -18,7 +18,7 @@ public class RouterVersion {
|
||||
/** deprecated */
|
||||
public final static String ID = "Monotone";
|
||||
public final static String VERSION = CoreVersion.VERSION;
|
||||
public final static long BUILD = 12;
|
||||
public final static long BUILD = 13;
|
||||
|
||||
/** for example "-test" */
|
||||
public final static String EXTRA = "";
|
||||
|
@@ -63,6 +63,8 @@ public class Reseeder {
|
||||
private static final boolean ENABLE_SU3 = true;
|
||||
/** if false, use su3 only, and disable fallback reading directory index and individual dat files */
|
||||
private static final boolean ENABLE_NON_SU3 = false;
|
||||
private static final int MIN_RI_WANTED = 100;
|
||||
private static final int MIN_RESEED_SERVERS = 2;
|
||||
|
||||
/**
|
||||
* NOTE - URLs that are in both the standard and SSL groups must use the same hostname,
|
||||
@@ -241,6 +243,9 @@ public class Reseeder {
|
||||
* Since Java 7 or Android 2.3 (API 9),
|
||||
* which is the lowest Android we support anyway.
|
||||
*
|
||||
* Not guaranteed to be correct, e.g. FreeBSD:
|
||||
* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201446
|
||||
*
|
||||
* @since 0.9.20
|
||||
*/
|
||||
private static boolean isSNISupported() {
|
||||
@@ -500,6 +505,9 @@ public class Reseeder {
|
||||
}
|
||||
if (!isSNISupported()) {
|
||||
try {
|
||||
URLList.remove(new URI("https://i2p.manas.ca:8443/"));
|
||||
URLList.remove(new URI("https://i2p-0.manas.ca:8443/"));
|
||||
URLList.remove(new URI("https://download.xxlspeed.com/"));
|
||||
URLList.remove(new URI("https://netdb.i2p2.no/"));
|
||||
} catch (URISyntaxException mue) {}
|
||||
}
|
||||
@@ -521,6 +529,7 @@ public class Reseeder {
|
||||
*/
|
||||
private int reseed(List<URI> URLList, boolean echoStatus) {
|
||||
int total = 0;
|
||||
int fetched_reseed_servers = 0;
|
||||
for (int i = 0; i < URLList.size() && _isRunning; i++) {
|
||||
if (_context.router().gracefulShutdownInProgress()) {
|
||||
System.out.println("Reseed aborted, shutdown in progress");
|
||||
@@ -539,8 +548,9 @@ public class Reseeder {
|
||||
}
|
||||
if (dl > 0) {
|
||||
total += dl;
|
||||
fetched_reseed_servers++;
|
||||
// Don't go on to the next URL if we have enough
|
||||
if (total >= 100)
|
||||
if (total >= MIN_RI_WANTED && fetched_reseed_servers >= MIN_RESEED_SERVERS)
|
||||
break;
|
||||
// remove alternate versions if we haven't tried them yet
|
||||
for (int j = i + 1; j < URLList.size(); ) {
|
||||
|
Reference in New Issue
Block a user