propagate from branch 'i2p.i2p.zzz.test3' (head 20e0d7777d70412d2787ea16c8eb1ddc5fcfceae)
to branch 'i2p.i2p' (head a3189032197fadc3ecba67c5568b8841e8a6105e)
This commit is contained in:
@ -65,7 +65,7 @@ cd $CWD/../../
|
||||
|
||||
ant distclean
|
||||
ant dist
|
||||
|
||||
ant tarball
|
||||
|
||||
tar xjvf i2p.tar.bz2 -C $TMP
|
||||
|
||||
|
@ -2,6 +2,6 @@
|
||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/1">
|
||||
<file>file:/root/NetBeansProjects/i2p.i2p/apps/BOB/src/net/i2p/BOB/MUXlisten.java</file>
|
||||
<file>file:/root/NetBeansProjects/i2p.i2p/apps/BOB/src/net/i2p/BOB/I2PtoTCP.java</file>
|
||||
</open-files>
|
||||
</project-private>
|
||||
|
@ -19,6 +19,7 @@ import net.i2p.data.DataHelper;
|
||||
import net.i2p.util.EventDispatcher;
|
||||
import net.i2p.util.I2PThread;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.data.Base32;
|
||||
|
||||
/**
|
||||
* Simple extension to the I2PTunnelServer that filters the HTTP
|
||||
@ -33,6 +34,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
/** what Host: should we seem to be to the webserver? */
|
||||
private String _spoofHost;
|
||||
private static final String HASH_HEADER = "X-I2P-DestHash";
|
||||
private static final String DEST64_HEADER = "X-I2P-DestB64";
|
||||
private static final String DEST32_HEADER = "X-I2P-DestB32";
|
||||
|
||||
public I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel) {
|
||||
super(host, port, privData, l, notifyThis, tunnel);
|
||||
@ -74,6 +77,9 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
StringBuilder command = new StringBuilder(128);
|
||||
Properties headers = readHeaders(in, command);
|
||||
headers.setProperty(HASH_HEADER, socket.getPeerDestination().calculateHash().toBase64());
|
||||
headers.setProperty(DEST32_HEADER, Base32.encode(socket.getPeerDestination().calculateHash().getData()) + ".b32.i2p" );
|
||||
headers.setProperty(DEST64_HEADER, socket.getPeerDestination().toBase64());
|
||||
|
||||
if ( (_spoofHost != null) && (_spoofHost.trim().length() > 0) )
|
||||
headers.setProperty("Host", _spoofHost);
|
||||
headers.setProperty("Connection", "close");
|
||||
@ -361,6 +367,10 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
name = "X-Accept-encoding";
|
||||
else if (HASH_HEADER.equalsIgnoreCase(name))
|
||||
continue; // Prevent spoofing
|
||||
else if (DEST64_HEADER.equalsIgnoreCase(name))
|
||||
continue; // Prevent spoofing
|
||||
else if (DEST32_HEADER.equalsIgnoreCase(name))
|
||||
continue; // Prevent spoofing
|
||||
headers.setProperty(name, value);
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Read the header [" + name + "] = [" + value + "]");
|
||||
|
@ -239,7 +239,7 @@ public class WorkingDir {
|
||||
* Recursive copy a file or dir to a dir
|
||||
*
|
||||
* @param src file or directory, need not exist
|
||||
* @param target the directory to copy to, will be created if it doesn't exist
|
||||
* @param targetDir the directory to copy to, will be created if it doesn't exist
|
||||
* @return true for success OR if src does not exist
|
||||
*/
|
||||
public static final boolean copy(File src, File targetDir) {
|
||||
@ -277,8 +277,8 @@ public class WorkingDir {
|
||||
|
||||
/**
|
||||
* @param src not a directory, must exist
|
||||
* @param dest not a directory, will be overwritten if existing
|
||||
* @@reurn true if it was copied successfully
|
||||
* @param dst not a directory, will be overwritten if existing
|
||||
* @return true if it was copied successfully
|
||||
*/
|
||||
public static boolean copyFile(File src, File dst) {
|
||||
if (!src.exists()) return false;
|
||||
|
27
history.txt
27
history.txt
@ -1,3 +1,30 @@
|
||||
2009-07-06 zzz
|
||||
* Console: Fix small textareas on Opera
|
||||
* EepGet: Don't send X-Accept-Encoding for non-proxied fetches
|
||||
* HTTP Proxy: Limit proxy.i2p to /themes/ directory
|
||||
* I2PSnark:
|
||||
- Change postman2 announce URL to use hostname rather than B64
|
||||
- Shorten torrent name to fit better on one line
|
||||
* I2PTunnel:
|
||||
- Add edit text
|
||||
- Fix broken favicon
|
||||
* Move almost all uses of StringBuffer to StringBuilder,
|
||||
for efficiency (thanks Arsene for the suggestion)
|
||||
* Reseed:
|
||||
- Fix console status messages broken by global replace
|
||||
- Remove tino, add b.netdb.i2p2.de
|
||||
* SSUDemo: Move to the router/java/test directory
|
||||
* Startup: Log clients.config problems
|
||||
* Transport: Implement NTCP auto-transition from an
|
||||
address to no address, so that inbound NTCP is disabled
|
||||
after SSU detects a firewall. When UPnP was apparently successful
|
||||
but the router is still firewalled (due to an additional
|
||||
software firewall or a bad UPnP indication, for example)
|
||||
the router will now remove the NTCP address.
|
||||
|
||||
2009-07-05 sponge
|
||||
* Added X-I2P-DestB64 and X-I2P-DestB32 http headers
|
||||
|
||||
2009-06-29 zzz
|
||||
* Big directory rework:
|
||||
Eliminate all uses of the current working directory, and
|
||||
|
@ -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 = 2;
|
||||
public final static long BUILD = 4;
|
||||
/** for example "-test" */
|
||||
public final static String EXTRA = "";
|
||||
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
||||
|
Reference in New Issue
Block a user