From 54472b7e6762d88658e9a26f5f6c3ed789e1e7d1 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 12 Mar 2018 14:20:13 +0100 Subject: Serverlist on command line; support new dnbd3 rpc format --- .../org/openslx/dnbd3/status/poller/ServerPoller.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java') diff --git a/src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java b/src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java index 446ab2a..97b5f5a 100644 --- a/src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java +++ b/src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java @@ -9,6 +9,8 @@ import org.openslx.dnbd3.status.rpc.Status; import com.google.gson.Gson; +import fi.iki.elonen.NanoHTTPD; + /** * Polling a dnbd3 server for its status. * @@ -19,11 +21,13 @@ public class ServerPoller private final String address; private final String server; private final Gson parseGson = new Gson(); + + private byte[] buffer = new byte[5000]; public ServerPoller( String host, int port ) { this.address = host; - this.server = "http://" + host + ":" + port + "/"; + this.server = "http://" + host + ":" + port + "/query?q=stats&q=clients"; } public Status update() @@ -50,7 +54,14 @@ public class ServerPoller // Now read data Status status; try { - status = parseGson.fromJson( new InputStreamReader( is ), Status.class ); + InputStreamReader isr = new InputStreamReader( is ); + status = parseGson.fromJson( isr, Status.class ); + while ( is.read( buffer ) > 0 ) { + // Nothing + } + NanoHTTPD.safeClose( isr ); + NanoHTTPD.safeClose( is ); + NanoHTTPD.safeClose( con.getErrorStream() ); status.setAddress( address ); status.setTimestamp( System.currentTimeMillis() ); } catch ( Exception e ) { -- cgit v1.2.3-55-g7522