From 3c02e16c39aa0fd5b291faf610d9d71023392a2e Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sun, 29 Jun 2008 15:59:28 -0400 Subject: transport/symbol rework: kernel-only probes working --- runtime/staprun/common.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'runtime/staprun/common.c') diff --git a/runtime/staprun/common.c b/runtime/staprun/common.c index dca45e4d..fd16b4b8 100644 --- a/runtime/staprun/common.c +++ b/runtime/staprun/common.c @@ -14,6 +14,8 @@ #include #include #include +#include + /* variables needed by parse_args() */ int verbose; @@ -323,11 +325,11 @@ err: * @len: length of the data to be sent * * Returns 0 on success, negative otherwise. - * XXX: no, it doesn't ... it should return @len on success. */ int send_request(int type, void *data, int len) { char buf[1024]; + int rc = 0; /* Before doing memcpy, make sure 'buf' is big enough. */ if ((len + 4) > (int)sizeof(buf)) { @@ -337,5 +339,8 @@ int send_request(int type, void *data, int len) memcpy(buf, &type, 4); memcpy(&buf[4], data, len); - return write(control_channel, buf, len + 4); + assert (control_channel >= 0); + rc = write (control_channel, buf, len + 4); + if (rc < 0) return rc; + return (rc != len+4); } -- cgit