summaryrefslogtreecommitdiff
path: root/lib/write.c
diff options
context:
space:
mode:
authorMartin Baulig <martin@src.gnome.org>1998-06-14 21:32:00 +0000
committerMartin Baulig <martin@src.gnome.org>1998-06-14 21:32:00 +0000
commit8d785595975142f7f9767144814ef525a6586ab7 (patch)
tree9ad6cd1e521392dd9323d04501f1fb23a62c509a /lib/write.c
parent2a281d0a53a1ac9a3032204658a3d3f83078a5af (diff)
downloadlibgtop-8d785595975142f7f9767144814ef525a6586ab7.tar.gz
Did some more work on the daemon.
Diffstat (limited to 'lib/write.c')
-rw-r--r--lib/write.c32
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);
}