diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dd2f6b..ece7d10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed -- Changed pretty much all names and created an executable main class. +- Fixed showpaths issues. [#2](https://github.com/netsec-ethz/scion-java-multiping/pull/2) ## [0.1.0] - 2026-03-11 @@ -20,6 +20,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Everything + [#1](https://github.com/netsec-ethz/scion-java-multiping/pull/1) + ### Changed @@ -33,11 +35,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Nothing -[Unreleased]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.6.1...HEAD -[0.6.1]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.6.0...v0.6.1 -[0.6.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.5.0...v0.6.0 -[0.5.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.4.0...v0.5.0 -[0.4.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.3.0...v0.4.0 -[0.3.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.2.0...v0.3.0 -[0.2.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...v0.2.0 +[Unreleased]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...HEAD +[0.2.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...v0.0.1 [0.1.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/init_root_commit...v0.1.0 diff --git a/src/main/java/org/scion/cli/Cli.java b/src/main/java/org/scion/cli/Cli.java index 8f5c3eb..8482851 100644 --- a/src/main/java/org/scion/cli/Cli.java +++ b/src/main/java/org/scion/cli/Cli.java @@ -139,8 +139,8 @@ private static void printUsageAddress() { println(""); println("Flags:"); println(" -h, --help help for address"); - println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); - println(" --json Write the output as machine readable json"); + // println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); + // println(" --json Write the output as machine readable json"); println(" -l, --local ip Local IP address to listen on. (default invalid IP)"); println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")"); } @@ -178,9 +178,9 @@ static void printUsagePing() { println(" -h, --help help for ping"); // println(" -i, --interactive interactive mode"); println(" --interval duration time between packets (default 1s)"); - println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); + // println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); println(" -l, --local ip Local IP address to listen on. (default invalid IP)"); - println(" --log.level string Console logging level verbosity (debug|info|error)"); + // println(" --log.level string Console logging level verbosity (debug|info|error)"); // println(" --max-mtu choose the payload size such that the sent SCION // packet including the SCION Header,"); // println(" SCMP echo header and payload are equal to the MTU @@ -192,7 +192,7 @@ static void printUsagePing() { // println(" the desired size must provide enough space for the // required headers. This flag"); // println(" overrides the 'payload_size' flag."); - println(" --port Use specified local port"); + println(" --port uint16 use specified local port"); // println(" --refresh set refresh flag for path request"); println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")"); // println(" --sequence string Space separated list of hop predicates"); - println(" --shim Start with SHIM enabled (default disabled)."); + println(" --shim start with SHIM enabled (default disabled)."); println(" --timeout duration timeout per packet (default 1s)"); - println(" --url url Use and resolve a url as destination address"); + println(" --url url use and resolve a url as destination address"); } static void printUsageShowpaths() { @@ -275,29 +275,30 @@ static void printUsageShowpaths() { println(" jpan-cli showpaths 1-ff00:0:110 --no-probe"); println(""); println("Flags:"); - println(" --epic Enable EPIC."); + // println(" --epic Enable EPIC."); println(" -e, --extended Show extended path meta data information"); - println( - " --format string Specify the output format (human|json|yaml) (default \"human\")"); + // println( + // " --format string Specify the output format (human|json|yaml) (default + // \"human\")"); println(" -h, --help help for showpaths"); - println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); + // println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)"); println(" -l, --local ip Local IP address to listen on. (default invalid IP)"); - println(" --log.level string Console logging level verbosity (debug|info|error)"); + // println(" --log.level string Console logging level verbosity + // (debug|info|error)"); println( - " -m, --maxpaths int Maximum number of paths that are displayed (default 10)"); - println(" --no-color disable colored output"); - println(" --no-probe Do not probe the paths and print the health status"); - println(" -r, --refresh Set refresh flag for SCION Daemon path request"); + " -m, --maxpaths int maximum number of paths that are displayed (default 10)"); + // println(" --no-color disable colored output"); + // println(" --no-probe Do not probe the paths and print the health + // status"); + // println(" -r, --refresh Set refresh flag for SCION Daemon path request"); println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")"); - println(" --sequence string Space separated list of hop predicates"); - println(" --timeout duration Timeout (default 5s)"); - println(" --tracing.agent string Tracing agent address"); + // println(" --sequence string Space separated list of hop predicates"); + // println(" --timeout duration Timeout (default 5s)"); + // println(" --tracing.agent string Tracing agent address"); } static void printUsagePingResponder() { - println(" This command starts a server that responds to incoming echo requests."); - println(" It takes a configuration file `ping-responder-config.json` as input."); - println(" See README.md for more information."); + println("`ping-responder` starts a server process that responds to incoming echo requests."); println(""); println("Usage:"); @@ -314,7 +315,7 @@ static void printUsagePingResponder() { println("Flags:"); // println(" -l, --local ip Local IP address to listen on. (default invalid // IP)"); - println(" --port Use specified local port."); + println(" --port uint16 use specified local port."); } private static void printSequenceHelp() { diff --git a/src/main/java/org/scion/cli/Showpaths.java b/src/main/java/org/scion/cli/Showpaths.java index 695f899..7c748a2 100644 --- a/src/main/java/org/scion/cli/Showpaths.java +++ b/src/main/java/org/scion/cli/Showpaths.java @@ -48,6 +48,7 @@ public class Showpaths { private static InetSocketAddress daemon; private static Long isdAs; private static boolean extended = false; + private static int maxPaths = 10; public static void main(String... args) { handleExit(() -> run(args)); @@ -69,6 +70,10 @@ private static void parseArgs(String[] argsArray) { List args = new ArrayList<>(Arrays.asList(argsArray)); while (!args.isEmpty()) { switch (args.get(0)) { + case "-e": + case "--extended": + extended = true; + break; case "-h": case "--help": Cli.printUsageShowpaths(); @@ -81,17 +86,20 @@ private static void parseArgs(String[] argsArray) { case "--local": localIP = parseIP("local", args); break; + case "-m": + case "--maxpaths": + maxPaths = parseInt("--maxpaths", args); + break; case "--sciond": daemon = parseAddress("sciond", args); break; default: if (isdAs == null) { isdAs = parseIsdAs(args); - if (isdAs != null) { - continue; - } + continue; + } else { + throw new ExitCodeException(2, "Unknown option: " + args.get(0)); } - throw new ExitCodeException(2, "Unknown option: " + args.get(0)); } args.remove(0); } @@ -116,6 +124,9 @@ public static int run() throws IOException { int id = 0; for (Path path : paths) { + if (id >= maxPaths) { + break; + } String localIP; try (ScionDatagramChannel channel = ScionDatagramChannel.open()) { channel.connect(path);