diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7b076ed..cee7369 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,51 +7,52 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
--- Nothing yet
+- Update to JPAN 0.7.0 and improve SCMP error handling.
+ [#18](https://github.com/netsec-ethz/jpan-cli/pull/18)
## [0.2.2] - 2026-03-27
### Fixed
- Fixed local port option fow showpaths probing, document --healthy-only for ping and traceroute.
- [#11](https://github.com/netsec-ethz/scion-java-multiping/pull/11)
+ [#11](https://github.com/netsec-ethz/jpan-cli/pull/11)
- Enable SHIM by default. Fix for #8.
- [#12](https://github.com/netsec-ethz/scion-java-multiping/pull/12)
+ [#12](https://github.com/netsec-ethz/jpan-cli/pull/12)
- Improve SCMP error handling.
- [#13](https://github.com/netsec-ethz/scion-java-multiping/pull/13)
+ [#13](https://github.com/netsec-ethz/jpan-cli/pull/13)
- Local AS causes exception.
- [#15](https://github.com/netsec-ethz/scion-java-multiping/pull/15)
+ [#15](https://github.com/netsec-ethz/jpan-cli/pull/15)
## [0.2.1] - 2026-03-27
### Fixed
- Fixed showpaths showing wrong path status (of by 1 error).
- [#9](https://github.com/netsec-ethz/scion-java-multiping/pull/9)
+ [#9](https://github.com/netsec-ethz/jpan-cli/pull/9)
- Fixed exception when path probes did no return.
- [#10](https://github.com/netsec-ethz/scion-java-multiping/pull/10)
+ [#10](https://github.com/netsec-ethz/jpan-cli/pull/10)
## [0.2.0] - 2026-03-17
### Added
- Support for --log.level
- [#4](https://github.com/netsec-ethz/scion-java-multiping/pull/4)
+ [#4](https://github.com/netsec-ethz/jpan-cli/pull/4)
- Added path probing for showpaths and --no-probe
- [#5](https://github.com/netsec-ethz/scion-java-multiping/pull/5)
+ [#5](https://github.com/netsec-ethz/jpan-cli/pull/5)
- Added path probing for ping and --healthy-only
- [#6](https://github.com/netsec-ethz/scion-java-multiping/pull/6)
+ [#6](https://github.com/netsec-ethz/jpan-cli/pull/6)
### Fixed
- Fixed showpaths issues.
- [#2](https://github.com/netsec-ethz/scion-java-multiping/pull/2)
+ [#2](https://github.com/netsec-ethz/jpan-cli/pull/2)
## [0.1.0] - 2026-03-11
### Added
- Everything
- [#1](https://github.com/netsec-ethz/scion-java-multiping/pull/1)
+ [#1](https://github.com/netsec-ethz/jpan-cli/pull/1)
### Changed
diff --git a/pom.xml b/pom.xml
index d8f95f8..85de9c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.scion
jpan-cli
- 0.1.0-SNAPSHOT
+ 0.2.3-SNAPSHOT
UTF-8
@@ -83,7 +83,7 @@
org.scion
jpan
- 0.6.1
+ 0.7.0
diff --git a/src/main/java/org/scion/cli/Address.java b/src/main/java/org/scion/cli/Address.java
index 366442a..c5279b7 100644
--- a/src/main/java/org/scion/cli/Address.java
+++ b/src/main/java/org/scion/cli/Address.java
@@ -25,7 +25,7 @@
import org.scion.cli.util.Errors;
import org.scion.cli.util.ExitCodeException;
import org.scion.jpan.*;
-import org.scion.jpan.internal.IPHelper;
+import org.scion.jpan.internal.util.IPHelper;
/**
* This demo mimics the "scion ping" command available in scionproto ( probe(Integer port, int timeoutMs, List paths) {
if (paths.size() == 1 && paths.get(0).getRawPath().length == 0) {
- // emtpy path
+ // empty path
Map result = new HashMap<>();
result.put(0, Status.Alive);
return result;
@@ -102,7 +104,19 @@ public void onTimeout(Scmp.TimedMessage msg) {
public void onError(Scmp.ErrorMessage msg) {
errors.incrementAndGet();
barrier.countDown();
- result.put(msg.getSequenceNumber(), Status.SCMP);
+ try {
+ Scmp.Message m2;
+ m2 = ScmpParser.consume(ByteBuffer.wrap(msg.getCause()), (ResponsePath) msg.getPath());
+ Scmp.TypeCode tc = m2.getTypeCode();
+ if (tc == Scmp.TypeCode.TYPE_128 || tc == Scmp.TypeCode.TYPE_130) {
+ if (m2 instanceof Scmp.TimedMessage) {
+ int sn = ((Scmp.TimedMessage) m2).getSequenceNumber();
+ result.put(sn, Status.SCMP);
+ }
+ }
+ } catch (RuntimeException e) {
+ Util.println("Could not decode Scmp Error (" + msg.getTypeCode() + "): " + e.getMessage());
+ }
}
@Override
diff --git a/src/main/java/org/scion/cli/util/Util.java b/src/main/java/org/scion/cli/util/Util.java
index 5746416..589751d 100644
--- a/src/main/java/org/scion/cli/util/Util.java
+++ b/src/main/java/org/scion/cli/util/Util.java
@@ -27,9 +27,9 @@
import org.scion.jpan.Scion;
import org.scion.jpan.ScionService;
import org.scion.jpan.ScionUtil;
-import org.scion.jpan.internal.IPHelper;
import org.scion.jpan.internal.ScionAddress;
import org.scion.jpan.internal.Shim;
+import org.scion.jpan.internal.util.IPHelper;
public class Util {