summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/Scanner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
index 079c6aa..fdd011e 100644
--- a/src/main/java/com/it_jaros/jscanner/Scanner.java
+++ b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -5,7 +5,6 @@ import java.io.IOException;
import java.net.*;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
-import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.*;
@@ -399,9 +398,9 @@ public class Scanner implements AutoCloseable {
return result;
}
- private String getBanner(SocketChannel socketChannel) {
+ private byte[] getBanner(SocketChannel socketChannel) {
try {
- return readBannerFrom(socketChannel);
+ return tryReadFrom(socketChannel);
} catch (IOException ignore) {
// ignore
}
@@ -409,12 +408,12 @@ public class Scanner implements AutoCloseable {
return null;
}
- private String readBannerFrom(SocketChannel socketChannel) throws IOException {
+ private byte[] tryReadFrom(SocketChannel socketChannel) throws IOException {
byte[] buffer = new byte[READ_BUFFER_SIZE];
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- long deadlineNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(timeoutInMillis);
boolean timedout = false;
+ long deadlineNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(timeoutInMillis);
while (!timedout) {
int bytesRead = socketChannel.read(ByteBuffer.wrap(buffer));
if (bytesRead == -1) {
@@ -430,7 +429,7 @@ public class Scanner implements AutoCloseable {
LockSupport.parkNanos(Math.min(remaining, TimeUnit.MILLISECONDS.toNanos(1000)));
}
}
- return byteArrayOutputStream.toString(StandardCharsets.UTF_8).trim();
+ return byteArrayOutputStream.toByteArray();
}
}