package erjang.epmd;
import java.nio.channels.SelectionKey;
import java.util.logging.Level;
import java.util.logging.Logger;
public class EPMDServer extends PacketServer {
private static int epmd_port;
@Override
protected PacketConnection newConnection(SelectionKey dsk) {
return new EPMDConnection(epmd_port, dsk);
}
static public void main(String[] args) {
epmd_port = 4369;
Level level = Level.WARNING;
for (int i = 0; i < args.length; i++) {
if (args[i].startsWith("-p"))
epmd_port = toInt(args[i].substring(2), epmd_port);
if (args[i].startsWith("-d"))
level = toLevel(toInt(args[i].substring(2), 2));
}
final Logger log = Logger.getLogger("erjang.epmd");
log.setLevel(level);
new EPMDServer().listen(epmd_port);
}
public static int toInt(String intString, int defaultValue) {
try {
return Integer.parseInt(intString);
} catch (NumberFormatException e) {
return defaultValue;
}
}
public static Level toLevel(int level) {
if (level <= 0) {
return Level.OFF;
}
switch (level) {
case 1: return Level.SEVERE;
case 2: return Level.WARNING;
case 3: return Level.INFO;
case 4: return Level.FINE;
case 5: return Level.FINER;
case 6: return Level.FINEST;
default: return Level.FINEST;
}
}
}