summaryrefslogtreecommitdiffstats
path: root/src/server/rpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/rpc.c')
-rw-r--r--src/server/rpc.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/server/rpc.c b/src/server/rpc.c
index d02ff92..ea1eccf 100644
--- a/src/server/rpc.c
+++ b/src/server/rpc.c
@@ -17,14 +17,14 @@ static void clientsToJson(json_t *jsonClients);
void rpc_sendStatsJson(int sock)
{
- const uint64_t receivedBytes = uplink_getTotalBytesReceived();
- const uint64_t sentBytes = net_getTotalBytesSent();
+ const uint64_t bytesReceived = uplink_getTotalBytesReceived();
+ const uint64_t bytesSent = net_getTotalBytesSent();
const int uptime = dnbd3_serverUptime();
json_t *jsonClients = json_array();
clientsToJson( jsonClients );
- json_t *statisticsJson = json_pack( "{sIsI}", "receivedBytes", (json_int_t) receivedBytes, "sentBytes", (json_int_t) sentBytes );
+ json_t *statisticsJson = json_pack( "{sIsI}", "bytesReceived", (json_int_t) bytesReceived, "bytesSent", (json_int_t) bytesSent );
json_object_set_new( statisticsJson, "clients", jsonClients );
json_object_set_new( statisticsJson, "images", image_fillJson() );
json_object_set_new( statisticsJson, "uptime", json_integer( uptime ) );
@@ -47,15 +47,17 @@ static void clientsToJson(json_t *jsonClients)
json_t *clientStats;
int i;
char clientName[100];
- const char *imageName;
spin_lock( &_clients_lock );
for (i = 0; i < _num_clients; ++i) {
if ( _clients[i] == NULL ) continue;
spin_lock( &_clients[i]->lock );
- host_to_string( &_clients[i]->host, clientName, sizeof(clientName) );
- imageName =_clients[i]->image != NULL ? _clients[i]->image->lower_name : "NULL";
- clientStats = json_pack( "{sssssI}", "client", clientName, "image", imageName , "bytesSent", (json_int_t)_clients[i]->bytesSent );
- json_array_append_new( jsonClients, clientStats );
+ if ( _clients[i]->image != NULL ) {
+ if ( !host_to_string( &_clients[i]->host, clientName, sizeof(clientName) ) ) {
+ strcpy( clientName, "???" );
+ }
+ clientStats = json_pack( "{sssisI}", "client", clientName, "image", _clients[i]->image->id, "bytesSent", (json_int_t)_clients[i]->bytesSent );
+ json_array_append_new( jsonClients, clientStats );
+ }
spin_unlock( &_clients[i]->lock );
}
spin_unlock( &_clients_lock );