X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2Frc.c;h=e637fc6ca8f77270fda66abfa9a5a8ff0f1822d9;hp=182c4f4a3c80d4702532027e1e4fe319ea272b45;hb=0353688577a27749f40bcc060e5703102c5a9649;hpb=f9071160c1a5fe21a825398a81ba3ca584892a4e diff --git a/fish/rc.c b/fish/rc.c index 182c4f4..e637fc6 100644 --- a/fish/rc.c +++ b/fish/rc.c @@ -66,7 +66,7 @@ receive_stdout (int s) cmptr = malloc (controllen); if (NULL == cmptr) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } } @@ -88,7 +88,7 @@ receive_stdout (int s) ssize_t n = recvmsg (s, &msg, 0); if (n < 0) { perror ("recvmsg stdout fd"); - exit (1); + exit (EXIT_FAILURE); } h = CMSG_FIRSTHDR(&msg); @@ -135,7 +135,7 @@ send_stdout (int s) cmptr = malloc (controllen); if (NULL == cmptr) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } } cmptr->cmsg_level = SOL_SOCKET; @@ -152,7 +152,7 @@ send_stdout (int s) if (sendmsg (s, &msg, 0) != 1) { perror ("sendmsg stdout fd"); - exit (1); + exit (EXIT_FAILURE); } } @@ -177,14 +177,15 @@ rc_listen (void) char sockpath[128]; pid_t pid; struct sockaddr_un addr; - int sock, s, i; + int sock, s; + size_t i; FILE *fp; XDR xdr, xdr2; guestfish_hello hello; guestfish_call call; guestfish_reply reply; char **argv; - int argc; + size_t argc; memset (&hello, 0, sizeof hello); memset (&call, 0, sizeof call); @@ -192,7 +193,7 @@ rc_listen (void) pid = fork (); if (pid == -1) { perror ("fork"); - exit (1); + exit (EXIT_FAILURE); } if (pid > 0) { @@ -217,16 +218,16 @@ rc_listen (void) sock = socket (AF_UNIX, SOCK_STREAM, 0); if (sock == -1) { perror ("socket"); - exit (1); + exit (EXIT_FAILURE); } unlink (sockpath); if (bind (sock, (struct sockaddr *) &addr, sizeof addr) == -1) { perror (sockpath); - exit (1); + exit (EXIT_FAILURE); } if (listen (sock, 4) == -1) { perror ("listen"); - exit (1); + exit (EXIT_FAILURE); } /* Now close stdout and substitute /dev/null. This is necessary @@ -250,7 +251,7 @@ rc_listen (void) goto error; } - if (strcmp (hello.vers, PACKAGE_VERSION) != 0) { + if (STRNEQ (hello.vers, PACKAGE_VERSION)) { fprintf (stderr, _("guestfish: protocol error: version mismatch, server version '%s' does not match client version '%s'. The two versions must match exactly.\n"), PACKAGE_VERSION, hello.vers); @@ -265,7 +266,7 @@ rc_listen (void) argv = realloc (call.args.args_val, (argc+1) * sizeof (char *)); if (argv == NULL) { perror ("realloc"); - exit (1); + exit (EXIT_FAILURE); } call.args.args_val = argv; argv[argc] = NULL; @@ -290,7 +291,7 @@ rc_listen (void) /* Exit on error? */ if (call.exit_on_error && reply.r == -1) { unlink (sockpath); - exit (1); + exit (EXIT_FAILURE); } } @@ -302,12 +303,12 @@ rc_listen (void) } unlink (sockpath); - exit (0); + exit (EXIT_SUCCESS); } /* Remote control client. */ int -rc_remote (int pid, const char *cmd, int argc, char *argv[], +rc_remote (int pid, const char *cmd, size_t argc, char *argv[], int exit_on_error) { guestfish_hello hello;