merge of '7e9ec9156e65514e00e0d9f82be002cf9aadac5f'

and '9df57c2abc8e859828f9edf80e9d104fd6bf6729'
This commit is contained in:
dev
2010-03-15 19:01:28 +00:00
16 changed files with 54 additions and 35 deletions

View File

@@ -17,18 +17,13 @@ import net.i2p.util.PartialEepGet;
import net.i2p.util.VersionComparator;
/**
* Download and install a plugin.
* Check for an updated version of a plugin.
* A plugin is a standard .sud file with a 40-byte signature,
* a 16-byte version, and a .zip file.
* Unlike for router updates, we need not have the public key
* for the signature in advance.
*
* The zip file must have a standard directory layout, with
* a plugin.config file at the top level.
* The config file contains properties for the package name, version,
* signing public key, and other settings.
* The zip file will typically contain a webapps/ or lib/ dir,
* and a webapps.config and/or clients.config file.
* So we get the current version and update URL for the installed plugin,
* then fetch the first 56 bytes of the URL, extract the version,
* and compare.
*
* @since 0.7.12
* @author zzz

View File

@@ -16,7 +16,7 @@ import org.mortbay.jetty.servlet.WebApplicationContext;
* individual jars and not lib/*.jar specified in wrapper.config.
*
* A sample line in webapps.config is:
* webapps.appname.path=foo.jar,$I2P/lib/bar.jar
* webapps.appname.classpath=foo.jar,$I2P/lib/bar.jar
* Unless $I2P is specified the path will be relative to $I2P/lib for
* webapps in the installation and appDir/plugins/appname/lib for plugins.
*

View File

@@ -15,13 +15,14 @@ import org.mortbay.jetty.servlet.WebApplicationContext;
/**
* Start a webappapp classpath as specified in webapps.config.
* Add, start or stop a webapp.
* Add to the webapp classpath if specified in webapps.config.
*
* Sadly, setting Class-Path in MANIFEST.MF doesn't work for jetty wars.
* We could look there ourselves, or look for another properties file in the war,
* See WebAppConfiguration for more information.
* but let's just do it in webapps.config.
*
* No, wac.addClassPath() does not work.
* No, wac.addClassPath() does not work. For more info see:
*
* http://servlets.com/archive/servlet/ReadMsg?msgId=511113&listName=jetty-support
*

View File

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

View File

@@ -404,6 +404,8 @@ D8usM7Dxp5yrDrCYZ5AIijc=
*
* @return The version string read, or an empty string if no version string
* is present.
*
* @since 0.7.12
*/
public static String getVersionString(InputStream inputStream) {
try {
@@ -492,6 +494,8 @@ D8usM7Dxp5yrDrCYZ5AIijc=
*
* @return <code>null</code> if the
* data was moved, and an error <code>String</code> otherwise.
*
* @since 0.7.12
*/
public String migrateFile(File signedFile, File outputFile) {
if (!signedFile.exists())

View File

@@ -252,6 +252,8 @@ public class Timestamper implements Runnable {
/**
* Notify the listeners
*
* @since stratum param added in 0.7.12
*/
private void stampTime(long now, int stratum) {
long before = _context.clock().now();

View File

@@ -1,4 +1,6 @@
2010-03-013 zzz
* 2010-03-15 0.7.12 released
2010-03-13 zzz
* Partial fix for i2ptunnel nonce troubles
2010-03-08 zzz

View File

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

View File

@@ -1,6 +1,6 @@
<!--
<i2p.news date="$Date: 2010-02-15 00:00:00 $">
<i2p.release version="0.7.11" date="2010/02/15" minVersion="0.6"/>
<i2p.news date="$Date: 2010-03-15 00:00:00 $">
<i2p.release version="0.7.12" date="2010/03/15" minVersion="0.6"/>
-->
<h4><ul><li>Congratulations on getting I2P installed!</li></ul></h4>
<p>

View File

@@ -1,21 +1,29 @@
<!--
<i2p.news date="$Date: 2010-02-15 00:00:00 $">
<i2p.release version="0.7.11" date="2010/02/15" minVersion="0.6" />
<i2p.news date="$Date: 2010-03-15 00:00:00 $">
<i2p.release version="0.7.12" date="2010/03/15" minVersion="0.6" />
-->
<h4><ul><li>2010-02-15: <b>0.7.11 <a href="http://www.i2p2.i2p/release-0.7.11.html">Released</a></b></li></ul></h4>
<h4><ul><li>2010-03-15: <b>0.7.12 <a href="http://www.i2p2.i2p/release-0.7.12.html">Released</a></b></li></ul></h4>
<p>
The 0.7.11 release fixes several issues, some related to clocks, which prevented new routers from quickly integrating into the network.
It also fixes the installer for 64-bit Windows.
The release includes an
update to <a href="http://old.nabble.com/jetty-5.1.15,-6.1.18-and-7.0.0.M2-td23652819.html">Jetty 5.1.15</a>
to fix <a href="http://www.kb.cert.org/vuls/id/402580">this vulnerability</a>.
The 0.7.12 release contains support for user-generated plugins. These plugins may contain console web applications,
themes, translations, or standalone programs.
Some plugins are available for testing at
<a href="http://i2pbote.i2p/">i2pbote.i2p</a>
and
<a href="http://stats.i2p/i2p/plugins/">stats.i2p</a>.
We are hopeful this support will enable rapid development of innovative i2p applications.
</p><p>
The release fixes the blank-page bug when an eepsite is not reachable,
and also improves handling of clock skews and IP changes.
It adds support for a new, smaller tunnel build message,
that will be tested in this release and enabled in the next release.
</p><p>
As usual, the release contains more anonymity and performance improvements,
and an assortment of bug fixes.
translation updates, and an assortment of other bug fixes.
Upgrading is recommended.
</p><p>
We already have more big improvements in development for the next two releases.
Please give the
The last 6 months of development have dramatically increased the performance and capacity of the network.
Please help grow the network.
Give the
developers feedback on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a> or <a href="http://forum.i2p">forum.i2p</a>
and <a href="http://www.i2p2.i2p/getinvolved.html">get involved</a>,
spread the word,

View File

@@ -19,7 +19,7 @@ public class TunnelBuildMessage extends I2NPMessageImpl {
this(context, MAX_RECORD_COUNT);
}
/** @since 0.7.10 */
/** @since 0.7.12 */
protected TunnelBuildMessage(I2PAppContext context, int records) {
super(context);
if (records > 0) {
@@ -31,7 +31,7 @@ public class TunnelBuildMessage extends I2NPMessageImpl {
public void setRecord(int index, ByteArray record) { _records[index] = record; }
public ByteArray getRecord(int index) { return _records[index]; }
/** @since 0.7.10 */
/** @since 0.7.12 */
public int getRecordCount() { return RECORD_COUNT; }
public static final int RECORD_SIZE = 512+16;

View File

@@ -20,7 +20,7 @@ public class TunnelBuildReplyMessage extends I2NPMessageImpl {
this(context, MAX_RECORD_COUNT);
}
/** @since 0.7.10 */
/** @since 0.7.12 */
protected TunnelBuildReplyMessage(I2PAppContext context, int records) {
super(context);
if (records > 0) {
@@ -32,7 +32,7 @@ public class TunnelBuildReplyMessage extends I2NPMessageImpl {
public void setRecord(int index, ByteArray record) { _records[index] = record; }
public ByteArray getRecord(int index) { return _records[index]; }
/** @since 0.7.10 */
/** @since 0.7.12 */
public int getRecordCount() { return RECORD_COUNT; }
public static final int RECORD_SIZE = TunnelBuildMessage.RECORD_SIZE;

View File

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

View File

@@ -93,6 +93,8 @@ public class ClientAppConfig {
/*
* Go through the properties, and return a List of ClientAppConfig structures
*
* @since 0.7.12
*/
public static List<ClientAppConfig> getClientApps(File cfgFile) {
Properties clientApps = new Properties();
@@ -106,6 +108,8 @@ public class ClientAppConfig {
/*
* Go through the properties, and return a List of ClientAppConfig structures
*
* @since 0.7.12
*/
private static List<ClientAppConfig> getClientApps(Properties clientApps) {
List<ClientAppConfig> rv = new ArrayList(8);

View File

@@ -506,6 +506,7 @@ class BuildExecutor implements Runnable {
/**
* Only do this for non-fallback tunnels.
* @return true if refused because of a duplicate key
* @since 0.7.12
*/
private boolean addToBuilding(PooledTunnelCreatorConfig cfg) {
//_log.error("Adding ID: " + cfg.getReplyMessageId() + "; size was: " + _currentlyBuildingMap.size());
@@ -521,6 +522,7 @@ class BuildExecutor implements Runnable {
* But that's ok. A peer that rejects slowly gets penalized twice, for example.
*
* @return ptcc or null
* @since 0.7.12
*/
PooledTunnelCreatorConfig removeFromBuilding(long id) {
//_log.error("Removing ID: " + id + "; size was: " + _currentlyBuildingMap.size());

View File

@@ -187,6 +187,7 @@ class BuildRequestor {
SHORT_ORDER.add(Integer.valueOf(i));
}
/** @since 0.7.12 */
private static boolean supportsVariable(RouterContext ctx, Hash h) {
RouterInfo ri = ctx.netDb().lookupRouterInfoLocally(h);
if (ri == null)