summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-30 22:25:48 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-30 22:26:34 +0200
commitac649d2b2f84923da29ea5ce14ee0247086dc33d (patch)
tree1a1c340328ec2436b23f1753769e27680f48129c /src/main/java
parent1a7d133a7b9133ad14262a5f6a19c33592693e7b (diff)
Fix bug wrong primitive used for recv method that needs long instead of
int
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/it_jaros/jns/scan/ExceptionInfo.java2
-rw-r--r--src/main/java/com/it_jaros/jns/scan/engine/ScanUdpPortTask.java2
-rw-r--r--src/main/java/com/it_jaros/jns/scan/engine/platform/linux/LinuxUdpSocketAPI.java10
3 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/com/it_jaros/jns/scan/ExceptionInfo.java b/src/main/java/com/it_jaros/jns/scan/ExceptionInfo.java
index cdbf741..417ea23 100644
--- a/src/main/java/com/it_jaros/jns/scan/ExceptionInfo.java
+++ b/src/main/java/com/it_jaros/jns/scan/ExceptionInfo.java
@@ -10,6 +10,8 @@ public record ExceptionInfo(
return ExceptionInfo.from(cause);
}
+ // for debugging only
+ //t.printStackTrace();
return new ExceptionInfo(
t.getClass().getName(),
t.getMessage()
diff --git a/src/main/java/com/it_jaros/jns/scan/engine/ScanUdpPortTask.java b/src/main/java/com/it_jaros/jns/scan/engine/ScanUdpPortTask.java
index 21b93f8..0c1b9e0 100644
--- a/src/main/java/com/it_jaros/jns/scan/engine/ScanUdpPortTask.java
+++ b/src/main/java/com/it_jaros/jns/scan/engine/ScanUdpPortTask.java
@@ -81,7 +81,7 @@ public class ScanUdpPortTask implements Callable<PortResult> {
MemorySegment recvBuffer = arena.allocate(RECV_BUFFER_SIZE);
try {
- int bytesRead = linuxUdpSocketAPI.recv(fd, recvBuffer);
+ long bytesRead = linuxUdpSocketAPI.recv(fd, recvBuffer);
if (bytesRead >= 0) {
return PortState.OPEN;
}
diff --git a/src/main/java/com/it_jaros/jns/scan/engine/platform/linux/LinuxUdpSocketAPI.java b/src/main/java/com/it_jaros/jns/scan/engine/platform/linux/LinuxUdpSocketAPI.java
index fe087d7..bbd2009 100644
--- a/src/main/java/com/it_jaros/jns/scan/engine/platform/linux/LinuxUdpSocketAPI.java
+++ b/src/main/java/com/it_jaros/jns/scan/engine/platform/linux/LinuxUdpSocketAPI.java
@@ -15,7 +15,6 @@ public class LinuxUdpSocketAPI {
public static final int AF_INET6 = 10;
public static final int EAGAIN = 11;
public static final int ECONNREFUSED = 111;
- public static final int EWOULDBLOCK = 11;
public static final int SOCK_DGRAM = 2;
public static final int SOL_SOCKET = 1;
public static final int SO_RCVTIMEO = 20;
@@ -117,7 +116,7 @@ public class LinuxUdpSocketAPI {
System.arraycopy(argv, 0, newArgv, 1, argv.length);
try {
final T rc = callNativeMethod(methodHandle, newArgv);
- if (rc.intValue() < 0) {
+ if (rc.longValue() < 0) {
throw new RawLinuxSocketException(methodHandle.toString(), errno(state));
}
return rc;
@@ -144,11 +143,12 @@ public class LinuxUdpSocketAPI {
}
public void sendEmptyDatagram(int fd) throws IOException {
- wrapNativeMethodCall(SEND, fd, MemorySegment.NULL, 0L, 0);
+ MemorySegment buffer = arena.allocate(1L);
+ wrapNativeMethodCall(SEND, fd, buffer, buffer.byteSize(), 0);
}
- public int recv(int fd, MemorySegment buffer) throws IOException {
- return wrapNativeMethodCall(RECV, fd, buffer, (int) buffer.byteSize(), 0);
+ public long recv(int fd, MemorySegment buffer) throws IOException {
+ return wrapNativeMethodCall(RECV, fd, buffer, buffer.byteSize(), 0);
}
public void setReceiveTimeout(int fd, long timeoutInMillis) throws IOException {