forked from I2P_Developers/i2p.i2p
* Checklist updates
* 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 * Readme: Update links * Transports: Reduce target connection count again to reduce tunnel reject rate further
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
|
||||||
|
@ -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>
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
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-08 0.9.11 released
|
||||||
|
|
||||||
2014-02-07 zzz
|
2014-02-07 zzz
|
||||||
|
@ -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)
|
||||||
|
@ -18,7 +18,7 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 0;
|
public final static long BUILD = 1;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "";
|
public final static String EXTRA = "";
|
||||||
|
@ -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