diff --git a/src/main/java/com/frostwire/jlibtorrent/Session.java b/src/main/java/com/frostwire/jlibtorrent/Session.java index 78a126c57..9d3b510d1 100644 --- a/src/main/java/com/frostwire/jlibtorrent/Session.java +++ b/src/main/java/com/frostwire/jlibtorrent/Session.java @@ -84,8 +84,17 @@ public Session() { this(new SettingsPack(), false, null); } - public Session(String ip, int port, boolean logging, AlertListener listener) { - this(createSettings(ip, port), logging, listener); + /** + * This constructor allow you to specify the listen interfaces in the + * same format libtorrent accepts. Like for example, IPv4+IPv6 in the + * first available port: "0.0.0.0:0,[::]:0" + * + * @param interfaces + * @param logging + * @param listener + */ + public Session(String interfaces, boolean logging, AlertListener listener) { + this(createSettings(interfaces), logging, listener); } public session getSwig() { @@ -1075,11 +1084,10 @@ private static session createSession(SettingsPack settings, boolean logging) { return new session(sp); } - private static SettingsPack createSettings(String ip, int port) { + private static SettingsPack createSettings(String interfaces) { settings_pack sp = new settings_pack(); - String iface = String.format("%s:%d", ip, port); - sp.set_str(settings_pack.string_types.listen_interfaces.swigValue(), iface); + sp.set_str(settings_pack.string_types.listen_interfaces.swigValue(), interfaces); return new SettingsPack(sp); } diff --git a/src/test/java/com/frostwire/jlibtorrent/demo/DhtShell.java b/src/test/java/com/frostwire/jlibtorrent/demo/DhtShell.java index d8193fb72..3aa3628c1 100644 --- a/src/test/java/com/frostwire/jlibtorrent/demo/DhtShell.java +++ b/src/test/java/com/frostwire/jlibtorrent/demo/DhtShell.java @@ -50,7 +50,7 @@ public void alert(Alert alert) { } }; - Session s = new Session("0.0.0.0", 0, false, mainListener); + Session s = new Session("0.0.0.0:0,[::]:0", false, mainListener); DHT dht = new DHT(s); Downloader downloader = new Downloader(s);