diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java index c031ea8c690ac133da50793eb1e2f8e33372b696..881073d09f45fd560d8d5d4ce6d15c8986f281d1 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java @@ -9,6 +9,8 @@ import java.net.Socket; import java.util.HashMap; import java.util.Map; +import gnu.getopt.Getopt; + import net.i2p.I2PAppContext; import net.i2p.data.Base32; import net.i2p.data.DataHelper; @@ -37,15 +39,59 @@ public class SAMStreamSend { /** Connection id (Integer) to peer (Flooder) */ private final Map<String, Sender> _remotePeers; + private static final String USAGE = "Usage: SAMStreamSend [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] peerDestFile dataDir"; + public static void main(String args[]) { - if (args.length < 4) { - System.err.println("Usage: SAMStreamSend samHost samPort peerDestFile dataFile [version]"); + Getopt g = new Getopt("SAM", args, "drsb:p:v:"); + boolean isSSL = false; + int mode = 0; // stream + String version = "1.0"; + String host = "127.0.0.1"; + String port = "7656"; + int c; + while ((c = g.getopt()) != -1) { + switch (c) { + case 's': + isSSL = true; + break; + + case 'd': + mode = 1; // datagram + break; + + case 'r': + mode = 2; // raw + break; + + case 'v': + version = g.getOptarg(); + break; + + case 'b': + host = g.getOptarg(); + break; + + case 'p': + port = g.getOptarg(); + break; + + case 'h': + case '?': + case ':': + default: + System.err.println(USAGE); + return; + } // switch + } // while + + int startArgs = g.getOptind(); + if (args.length - startArgs != 2) { + System.err.println(USAGE); return; } I2PAppContext ctx = I2PAppContext.getGlobalContext(); - //String files[] = new String[args.length - 3]; - SAMStreamSend sender = new SAMStreamSend(ctx, args[0], args[1], args[2], args[3]); - String version = (args.length >= 5) ? args[4] : "1.0"; + SAMStreamSend sender = new SAMStreamSend(ctx, host, port, + args[startArgs], args[startArgs + 1]); sender.startup(version); } diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java index 24500eb62d889029bbfbeece66a51ffd4f8620ce..91c1f3893551a3310d2589eb1447684012b86e02 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java @@ -10,6 +10,8 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import gnu.getopt.Getopt; + import net.i2p.I2PAppContext; import net.i2p.data.Base32; import net.i2p.data.DataHelper; @@ -38,14 +40,59 @@ public class SAMStreamSink { /** Connection id (Integer) to peer (Flooder) */ private final Map<String, Sink> _remotePeers; + private static final String USAGE = "Usage: SAMStreamSink [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] myDestFile sinkDir"; + public static void main(String args[]) { - if (args.length < 4) { - System.err.println("Usage: SAMStreamSink samHost samPort myDestFile sinkDir [version]"); + Getopt g = new Getopt("SAM", args, "drsb:p:v:"); + boolean isSSL = false; + int mode = 0; // stream + String version = "1.0"; + String host = "127.0.0.1"; + String port = "7656"; + int c; + while ((c = g.getopt()) != -1) { + switch (c) { + case 's': + isSSL = true; + break; + + case 'd': + mode = 1; // datagram + break; + + case 'r': + mode = 2; // raw + break; + + case 'v': + version = g.getOptarg(); + break; + + case 'b': + host = g.getOptarg(); + break; + + case 'p': + port = g.getOptarg(); + break; + + case 'h': + case '?': + case ':': + default: + System.err.println(USAGE); + return; + } // switch + } // while + + int startArgs = g.getOptind(); + if (args.length - startArgs != 2) { + System.err.println(USAGE); return; } I2PAppContext ctx = I2PAppContext.getGlobalContext(); - SAMStreamSink sink = new SAMStreamSink(ctx, args[0], args[1], args[2], args[3]); - String version = (args.length >= 5) ? args[4] : "1.0"; + SAMStreamSink sink = new SAMStreamSink(ctx, host, port, + args[startArgs], args[startArgs + 1]); sink.startup(version); }