git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix code which looked for leaked FDs between each command.
[libguestfs.git]
/
daemon
/
proto.c
diff --git
a/daemon/proto.c
b/daemon/proto.c
index
d935ded
..
c22bbee
100644
(file)
--- a/
daemon/proto.c
+++ b/
daemon/proto.c
@@
-29,6
+29,8
@@
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
+#include "ignore-value.h"
+
#include "daemon.h"
#include "../src/guestfs_protocol.h"
#include "daemon.h"
#include "../src/guestfs_protocol.h"
@@
-45,7
+47,7
@@
main_loop (int _sock)
XDR xdr;
char *buf;
char lenbuf[4];
XDR xdr;
char *buf;
char lenbuf[4];
- u
nsigned
len;
+ u
int32_t
len;
struct guestfs_message_header hdr;
struct timeval start_t, end_t;
int64_t start_us, end_us, elapsed_us;
struct guestfs_message_header hdr;
struct timeval start_t, end_t;
int64_t start_us, end_us, elapsed_us;
@@
-53,16
+55,16
@@
main_loop (int _sock)
sock = _sock;
for (;;) {
sock = _sock;
for (;;) {
-#if 0
/* Most common errors are leaked memory and leaked file descriptors,
* so run this between each command:
*/
/* Most common errors are leaked memory and leaked file descriptors,
* so run this between each command:
*/
- if (verbose)
- system ("ls -l /proc/self/fd");
-#endif
+ if (verbose && 0)
+ ignore_value (system ("ls -l /proc/self/fd"));
/* Read the length word. */
/* Read the length word. */
- xread (sock, lenbuf, 4);
+ if (xread (sock, lenbuf, 4) == -1)
+ exit (1);
+
xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE);
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE);
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
@@
-79,14
+81,15
@@
main_loop (int _sock)
continue;
}
continue;
}
- xread (sock, buf, len);
+ if (xread (sock, buf, len) == -1)
+ exit (1);
-#if
0
+#if
def ENABLE_PACKET_DUMP
if (verbose) {
if (verbose) {
-
in
t i, j;
+
size_
t i, j;
for (i = 0; i < len; i += 16) {
for (i = 0; i < len; i += 16) {
- printf ("%04x: ", i);
+ printf ("%04
z
x: ", i);
for (j = i; j < MIN (i+16, len); ++j)
printf ("%02x ", (unsigned char) buf[j]);
for (; j < i+16; ++j)
for (j = i; j < MIN (i+16, len); ++j)
printf ("%02x ", (unsigned char) buf[j]);
for (; j < i+16; ++j)
@@
-307,7
+310,9
@@
receive_file (receive_cb cb, void *opaque)
for (;;) {
/* Read the length word. */
for (;;) {
/* Read the length word. */
- xread (sock, lenbuf, 4);
+ if (xread (sock, lenbuf, 4) == -1)
+ exit (1);
+
xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE);
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE);
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
@@
-327,7
+332,8
@@
receive_file (receive_cb cb, void *opaque)
return -1;
}
return -1;
}
- xread (sock, buf, len);
+ if (xread (sock, buf, len) == -1)
+ exit (1);
xdrmem_create (&xdr, buf, len, XDR_DECODE);
memset (&chunk, 0, sizeof chunk);
xdrmem_create (&xdr, buf, len, XDR_DECODE);
memset (&chunk, 0, sizeof chunk);
@@
-444,10
+450,8
@@
check_for_library_cancellation (void)
/* Read the message from the daemon. */
r = xread (sock, buf, sizeof buf);
/* Read the message from the daemon. */
r = xread (sock, buf, sizeof buf);
- if (r == -1) {
- perror ("read");
+ if (r == -1)
return 0;
return 0;
- }
xdrmem_create (&xdr, buf, sizeof buf, XDR_DECODE);
xdr_uint32_t (&xdr, &flag);
xdrmem_create (&xdr, buf, sizeof buf, XDR_DECODE);
xdr_uint32_t (&xdr, &flag);