X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fmain%2Fbridge.java;fp=src%2Fbe%2Fnikiroo%2Futils%2Fmain%2Fbridge.java;h=8aaa93f71de9286b6342e7bbb70854d3b9411cd6;hb=7d048df41aea44c07ea6e1ab774c627053f39dfa;hp=0000000000000000000000000000000000000000;hpb=949445eeaa6bc10572cc7bdc916de802f9ef817d;p=fanfix.git diff --git a/src/be/nikiroo/utils/main/bridge.java b/src/be/nikiroo/utils/main/bridge.java new file mode 100644 index 0000000..8aaa93f --- /dev/null +++ b/src/be/nikiroo/utils/main/bridge.java @@ -0,0 +1,72 @@ +package be.nikiroo.utils.main; + +import be.nikiroo.utils.TraceHandler; +import be.nikiroo.utils.serial.server.ServerBridge; + +/** + * Serialiser bridge (starts a {@link ServerBridge} and can thus intercept + * communication between a client and a server). + * + * @author niki + */ +public class bridge { + /** + * Start a bridge between 2 servers. + * + * @param args + * an array containing: + * + */ + public static void main(String[] args) { + final TraceHandler tracer = new TraceHandler(true, false, 0); + try { + if (args.length < 6) { + tracer.error("Invalid syntax.\n" + + "Syntax: [name] [port] [ssl] [fhost] [fport] [fssl] ([trace level]) ([max])\n" + + "\tname: the bridge name\n" + + "\tport: the bridge port\n" + + "\tssl: TRUE for an SSL bridge, FALSE for plain text\n" + + "\tfhost: the forward server host\n" + + "\tfport: the forward server port\n" + + "\tfssl: TRUE for an SSL forward server, FALSE for plain text\n" + + "\ttrace level: the optional trace level (default is 1)\n" + + "\tmax: the maximum size after which to truncate data\n"); + return; + } + + int i = 0; + String name = args[i++]; + int port = Integer.parseInt(args[i++]); + boolean ssl = Boolean.parseBoolean(args[i++]); + String fhost = args[i++]; + int fport = Integer.parseInt(args[i++]); + boolean fssl = Boolean.parseBoolean(args[i++]); + + int traceLevel = 1; + if (args.length > 6) { + traceLevel = Integer.parseInt(args[i++]); + } + int maxPrintSize = 0; + if (args.length > 7) { + maxPrintSize = Integer.parseInt(args[i++]); + } + + ServerBridge bridge = new ServerBridge(name, port, ssl, fhost, + fport, fssl); + bridge.setTraceHandler(new TraceHandler(true, true, traceLevel, + maxPrintSize)); + bridge.run(); + } catch (Exception e) { + tracer.error(e); + } + } +}