diff options
author | Simon Rettberg | 2018-03-12 14:20:13 +0100 |
---|---|---|
committer | Simon Rettberg | 2018-03-12 14:20:13 +0100 |
commit | 54472b7e6762d88658e9a26f5f6c3ed789e1e7d1 (patch) | |
tree | a5360bf24df8acf85c1a0b988abe60adc5de7fc1 /src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java | |
parent | Add clustering to nodes based on address (diff) | |
download | dnbd3-status-54472b7e6762d88658e9a26f5f6c3ed789e1e7d1.tar.gz dnbd3-status-54472b7e6762d88658e9a26f5f6c3ed789e1e7d1.tar.xz dnbd3-status-54472b7e6762d88658e9a26f5f6c3ed789e1e7d1.zip |
Serverlist on command line; support new dnbd3 rpc format
Diffstat (limited to 'src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java')
-rw-r--r-- | src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java | 15 |
1 files changed, 13 insertions, 2 deletions
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 ) { |