Commit | Line | Data |
---|---|---|
7d048df4 NR |
1 | package be.nikiroo.utils.main; |
2 | ||
3 | import be.nikiroo.utils.TraceHandler; | |
4 | import be.nikiroo.utils.serial.server.ServerBridge; | |
5 | ||
6 | /** | |
7 | * Serialiser bridge (starts a {@link ServerBridge} and can thus intercept | |
8 | * communication between a client and a server). | |
9 | * | |
10 | * @author niki | |
11 | */ | |
12 | public class bridge { | |
13 | /** | |
14 | * Start a bridge between 2 servers. | |
15 | * | |
16 | * @param args | |
17 | * an array containing: | |
18 | * <ul> | |
19 | * <li>The bridge name</li> | |
20 | * <li>The bridge port</li> | |
21 | * <li>TRUE for an SSL bridge, FALSE for plain text</li> | |
22 | * <li>The forward server host</li> | |
23 | * <li>The forward server port</li> | |
24 | * <li>TRUE for an SSL forward server, FALSE for plain text</li> | |
25 | * <li>(optional) a trace level</li> | |
26 | * <li>(optional) a truncate size for data</li> | |
27 | * </ul> | |
28 | */ | |
29 | public static void main(String[] args) { | |
30 | final TraceHandler tracer = new TraceHandler(true, false, 0); | |
31 | try { | |
32 | if (args.length < 6) { | |
33 | tracer.error("Invalid syntax.\n" | |
34 | + "Syntax: [name] [port] [ssl] [fhost] [fport] [fssl] ([trace level]) ([max])\n" | |
35 | + "\tname: the bridge name\n" | |
36 | + "\tport: the bridge port\n" | |
37 | + "\tssl: TRUE for an SSL bridge, FALSE for plain text\n" | |
38 | + "\tfhost: the forward server host\n" | |
39 | + "\tfport: the forward server port\n" | |
40 | + "\tfssl: TRUE for an SSL forward server, FALSE for plain text\n" | |
41 | + "\ttrace level: the optional trace level (default is 1)\n" | |
42 | + "\tmax: the maximum size after which to truncate data\n"); | |
43 | return; | |
44 | } | |
45 | ||
46 | int i = 0; | |
47 | String name = args[i++]; | |
48 | int port = Integer.parseInt(args[i++]); | |
49 | boolean ssl = Boolean.parseBoolean(args[i++]); | |
50 | String fhost = args[i++]; | |
51 | int fport = Integer.parseInt(args[i++]); | |
52 | boolean fssl = Boolean.parseBoolean(args[i++]); | |
53 | ||
54 | int traceLevel = 1; | |
55 | if (args.length > 6) { | |
56 | traceLevel = Integer.parseInt(args[i++]); | |
57 | } | |
58 | int maxPrintSize = 0; | |
59 | if (args.length > 7) { | |
60 | maxPrintSize = Integer.parseInt(args[i++]); | |
61 | } | |
62 | ||
63 | ServerBridge bridge = new ServerBridge(name, port, ssl, fhost, | |
64 | fport, fssl); | |
65 | bridge.setTraceHandler(new TraceHandler(true, true, traceLevel, | |
66 | maxPrintSize)); | |
67 | bridge.run(); | |
68 | } catch (Exception e) { | |
69 | tracer.error(e); | |
70 | } | |
71 | } | |
72 | } |