Returning arrays and such from server to client now works.

This commit is contained in:
Martin Baulig
2000-01-09 20:13:51 +00:00
parent ba466fe572
commit 995b506920
4 changed files with 25 additions and 13 deletions

View File

@@ -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);
}
}