diff options
author | Martin Baulig <martin@src.gnome.org> | 1998-06-14 21:32:00 +0000 |
---|---|---|
committer | Martin Baulig <martin@src.gnome.org> | 1998-06-14 21:32:00 +0000 |
commit | 8d785595975142f7f9767144814ef525a6586ab7 (patch) | |
tree | 9ad6cd1e521392dd9323d04501f1fb23a62c509a /lib/write.c | |
parent | 2a281d0a53a1ac9a3032204658a3d3f83078a5af (diff) | |
download | libgtop-8d785595975142f7f9767144814ef525a6586ab7.tar.gz |
Did some more work on the daemon.
Diffstat (limited to 'lib/write.c')
-rw-r--r-- | lib/write.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/lib/write.c b/lib/write.c index ac03ecae..f91858ee 100644 --- a/lib/write.c +++ b/lib/write.c @@ -26,13 +26,35 @@ void glibtop_write_l (glibtop *server, size_t size, void *buf) { + int ret; + glibtop_init_r (&server, 0, 0); - if (write (server->output [1], &size, sizeof (size_t)) < 0) - glibtop_error_r (server, _("write size: %s"), strerror (errno)); +#ifdef DEBUG + fprintf (stderr, "LIBRARY: writing %d bytes = %d.\n", sizeof (size_t), size); +#endif + + if (server->socket) { + ret = send (server->socket, &size, sizeof (size_t), 0); + } else { + ret = write (server->output [1], &size, sizeof (size_t)); + } + + if (ret < 0) + glibtop_error_io_r (server, _("write size")); if (!size) return; - - if (write (server->output [1], buf, size) < 0) - glibtop_error_r (server, _("write %d bytes: %s"), size, strerror (errno)); + +#ifdef DEBUG + fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size); +#endif + + if (server->socket) { + ret = send (server->socket, buf, size, 0); + } else { + ret = write (server->output [1], buf, size); + } + + if (ret < 0) + glibtop_error_io_r (server, _("write %d bytes"), size); } |