diff --git a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java index 1a9236248..9584b0d9d 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java +++ b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java @@ -50,6 +50,8 @@ public class BEncoder public static void bencode(Object o, OutputStream out) throws IOException, IllegalArgumentException { + if (o == null) + throw new NullPointerException("Cannot bencode null"); if (o instanceof String) bencode((String)o, out); else if (o instanceof byte[]) 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 61c9c8e57..bd08dc46d 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -35,6 +35,7 @@ import net.i2p.util.I2PAppThread; import net.i2p.util.Log; import net.i2p.util.SecureFileOutputStream; +import org.klomp.snark.I2PSnarkUtil; import org.klomp.snark.MetaInfo; import org.klomp.snark.Peer; import org.klomp.snark.Snark; @@ -1389,7 +1390,7 @@ public class I2PSnarkServlet extends Default { _manager.addMessage(_("Invalid info hash in magnet URL {0}", url)); return; } - _manager.addMagnet(name, ih); + _manager.addMagnet(name, ih, true); } /** copied from ConfigTunnelsHelper */ @@ -1574,7 +1575,7 @@ public class I2PSnarkServlet extends Default { } buf.append("
").append(_("Pieces")).append(": ").append(pieces); buf.append("
").append(_("Piece size")).append(": ").append(formatSize(snark.getPieceLength(0))); - String hex = toHex(snark.getInfoHash()); + String hex = I2PSnarkUtil.toHex(snark.getInfoHash()); buf.append("
").append(_("Magnet link")).append(": ") .append(MAGNET).append(hex).append(""); // We don't have the hash of the torrent file @@ -1799,21 +1800,6 @@ public class I2PSnarkServlet extends Default { return "\"""; } - /** - * Like DataHelper.toHexString but ensures no loss of leading zero bytes - * @since 0.8.4 - */ - private static String toHex(byte[] b) { - StringBuilder buf = new StringBuilder(40); - for (int i = 0; i < b.length; i++) { - int bi = b[i] & 0xff; - if (bi < 16) - buf.append('0'); - buf.append(Integer.toHexString(bi)); - } - return buf.toString(); - } - /** @since 0.8.1 */ private void savePriorities(Snark snark, Map postParams) { Storage storage = snark.getStorage();