propagate from branch 'i2p.i2p.zzz.test2' (head 7db2f2b73bc7c44b4be1077185314201c5b0bfe6)

to branch 'i2p.i2p' (head ea9844ecc27e816a09cf5d9b36c10ee2c3d1bcc9)
This commit is contained in:
zzz
2014-02-10 18:46:38 +00:00
22 changed files with 80 additions and 34 deletions

View File

@ -12,7 +12,7 @@ you may use:
to configure the router. to configure the router.
If you're having trouble, swing by http://forum.i2p/, check the If you're having trouble, swing by http://forum.i2p/, check the
website at http://www.i2p2.de/, or get on irc://irc.freenode.net/#i2p website at https://geti2p.net/, or get on irc://irc.freenode.net/#i2p
I2P will create and store files and configuration data in the user directory I2P will create and store files and configuration data in the user directory
~/.i2p/ on Linux and %APPDATA%\I2P\ on Windows. This directory is created ~/.i2p/ on Linux and %APPDATA%\I2P\ on Windows. This directory is created

View File

@ -15,20 +15,20 @@ To build:
ant installer-osx ant installer-osx
Run 'ant' with no arguments to see other build options. Run 'ant' with no arguments to see other build options.
See INSTALL.txt or http://www.i2p2.de/download.html for installation instructions. See INSTALL.txt or https://geti2p.net/download for installation instructions.
Documentation: Documentation:
http://www.i2p2.de/how https://geti2p.net/how
API: run 'ant javadoc' then start at build/javadoc/index.html API: run 'ant javadoc' then start at build/javadoc/index.html
Latest release: Latest release:
http://www.i2p2.de/download https://geti2p.net/download
To get development branch from source control: To get development branch from source control:
http://www.i2p2.de/newdevelopers https://geti2p.net/newdevelopers
FAQ: FAQ:
http://www.i2p2.de/faq https://geti2p.net/faq
Need help? Need help?
IRC irc.freenode.net #i2p IRC irc.freenode.net #i2p

View File

@ -1319,7 +1319,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* *
* @param args {username, password} * @param args {username, password}
* @param l logger to receive events and output * @param l logger to receive events and output
* @since 0.9.10 * @since 0.9.11
*/ */
private void runAuth(String args[], Logging l) { private void runAuth(String args[], Logging l) {
if (args.length == 2) { if (args.length == 2) {
@ -1774,7 +1774,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* @param i2cpPort may be null * @param i2cpPort may be null
* @param user may be null * @param user may be null
* @param pw may be null * @param pw may be null
* @since 0.9.10 * @since 0.9.11
*/ */
private static Destination destFromName(String name, String i2cpHost, private static Destination destFromName(String name, String i2cpHost,
String i2cpPort, boolean isSSL, String i2cpPort, boolean isSSL,

View File

@ -55,7 +55,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
private int localPort; private int localPort;
/** /**
* Protected for I2Ping since 0.9.10. Not for use outside package. * Protected for I2Ping since 0.9.11. Not for use outside package.
*/ */
protected boolean listenerReady; protected boolean listenerReady;
@ -586,7 +586,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
} }
/** /**
* Non-final since 0.9.10. * Non-final since 0.9.11.
* Any overrides must set listenerReady = true. * Any overrides must set listenerReady = true.
*/ */
public void run() { public void run() {

View File

@ -246,7 +246,7 @@ public class I2Ping extends I2PTunnelClientBase {
/** /**
* Does nothing. * Does nothing.
* @since 0.9.10 * @since 0.9.11
*/ */
protected void clientConnectionRun(Socket s) {} protected void clientConnectionRun(Socket s) {}
@ -260,7 +260,7 @@ public class I2Ping extends I2PTunnelClientBase {
private final int remotePort; private final int remotePort;
/** /**
* As of 0.9.10, does NOT start itself. * As of 0.9.11, does NOT start itself.
* Caller must call start() * Caller must call start()
* @param dest b64 or b32 or host name * @param dest b64 or b32 or host name
*/ */
@ -329,7 +329,7 @@ public class I2Ping extends I2PTunnelClientBase {
/** /**
* @param name b64 or b32 or host name * @param name b64 or b32 or host name
* @since 0.9.10 * @since 0.9.11
*/ */
private Destination lookup(String name) { private Destination lookup(String name) {
I2PAppContext ctx = I2PAppContext.getGlobalContext(); I2PAppContext ctx = I2PAppContext.getGlobalContext();

View File

@ -103,11 +103,33 @@ public class ConfigUIHelper extends HelperBase {
/** todo sort by translated string */ /** todo sort by translated string */
public String getLangSettings() { public String getLangSettings() {
StringBuilder buf = new StringBuilder(512); String clang = Messages.getLanguage(_context);
String current = Messages.getLanguage(_context); String current = clang;
String country = Messages.getCountry(_context); String country = Messages.getCountry(_context);
if (country != null && country.length() > 0) if (country != null && country.length() > 0)
current += '_' + country; current += '_' + country;
// find best match
boolean found = false;
for (int i = 0; i < langs.length; i++) {
if (langs[i][0].equals(current)) {
found = true;
break;
}
}
if (!found) {
if (country != null && country.length() > 0) {
current = clang;
for (int i = 0; i < langs.length; i++) {
if (langs[i][0].equals(current)) {
found = true;
break;
}
}
}
if (!found)
current = "en";
}
StringBuilder buf = new StringBuilder(512);
for (int i = 0; i < langs.length; i++) { for (int i = 0; i < langs.length; i++) {
// we use "lang" so it is set automagically in CSSHelper // we use "lang" so it is set automagically in CSSHelper
buf.append("<input type=\"radio\" class=\"optbox\" name=\"lang\" "); buf.append("<input type=\"radio\" class=\"optbox\" name=\"lang\" ");

View File

@ -351,7 +351,7 @@ public class GraphHelper extends FormHandler {
try { try {
_out.write("<br><h3>" + _("Configure Graph Display") + " [<a href=\"configstats\">" + _("Select Stats") + "</a>]</h3>"); _out.write("<br><h3>" + _("Configure Graph Display") + " [<a href=\"configstats\">" + _("Select Stats") + "</a>]</h3>");
_out.write("<form action=\"graphs\" method=\"POST\">\n" + _out.write("<form action=\"graphs\" method=\"POST\">\n" +
"<input type=\"hidden\" name=\"action\" value=\"foo\">\n" + "<input type=\"hidden\" name=\"action\" value=\"save\">\n" +
"<input type=\"hidden\" name=\"nonce\" value=\"" + nonce + "\" >\n"); "<input type=\"hidden\" name=\"nonce\" value=\"" + nonce + "\" >\n");
_out.write(_("Periods") + ": <input size=\"5\" style=\"text-align: right;\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\"><br>\n"); _out.write(_("Periods") + ": <input size=\"5\" style=\"text-align: right;\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\"><br>\n");
_out.write(_("Plot averages") + ": <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"checked\" ") + "> "); _out.write(_("Plot averages") + ": <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"checked\" ") + "> ");
@ -380,7 +380,7 @@ public class GraphHelper extends FormHandler {
if (persistent) if (persistent)
_out.write(" checked=\"checked\""); _out.write(" checked=\"checked\"");
_out.write(">" + _out.write(">" +
"<hr><div class=\"formaction\"><input type=\"submit\" class=\"acceot\" value=\"" + _("Save settings and redraw graphs") + "\"></div></form>"); "<hr><div class=\"formaction\"><input type=\"submit\" class=\"accept\" value=\"" + _("Save settings and redraw graphs") + "\"></div></form>");
} catch (IOException ioe) { } catch (IOException ioe) {
ioe.printStackTrace(); ioe.printStackTrace();
} }
@ -413,7 +413,8 @@ public class GraphHelper extends FormHandler {
*/ */
@Override @Override
protected void processForm() { protected void processForm() {
saveSettings(); if ("save".equals(_action))
saveSettings();
} }
/** /**

View File

@ -78,8 +78,17 @@ class SummaryListener implements RateSummaryListener {
//String names[] = _sample.getDsNames(); //String names[] = _sample.getDsNames();
//System.out.println("Add " + val + " over " + eventCount + " for " + _name //System.out.println("Add " + val + " over " + eventCount + " for " + _name
// + " [" + names[0] + ", " + names[1] + "]"); // + " [" + names[0] + ", " + names[1] + "]");
} catch (IllegalArgumentException iae) {
// ticket #1186
// apparently a corrupt file, thrown from update()
_log.error("Error adding", iae);
String path = _isPersistent ? _db.getPath() : null;
stopListening();
if (path != null)
(new File(path)).delete();
} catch (IOException ioe) { } catch (IOException ioe) {
_log.error("Error adding", ioe); _log.error("Error adding", ioe);
stopListening();
} catch (RrdException re) { } catch (RrdException re) {
// this can happen after the time slews backwards, so don't make it an error // this can happen after the time slews backwards, so don't make it an error
// org.jrobin.core.RrdException: Bad sample timestamp 1264343107. Last update time was 1264343172, at least one second step is required // org.jrobin.core.RrdException: Bad sample timestamp 1264343107. Last update time was 1264343172, at least one second step is required

View File

@ -31,7 +31,9 @@
%><%=intl._("Please report bugs on {0} or {1}.", %><%=intl._("Please report bugs on {0} or {1}.",
"<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>", "<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>",
"<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%> "<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%>
<!--
<%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%> <%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%>
-->
<p><%=intl._("Please include this information in bug reports")%>: <p><%=intl._("Please include this information in bug reports")%>:
</p></div><div class="sorry" id="warning2"> </p></div><div class="sorry" id="warning2">
<h3><%=intl._("Error Details")%></h3> <h3><%=intl._("Error Details")%></h3>

View File

@ -17,7 +17,9 @@
%><%=intl._("Please report bugs on {0} or {1}.", %><%=intl._("Please report bugs on {0} or {1}.",
"<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>", "<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>",
"<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%> "<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%>
<!--
<%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%> <%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%>
-->
<p><i><%=intl._("Please include this information in bug reports")%>:</i> <p><i><%=intl._("Please include this information in bug reports")%>:</i>
<p> <p>
<b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br> <b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>

View File

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

View File

@ -128,8 +128,7 @@ public class I2PAppContext {
_lock5 = new Object(), _lock6 = new Object(), _lock7 = new Object(), _lock8 = new Object(), _lock5 = new Object(), _lock6 = new Object(), _lock7 = new Object(), _lock8 = new Object(),
_lock9 = new Object(), _lock10 = new Object(), _lock11 = new Object(), _lock12 = new Object(), _lock9 = new Object(), _lock10 = new Object(), _lock11 = new Object(), _lock12 = new Object(),
_lock13 = new Object(), _lock14 = new Object(), _lock15 = new Object(), _lock16 = new Object(), _lock13 = new Object(), _lock14 = new Object(), _lock15 = new Object(), _lock16 = new Object(),
_lock17 = new Object(), _lock18 = new Object(), _lock19 = new Object(), _lock20 = new Object(), _lock17 = new Object(), _lock18 = new Object(), _lock19 = new Object(), _lock20 = new Object();
_lock21 = new Object();
/** /**
* Pull the default context, creating a new one if necessary, else using * Pull the default context, creating a new one if necessary, else using

View File

@ -24,7 +24,7 @@ import net.i2p.util.OrderedProperties;
* Only supported from client to router. * Only supported from client to router.
* *
* Since 0.8.7, optionally include a version string. * Since 0.8.7, optionally include a version string.
* Since 0.9.10, optionally include options. * Since 0.9.11, optionally include options.
*/ */
public class GetDateMessage extends I2CPMessageImpl { public class GetDateMessage extends I2CPMessageImpl {
public final static int MESSAGE_TYPE = 32; public final static int MESSAGE_TYPE = 32;
@ -49,7 +49,7 @@ public class GetDateMessage extends I2CPMessageImpl {
* must be non-null if options is non-null and non-empty. * must be non-null if options is non-null and non-empty.
* @param options Client options to be sent to the router; primarily for authentication; may be null; * @param options Client options to be sent to the router; primarily for authentication; may be null;
* keys and values 255 bytes (not chars) max each * keys and values 255 bytes (not chars) max each
* @since 0.9.10 * @since 0.9.11
*/ */
public GetDateMessage(String version, Properties options) { public GetDateMessage(String version, Properties options) {
super(); super();
@ -72,7 +72,7 @@ public class GetDateMessage extends I2CPMessageImpl {
* Primarily for authentication. * Primarily for authentication.
* *
* @return may be null * @return may be null
* @since 0.9.10 * @since 0.9.11
*/ */
public Properties getOptions() { public Properties getOptions() {
return _options; return _options;

View File

@ -23,7 +23,7 @@ public class I2CPMessageHandler {
/** /**
* This is huge. Mainly to catch a completly bogus response, possibly not an I2CP socket. * This is huge. Mainly to catch a completly bogus response, possibly not an I2CP socket.
* @since 0.9.10 * @since 0.9.11
*/ */
public static final int MAX_LENGTH = 128*1024; public static final int MAX_LENGTH = 128*1024;

View File

@ -1,3 +1,14 @@
2014-02-10 zzz
* Console:
- Don't reset graph settings when clicking restart or shutdown on graphs page
- Don't recommend guest login on trac, it's disabled
- Catch and remove corrupt jrb file (ticket #1186)
- Always set default language on /configui
* Transports: Reduce target connection count again to reduce
tunnel reject rate further
* 2014-02-08 0.9.11 released
2014-02-07 zzz 2014-02-07 zzz
* Services: * Services:
- Move backup news to psi.i2p - Move backup news to psi.i2p

View File

@ -4,7 +4,7 @@
<info> <info>
<appname>i2p</appname> <appname>i2p</appname>
<appversion>0.9.10</appversion> <appversion>0.9.11</appversion>
<authors> <authors>
<author name="I2P" email="https://geti2p.net/"/> <author name="I2P" email="https://geti2p.net/"/>
</authors> </authors>

View File

@ -73,17 +73,17 @@ Seed update torrents
Notify the following people: Notify the following people:
All in-network update hosts All in-network update hosts
PPA maintainer PPA maintainer
Google code maintainer
news.xml maintainer news.xml maintainer
backup news.xml maintainer
Website files to change: Website files to change:
Sync with mtn.i2p2.i2p Sync with mtn.i2p-projekt.i2p
hosts.txt if it changed (copy from i2p.i2p mtn branch) hosts.txt if it changed (copy from i2p.i2p mtn branch)
i2p2www/__init__.py (release number) i2p2www/__init__.py (release number)
i2p2www/pages/downloads/list.html (checksums) i2p2www/pages/downloads/list.html (checksums)
i2p2www/static/news/news.xml i2p2www/static/news/news.xml
New release announcement - see i2p2www/blog/README for instructions New release announcement - see i2p2www/blog/README for instructions
Sync with mtn.i2p2.i2p Sync with mtn.i2p-projekt.i2p
Announce on: Announce on:
#i2p, #i2p-dev (also on freenode side) #i2p, #i2p-dev (also on freenode side)

View File

@ -352,3 +352,4 @@ salt.i2p=6V5XXGZN69jV~QhveTsA4by1Ct8Q9qljltW825zuxHAsjwZWV7vngzbucllm1mDjJmE~zPq
no.i2p=8jISadUQuR~kZ9YzZxfQwSQRdhY~gkTSgy4l33jKOAraoqSmb~IcoeN5xOXyhtX8gxKEb03-48zPZnso83TwcTFg66~Cu38a59fG0h~vy~WIY5x5CwfkoCFqYmo4OzdnTY-2TcQ2ZN44VA6Sx48UXjEsSdrvn0SfaeMAW5It-N6MAV23Qgc5NgRTVJ6YS74FnRZCy6uGU-RPz1HQQIH~byW-NHBmXAW2Bmv2Kq3bHVHY9tb4d8yfrhlnaf3bfhLeELUbtBnXhLd3Zs2kX6Afz7ofDkpmaygYO6XA8QNIVcM2ub6-jSdsly~EXBtRDzF0WSbT9v8rvpop5TxjwXAnTjbS09Qq8x2Bl8wfkkPz45beN0Je7wrxp0SBk5DHhhvVbbyFUS7bDn1~aTvE7Ujq8ael3myR56jb8NlYiXaiJYgwPXpXx5gSDf8rBaDIdJsSSHWv~DqOfJ1BkhADCEfGZ3QMFY7uWrXGuj0J3OYEvonV-deMoh6pYKtgcFiewJgjAAAA no.i2p=8jISadUQuR~kZ9YzZxfQwSQRdhY~gkTSgy4l33jKOAraoqSmb~IcoeN5xOXyhtX8gxKEb03-48zPZnso83TwcTFg66~Cu38a59fG0h~vy~WIY5x5CwfkoCFqYmo4OzdnTY-2TcQ2ZN44VA6Sx48UXjEsSdrvn0SfaeMAW5It-N6MAV23Qgc5NgRTVJ6YS74FnRZCy6uGU-RPz1HQQIH~byW-NHBmXAW2Bmv2Kq3bHVHY9tb4d8yfrhlnaf3bfhLeELUbtBnXhLd3Zs2kX6Afz7ofDkpmaygYO6XA8QNIVcM2ub6-jSdsly~EXBtRDzF0WSbT9v8rvpop5TxjwXAnTjbS09Qq8x2Bl8wfkkPz45beN0Je7wrxp0SBk5DHhhvVbbyFUS7bDn1~aTvE7Ujq8ael3myR56jb8NlYiXaiJYgwPXpXx5gSDf8rBaDIdJsSSHWv~DqOfJ1BkhADCEfGZ3QMFY7uWrXGuj0J3OYEvonV-deMoh6pYKtgcFiewJgjAAAA
i2pjump.i2p=ouBpQCfwiBcdoZD3vMNT8HXB091kwgI766U6sdWhstY6~7Aixpo8JsNaSO1LV01I20kEzAgmWP8cf5469gSa-YeXAjhKSQPtUgQiKCoRhv2virj--~ecvv4OhyIzCiYoWMMFHV50c02Lg~EE8LGbEkIbRXUZaIWlYwnLC-MzPtuSXhFjHW03h0v~QGeIlYFr8nkpBayqdB8SLkieKygnlOgLRSehmHWZeA0yIz1aCpDuTrZAmAdb3ZwcNm0fxWl~AEpELZ-ax8x6Ibb0kHgPxP1lRr1J7MH~yYXrkymqIPEj-sNLavlAN5oEK6~A45hLd-IENfQ9v-AlntZMon~zeDvxDwHqyKy4OOCbHV7LmitYryEZTVoQNDPPHa6o0pnkBjaPWEnJoDqzU~s-alViTYwR7qkGZMxSp~tej~TngU8GUYEHn4kdTnni0~RTY~50ZyI~2~2ESUCIfFWHzYKQXclzt-uxmNsCL7npmD1-MKZUQ1ECwPR2xKv5vqJwO5ZKAAAA i2pjump.i2p=ouBpQCfwiBcdoZD3vMNT8HXB091kwgI766U6sdWhstY6~7Aixpo8JsNaSO1LV01I20kEzAgmWP8cf5469gSa-YeXAjhKSQPtUgQiKCoRhv2virj--~ecvv4OhyIzCiYoWMMFHV50c02Lg~EE8LGbEkIbRXUZaIWlYwnLC-MzPtuSXhFjHW03h0v~QGeIlYFr8nkpBayqdB8SLkieKygnlOgLRSehmHWZeA0yIz1aCpDuTrZAmAdb3ZwcNm0fxWl~AEpELZ-ax8x6Ibb0kHgPxP1lRr1J7MH~yYXrkymqIPEj-sNLavlAN5oEK6~A45hLd-IENfQ9v-AlntZMon~zeDvxDwHqyKy4OOCbHV7LmitYryEZTVoQNDPPHa6o0pnkBjaPWEnJoDqzU~s-alViTYwR7qkGZMxSp~tej~TngU8GUYEHn4kdTnni0~RTY~50ZyI~2~2ESUCIfFWHzYKQXclzt-uxmNsCL7npmD1-MKZUQ1ECwPR2xKv5vqJwO5ZKAAAA
psi.i2p=a11l91etedRW5Kl2GhdDI9qiRBbDRAQY6TWJb8KlSc0P9WUrEviABAAltqDU1DFJrRhMAZg5i6rWGszkJrF-pWLQK9JOH33l4~mQjB8Hkt83l9qnNJPUlGlh9yIfBY40CQ0Ermy8gzjHLayUpypDJFv2V6rHLwxAQeaXJu8YXbyvCucEu9i6HVO49akXW9YSxcZEqxK04wZnjBqhHGlVbehleMqTx9nkd0pUpBZz~vIaG9matUSHinopEo6Wegml9FEz~FEaQpPknKuMAGGSNFVJb0NtaOQSAocAOg1nLKh80v232Y8sJOHG63asSJoBa6bGwjIHftsqD~lEmVV4NkgNPybmvsD1SCbMQ2ExaCXFPVQV-yJhIAPN9MRVT9cSBT2GCq-vpMwdJ5Nf0iPR3M-Ak961JUwWXPYTL79toXCgxDX2~nZ5QFRV490YNnfB7LQu10G89wG8lzS9GWf2i-nk~~ez0Lq0dH7qQokFXdUkPc7bvSrxqkytrbd-h8O8AAAA psi.i2p=a11l91etedRW5Kl2GhdDI9qiRBbDRAQY6TWJb8KlSc0P9WUrEviABAAltqDU1DFJrRhMAZg5i6rWGszkJrF-pWLQK9JOH33l4~mQjB8Hkt83l9qnNJPUlGlh9yIfBY40CQ0Ermy8gzjHLayUpypDJFv2V6rHLwxAQeaXJu8YXbyvCucEu9i6HVO49akXW9YSxcZEqxK04wZnjBqhHGlVbehleMqTx9nkd0pUpBZz~vIaG9matUSHinopEo6Wegml9FEz~FEaQpPknKuMAGGSNFVJb0NtaOQSAocAOg1nLKh80v232Y8sJOHG63asSJoBa6bGwjIHftsqD~lEmVV4NkgNPybmvsD1SCbMQ2ExaCXFPVQV-yJhIAPN9MRVT9cSBT2GCq-vpMwdJ5Nf0iPR3M-Ak961JUwWXPYTL79toXCgxDX2~nZ5QFRV490YNnfB7LQu10G89wG8lzS9GWf2i-nk~~ez0Lq0dH7qQokFXdUkPc7bvSrxqkytrbd-h8O8AAAA
irc.dg.i2p=bunRitjuWmSGkf5UV7pnjMRIxmP7fuHy9SgDfAA0M~4TWoBr4Ji4m5AyMGzhAdNaQW6c2-0CIe~RCDZ~vcN-BSNpaqzd80gKhXYxqUQQB83XRWDdLz-z0H~Y15k90p~n0GUSzsjlZctkYglNMyQ8MAUIpUEiLz6MVwArZqUI-CDOE664ZazcGtSKfBLZKycHsSj6WfLbwl2-R5Zv4f5Xisv9Hd0b8BsqJEWn1AmBMhM7p8l7okM2ZcRnC5ypzBdLfLSdkGJ5dEZAJIxz-GhtB8rJ3e0jJkbFjknGrJfxbwt~5n00nVuiUNMro2JRxQ7w~VzMw~lYRq~1B5TMtaKRDhxk7pnv5MxmVBFNhcT~hImcyxfT7GfIPzYU9s~uiFReoSjAOJZv-rKq4Oyeyz-Pa6lcg-c3MtuTXjJ2BMX2dA5Jw0FFVDDMOdDL2b1lwtyseQQkGtc15i4EtNy6iJrkbqAnIhO86E2C3jDf~yt2FlDlcbx6dkflJ3y3j2Wu9DAgAAAA

View File

@ -1,5 +1,4 @@
<div lang="fr"> <div lang="fr">
(traduction de mars 2011 - cliquez sur le drapeau ci-dessus pour l'original en anglais)
<ul class="links"><li class="tidylist"><b>Démarrage&hellip;</b><br>Si vous venez juste de lancer I2P, le nombre de <ul class="links"><li class="tidylist"><b>Démarrage&hellip;</b><br>Si vous venez juste de lancer I2P, le nombre de
<i>pairs actifs</i> indiqués dans la section <i>Pairs</i> du "Panneau de surveillance" sur la gauche devrait <i>pairs actifs</i> indiqués dans la section <i>Pairs</i> du "Panneau de surveillance" sur la gauche devrait
commencer à augmenter dans les prochaines minutes et vous verrez alors en bas du panneau une <i>destination locale</i> commencer à augmenter dans les prochaines minutes et vous verrez alors en bas du panneau une <i>destination locale</i>

View File

@ -18,10 +18,10 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 11; public final static long BUILD = 1;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = "-rc"; public final static String EXTRA = "";
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
public static void main(String args[]) { public static void main(String args[]) {
System.out.println("I2P Router version: " + FULL_VERSION); System.out.println("I2P Router version: " + FULL_VERSION);

View File

@ -211,7 +211,7 @@ class EventPumper implements Runnable {
int failsafeInvalid = 0; int failsafeInvalid = 0;
// Increase allowed idle time if we are well under allowed connections, otherwise decrease // Increase allowed idle time if we are well under allowed connections, otherwise decrease
if (_transport.haveCapacity(45)) if (_transport.haveCapacity(33))
_expireIdleWriteTime = Math.min(_expireIdleWriteTime + 1000, MAX_EXPIRE_IDLE_TIME); _expireIdleWriteTime = Math.min(_expireIdleWriteTime + 1000, MAX_EXPIRE_IDLE_TIME);
else else
_expireIdleWriteTime = Math.max(_expireIdleWriteTime - 3000, MIN_EXPIRE_IDLE_TIME); _expireIdleWriteTime = Math.max(_expireIdleWriteTime - 3000, MIN_EXPIRE_IDLE_TIME);

View File

@ -2846,7 +2846,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
public void timeReached() { public void timeReached() {
// Increase allowed idle time if we are well under allowed connections, otherwise decrease // Increase allowed idle time if we are well under allowed connections, otherwise decrease
if (haveCapacity(45)) { if (haveCapacity(33)) {
long inc; long inc;
// don't adjust too quickly if we are looping fast // don't adjust too quickly if we are looping fast
if (_lastLoopShort) if (_lastLoopShort)