aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/gnunet/gns/GnsTool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/gnunet/gns/GnsTool.java')
-rw-r--r--src/main/java/org/gnunet/gns/GnsTool.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/org/gnunet/gns/GnsTool.java b/src/main/java/org/gnunet/gns/GnsTool.java
new file mode 100644
index 0000000..81cd6d3
--- /dev/null
+++ b/src/main/java/org/gnunet/gns/GnsTool.java
@@ -0,0 +1,81 @@
1package org.gnunet.gns;
2
3
4import org.gnunet.gns.callbacks.LookupResultProcessor;
5import org.gnunet.identity.Identity;
6import org.gnunet.identity.IdentityCallback;
7import org.gnunet.util.Program;
8import org.gnunet.util.getopt.Argument;
9import org.gnunet.util.getopt.ArgumentAction;
10
11public class GnsTool {
12 public static void main(String[] args) {
13 int ret = new Program(args) {
14 @Argument(
15 shortname = "u",
16 longname = "lookup",
17 action = ArgumentAction.STORE_STRING,
18 description = "Lookup a record for the given name")
19 String name;
20
21 @Argument(
22 shortname = "z",
23 longname = "zone",
24 action = ArgumentAction.STORE_STRING,
25 description = "Lookup a record in the given zone")
26 String zone = "master-zone";
27
28 @Argument(
29 shortname = "t",
30 longname = "type",
31 action = ArgumentAction.STORE_STRING,
32 description = "Lookup a record of the given type (defaut: A)")
33 String type = "A";
34
35 @Override
36 protected void run() {
37 if (null == name) {
38 System.err.println("no name given");
39 setReturnValue(1);
40 return;
41 }
42
43 final long typeId = GnsRecord.getIdFromString(type);
44 if (typeId < 0) {
45 System.err.println(String.format("type '%s' not known", type));
46 setReturnValue(1);
47 return;
48 }
49
50 System.out.println("looking for records of type id " + typeId);
51
52 Identity.lookup(getConfiguration(), zone, new IdentityCallback() {
53 @Override
54 public void onEgo(Identity.Ego ego) {
55 System.out.println("looking in zone " + ego.getPublicKey());
56 final Gns gns = new Gns(getConfiguration());
57 gns.lookup(name, ego.getPublicKey(), typeId, false, null, new LookupResultProcessor() {
58 @Override
59 public void process(GnsRecord[] records) {
60 System.out.println("got " + records.length + " records");
61 gns.disconnect();
62 for (GnsRecord record : records) {
63 String s = record.getRecordData().asRecordString();
64 System.out.println(
65 String.format("Type: %s, Value: %s", record.recordType, s));
66 }
67 }
68 });
69 }
70
71 @Override
72 public void onError(String errorMessage) {
73 System.err.println("could not look up zone ego '" + name + "': " + errorMessage);
74 }
75 });
76
77 }
78 }.start();
79 System.exit(ret);
80 }
81}