Returning arrays and such from server to client now works.
This commit is contained in:
@@ -112,10 +112,10 @@ handle_slave_connection (int input, int output)
|
||||
// glibtop_send_version_i (glibtop_global_server, output);
|
||||
|
||||
while (do_read (input, cmnd, sizeof (glibtop_command))) {
|
||||
size_t recv_size = 0, send_size = 0;
|
||||
size_t recv_size = 0, send_size = 0, recv_data_size = 0;
|
||||
void *recv_ptr = NULL, *recv_data_ptr = NULL;
|
||||
char parameter [BUFSIZ];
|
||||
int retval, func_retval;
|
||||
void *recv_ptr = NULL;
|
||||
glibtop_response resp;
|
||||
|
||||
fprintf (stderr, "Slave %d received command "
|
||||
@@ -151,18 +151,24 @@ handle_slave_connection (int input, int output)
|
||||
cmnd->command, parameter,
|
||||
send_size, NULL, 0,
|
||||
&recv_ptr, &recv_size,
|
||||
&recv_data_ptr, &recv_data_size,
|
||||
&func_retval);
|
||||
|
||||
fprintf (stderr, "Retval %d / %d - %p - %d\n",
|
||||
retval, func_retval, recv_ptr, recv_size);
|
||||
|
||||
if (recv_data_size) {
|
||||
fprintf (stderr, "Returning %d bytes of data from %p.\n",
|
||||
recv_data_size, recv_data_ptr);
|
||||
}
|
||||
|
||||
memset (&resp, 0, sizeof (glibtop_response));
|
||||
|
||||
resp.retval = retval;
|
||||
resp.glibtop_errno = func_retval;
|
||||
resp.recv_size = recv_size;
|
||||
resp.data_size = 0;
|
||||
resp.data_size = recv_data_size;
|
||||
|
||||
do_output (output, &resp, recv_ptr, NULL);
|
||||
do_output (output, &resp, recv_ptr, recv_data_ptr);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user