summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/dnbd3/status/poller/ServerPoller.java
diff options
context:
space:
mode:
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.java15
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 ) {