forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.zzz.test2' (head 7db2f2b73bc7c44b4be1077185314201c5b0bfe6)
to branch 'i2p.i2p' (head ea9844ecc27e816a09cf5d9b36c10ee2c3d1bcc9)
This commit is contained in:
@ -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
|
||||||
|
10
README.txt
10
README.txt
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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() {
|
||||||
|
@ -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();
|
||||||
|
@ -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\" ");
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
11
history.txt
11
history.txt
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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…</b><br>Si vous venez juste de lancer I2P, le nombre de
|
<ul class="links"><li class="tidylist"><b>Démarrage…</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>
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
||||||
|
Reference in New Issue
Block a user