mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-01-01 10:56:46 +00:00
20494a90d5
- support mdp clients over loopback UDP Note this is using an environment variable to specify the port number In future we expect to support environments where this port is already bound - monitor mdp sockets in a single & separate thread
74 lines
2.2 KiB
Java
74 lines
2.2 KiB
Java
package org.servalproject.test;
|
|
|
|
import org.servalproject.servaldna.AsyncResult;
|
|
import org.servalproject.servaldna.ChannelSelector;
|
|
import org.servalproject.servaldna.MdpDnaLookup;
|
|
import org.servalproject.servaldna.MdpSocket;
|
|
import org.servalproject.servaldna.ResultList;
|
|
import org.servalproject.servaldna.ServalDCommand;
|
|
import org.servalproject.servaldna.ServalDFailureException;
|
|
import org.servalproject.servaldna.SubscriberId;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Date;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by jeremy on 20/02/14.
|
|
*/
|
|
public class CommandLine {
|
|
|
|
static void log(String msg){
|
|
System.out.println(new Date().toString()+" "+msg);
|
|
}
|
|
|
|
static void getPeers() throws ServalDFailureException {
|
|
List<ServalDCommand.IdentityResult> peers = new LinkedList<ServalDCommand.IdentityResult>();
|
|
ServalDCommand.idPeers(new ResultList<ServalDCommand.IdentityResult>(peers));
|
|
|
|
for(ServalDCommand.IdentityResult i:peers){
|
|
ServalDCommand.IdentityResult details = ServalDCommand.reverseLookup(i.subscriberId);
|
|
System.out.println(details.getResult()==0?details.toString():i.toString());
|
|
}
|
|
}
|
|
|
|
static void lookup(String did) throws IOException, InterruptedException, ServalDFailureException {
|
|
MdpSocket.loopbackMdpPort = Integer.parseInt(System.getenv("SERVAL_MDP_INET_PORT"));
|
|
ChannelSelector selector = new ChannelSelector();
|
|
MdpDnaLookup lookup = new MdpDnaLookup(selector, new AsyncResult<ServalDCommand.LookupResult>() {
|
|
@Override
|
|
public void result(ServalDCommand.LookupResult nextResult) {
|
|
System.out.println(nextResult.toString());
|
|
}
|
|
});
|
|
lookup.sendRequest(SubscriberId.broadcastSid, did);
|
|
Thread.sleep(3000);
|
|
lookup.close();
|
|
}
|
|
|
|
public static void main(String... args){
|
|
if (args.length<1)
|
|
return;
|
|
|
|
try {
|
|
String methodName = args[0];
|
|
Object result=null;
|
|
if (methodName.equals("start"))
|
|
result=ServalDCommand.serverStart();
|
|
if (methodName.equals("stop"))
|
|
result=ServalDCommand.serverStop();
|
|
if (methodName.equals("peers"))
|
|
getPeers();
|
|
if (methodName.equals("lookup"))
|
|
lookup(args.length>=2 ? args[1] : "");
|
|
|
|
if (result!=null)
|
|
System.out.println(result.toString());
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|