diff --git a/apps/i2psnark/java/src/org/klomp/snark/MagnetState.java b/apps/i2psnark/java/src/org/klomp/snark/MagnetState.java index 03b1ed27f..31b85554c 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/MagnetState.java +++ b/apps/i2psnark/java/src/org/klomp/snark/MagnetState.java @@ -187,7 +187,7 @@ class MagnetState { * @return true if this was the last piece * @throws NPE, IllegalArgumentException, IOException, ... */ - public MetaInfo buildMetaInfo() throws Exception { + private MetaInfo buildMetaInfo() throws Exception { // top map has nothing in it but the info map (no announce) Map map = new HashMap(); InputStream is = new ByteArrayInputStream(metainfoBytes); diff --git a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java index 9f5789031..5fca72eb3 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java +++ b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java @@ -517,9 +517,10 @@ public class MetaInfo sha1.update(bs, off, length); byte[] hash = sha1.digest(); - for (int i = 0; i < 20; i++) + for (int i = 0; i < 20; i++) { if (hash[i] != piece_hashes[20 * piece + i]) return false; + } return true; } @@ -539,9 +540,10 @@ public class MetaInfo _log.warn("Error checking", ioe); return false; } - for (int i = 0; i < 20; i++) + for (int i = 0; i < 20; i++) { if (hash[i] != piece_hashes[20 * piece + i]) return false; + } return true; } diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 0d6168da1..ae39a7937 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -248,7 +248,15 @@ public class I2PSnarkServlet extends BasicServlet { out.write(DOCTYPE + "\n" + "\n" + ""); - out.write(_("I2PSnark - Anonymous BitTorrent Client")); + if (_contextName.equals(DEFAULT_NAME)) + out.write(_("I2PSnark")); + else + out.write(_contextName); + out.write(" - "); + if (isConfigure) + out.write(_("Configuration")); + else + out.write(_("Anonymous BitTorrent Client")); if ("2".equals(peerParam)) out.write(" | Debug Mode"); out.write("\n"); @@ -1305,20 +1313,16 @@ public class I2PSnarkServlet extends BasicServlet { // (i) icon column out.write(""); - if (isValid && meta.getAnnounce() != null) { - // Link to local details page - note that trailing slash on a single-file torrent - // gets us to the details page instead of the file. - //StringBuilder buf = new StringBuilder(128); - //buf.append("\"").append(_("Info")).append("\""); - //out.write(buf.toString()); - - // Link to tracker details page - String trackerLink = getTrackerLink(meta.getAnnounce(), snark.getInfoHash()); - if (trackerLink != null) - out.write(trackerLink); + if (isValid) { + String announce = meta.getAnnounce(); + if (announce == null) + announce = snark.getTrackerURL(); + if (announce != null) { + // Link to tracker details page + String trackerLink = getTrackerLink(announce, snark.getInfoHash()); + if (trackerLink != null) + out.write(trackerLink); + } } String encodedBaseName = urlEncode(fullBasename); @@ -1850,7 +1854,7 @@ public class I2PSnarkServlet extends BasicServlet { out.write("\" >" + ""); - out.write(_("Auto start")); + out.write(_("Auto start torrents")); out.write(": \n"); + String announce = null; MetaInfo meta = snark.getMetaInfo(); if (meta != null) { - String announce = meta.getAnnounce(); + announce = meta.getAnnounce(); + if (announce == null) + announce = snark.getTrackerURL(); if (announce != null) { announce = DataHelper.stripHTML(announce); buf.append(""); @@ -2393,11 +2400,20 @@ public class I2PSnarkServlet extends BasicServlet { String hex = I2PSnarkUtil.toHex(snark.getInfoHash()); if (meta == null || !meta.isPrivate()) { buf.append("") + .append(MagnetURI.MAGNET_FULL).append(hex); + if (announce != null) + buf.append("&tr=").append(announce); + buf.append("\">") .append(toImg("magnet", _("Magnet link"))) .append(" Magnet: ") - .append(MagnetURI.MAGNET_FULL).append(hex).append("") + .append(MagnetURI.MAGNET_FULL).append(hex); + if (announce != null) + buf.append("&tr=").append(announce); + buf.append("\">") + .append(MagnetURI.MAGNET_FULL).append(hex); + if (announce != null) + buf.append("&tr=").append(announce); + buf.append("") .append("\n"); } else { buf.append("") @@ -2653,7 +2669,8 @@ public class I2PSnarkServlet extends BasicServlet { mime.equals("text/x-sfv") || mime.equals("application/rtf") || mime.equals("application/epub+zip") || - mime.equals("application/x-mobipocket-ebook")) + mime.equals("application/x-mobipocket-ebook") || + plc.endsWith(".azw4")) icon = "page"; else if (mime.equals("application/java-archive") || plc.endsWith(".deb")) diff --git a/history.txt b/history.txt index 2dd4b29d2..1864712ce 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,10 @@ +2014-06-21 zzz + * i2psnark: + - Display webapp name in html title (ticket #1311) + - Use tracker from magnet link in display (ticket #1313) + - Clarify auto-start (ticket #1293) + - Include tracker in magnet link on details page (ticket #964) + 2014-06-13 zzz * i2psnark: Fix NPE when fetching invalid torrent (ticket #1307) * Transports: Disallow Carrier Grade NAT (RFC 6598) addresses diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index fecba78d6..a6204817e 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -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 = 7; + public final static long BUILD = 8; /** for example "-test" */ public final static String EXTRA = "";