From adf935acc1c1aaf91cd940d988e9f5c8f4eede44 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Sun, 12 Jun 2011 14:57:47 +0200 Subject: [PATCH] added -v flag to UDPMirror so we can optionally see what's being forwarded on the console --- .../expeditionconnector/UDPMirror.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java index cb8b0ca8e66..15fcb93a898 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java @@ -22,19 +22,30 @@ public class UDPMirror { if (args.length == 0) { usage(); } else { - int listeningOnPort = Integer.valueOf(args[0]); + int c = 0; + boolean verbose = false; + if (args[c].equals("-v")) { + c++; + verbose = true; + } + int listeningOnPort = Integer.valueOf(args[c++]); byte[] buf = new byte[65536]; DatagramSocket udpSocket = new DatagramSocket(listeningOnPort); DatagramPacket received = new DatagramPacket(buf, buf.length); DatagramSocket[] sendingSockets = new DatagramSocket[(args.length - 1) / 2]; DatagramPacket[] mirroredPackets = new DatagramPacket[(args.length - 1) / 2]; - for (int i = 1; i < args.length - 1; i += 2) { - sendingSockets[(i - 1) / 2] = new DatagramSocket(); - mirroredPackets[(i - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[i]), - Integer.valueOf(args[i + 1])); + while (c < args.length - 1) { + sendingSockets[(c - 1) / 2] = new DatagramSocket(); + mirroredPackets[(c - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[c]), + Integer.valueOf(args[c + 1])); + c += 2; } while (true) { udpSocket.receive(received); + if (verbose) { + String packetAsString = new String(received.getData(), received.getOffset(), received.getLength()).trim(); + System.out.println(packetAsString); + } for (int i = 0; i < mirroredPackets.length; i++) { mirroredPackets[i].setLength(received.getLength()); sendingSockets[i].send(mirroredPackets[i]); @@ -44,6 +55,7 @@ public class UDPMirror { } private static void usage() { - System.out.println("Usage: java "+UDPMirror.class.getName()+" hostname1 port1 [hostname2 port2]*"); + System.out.println("Usage: java "+UDPMirror.class.getName()+" [-v] hostname1 port1 [hostname2 port2]*"); + System.out.println(" -v\tPrint packets received to stdout"); } }