Skip to content

Commit

Permalink
DhtShell mkeys operation
Browse files Browse the repository at this point in the history
  • Loading branch information
aldenml committed Feb 4, 2016
1 parent cadcb14 commit c2f2953
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 220 deletions.
36 changes: 26 additions & 10 deletions src/main/java/com/frostwire/jlibtorrent/DHT.java
Expand Up @@ -41,8 +41,8 @@ public boolean running() {
return s.isDHTRunning();
}

public Entry get(String sha1, long timeout) {
final Sha1Hash target = new Sha1Hash(sha1);
public Entry get(Sha1Hash sha1, long timeout) {
final Sha1Hash target = sha1;
final Entry[] result = {null};
final CountDownLatch signal = new CountDownLatch(1);

Expand Down Expand Up @@ -80,12 +80,12 @@ public void alert(Alert<?> alert) {
return result[0];
}

public String put(Entry entry) {
return s.dhtPutItem(entry).toString();
public Sha1Hash put(Entry entry) {
return s.dhtPutItem(entry);
}

public ArrayList<TcpEndpoint> getPeers(String sha1, long timeout) {
final Sha1Hash target = new Sha1Hash(sha1);
public ArrayList<TcpEndpoint> getPeers(Sha1Hash sha1, long timeout) {
final Sha1Hash target = sha1;
final Object[] result = {new ArrayList<TcpEndpoint>()};
final CountDownLatch signal = new CountDownLatch(1);

Expand Down Expand Up @@ -123,12 +123,28 @@ public void alert(Alert<?> alert) {
return (ArrayList<TcpEndpoint>) result[0];
}

public void announce(String sha1, int port, int flags) {
s.dhtAnnounce(new Sha1Hash(sha1), port, flags);
public void announce(Sha1Hash sha1, int port, int flags) {
s.dhtAnnounce(sha1, port, flags);
}

public void announce(String sha1) {
s.dhtAnnounce(new Sha1Hash(sha1));
public void announce(Sha1Hash sha1) {
s.dhtAnnounce(sha1);
}

public static byte[][] createKeypair() {
byte[] seed = new byte[Ed25519.SEED_SIZE];
Ed25519.createSeed(seed);

byte[] publicKey = new byte[Ed25519.PUBLIC_KEY_SIZE];
byte[] privateKey = new byte[Ed25519.PRIVATE_KEY_SIZE];

Ed25519.createKeypair(publicKey, privateKey, seed);

byte[][] keys = new byte[2][];
keys[0] = publicKey;
keys[1] = privateKey;

return keys;
}

private void toggleDHT(boolean on) {
Expand Down
69 changes: 0 additions & 69 deletions src/test/java/com/frostwire/jlibtorrent/demo/DhtImmutable.java

This file was deleted.

55 changes: 0 additions & 55 deletions src/test/java/com/frostwire/jlibtorrent/demo/DhtItemTest.java

This file was deleted.

82 changes: 0 additions & 82 deletions src/test/java/com/frostwire/jlibtorrent/demo/DhtPut.java

This file was deleted.

22 changes: 18 additions & 4 deletions src/test/java/com/frostwire/jlibtorrent/demo/DhtShell.java
Expand Up @@ -73,6 +73,8 @@ public void alert(Alert<?> alert) {
get_peers(dht, line);
} else if (is_announce(line)) {
announce(dht, line);
} else if (is_mkeys(line)) {
mkeys(line);
} else if (is_invalid(line)) {
invalid(line);
}
Expand Down Expand Up @@ -119,7 +121,7 @@ private static boolean is_put(String s) {

private static void put(DHT dht, String s) {
String data = s.split(" ")[1];
String sha1 = dht.put(new Entry(data));
String sha1 = dht.put(new Entry(data)).toString();
print("Wait for completion of put for key: " + sha1);
}

Expand All @@ -130,7 +132,7 @@ private static boolean is_get(String s) {
private static void get(DHT dht, String s) {
String sha1 = s.split(" ")[1];
print("Waiting a max of 20 seconds to get data for key: " + sha1);
Entry data = dht.get(sha1, 20000);
Entry data = dht.get(new Sha1Hash(sha1), 20000);
print(data.toString());
}

Expand All @@ -141,7 +143,7 @@ private static boolean is_get_peers(String s) {
private static void get_peers(DHT dht, String s) {
String sha1 = s.split(" ")[1];
print("Waiting a max of 20 seconds to get peers for key: " + sha1);
ArrayList<TcpEndpoint> peers = dht.getPeers(sha1, 20000);
ArrayList<TcpEndpoint> peers = dht.getPeers(new Sha1Hash(sha1), 20000);
print(peers.toString());
}

Expand All @@ -151,10 +153,22 @@ private static boolean is_announce(String s) {

private static void announce(DHT dht, String s) {
String sha1 = s.split(" ")[1];
dht.announce(sha1, 9000, 0);
dht.announce(new Sha1Hash(sha1), 9000, 0);
print("Wait for completion of announce for key: " + sha1);
}

private static boolean is_mkeys(String s) {
return s.startsWith("mkeys");
}

private static void mkeys(String s) {
byte[][] keys = DHT.createKeypair();
String msg = "Save this key pair\n";
msg += "Public:" + Utils.toHex(keys[0]) + "\n";
msg += "Private:" + Utils.toHex(keys[1]) + "\n";
print(msg);
}

private static boolean is_invalid(String s) {
return !s.isEmpty();
}
Expand Down

0 comments on commit c2f2953

Please sign in to comment.