summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-04-23 13:42:10 +0100
committerRichard Jones <rjones@redhat.com>2010-04-23 14:15:12 +0100
commitaf29c84cef791381ac3aebae30d8831b7de77e36 (patch)
tree153c03ba3cad67edbe509864a9fdae244951b149
parentd054dfb2f948f53188f448d2c7fade83db9bbab8 (diff)
downloadlibguestfs-af29c84cef791381ac3aebae30d8831b7de77e36.tar.gz
libguestfs-af29c84cef791381ac3aebae30d8831b7de77e36.tar.xz
libguestfs-af29c84cef791381ac3aebae30d8831b7de77e36.zip
daemon: Split out checksum type to program name mapping into function.
This shouldn't change the semantics of the program.
-rw-r--r--daemon/checksum.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/daemon/checksum.c b/daemon/checksum.c
index 13719fd7..4ee62318 100644
--- a/daemon/checksum.c
+++ b/daemon/checksum.c
@@ -27,32 +27,40 @@
#include "daemon.h"
#include "actions.h"
-static char *
-checksum (const char *csumtype, const char *path)
+static const char *
+program_of_csum (const char *csumtype)
{
- const char *program;
- char *out, *err;
- int r;
- int len;
-
if (STRCASEEQ (csumtype, "crc"))
- program = "cksum";
+ return "cksum";
else if (STRCASEEQ (csumtype, "md5"))
- program = "md5sum";
+ return "md5sum";
else if (STRCASEEQ (csumtype, "sha1"))
- program = "sha1sum";
+ return "sha1sum";
else if (STRCASEEQ (csumtype, "sha224"))
- program = "sha224sum";
+ return "sha224sum";
else if (STRCASEEQ (csumtype, "sha256"))
- program = "sha256sum";
+ return "sha256sum";
else if (STRCASEEQ (csumtype, "sha384"))
- program = "sha384sum";
+ return "sha384sum";
else if (STRCASEEQ (csumtype, "sha512"))
- program = "sha512sum";
+ return "sha512sum";
else {
reply_with_error ("unknown checksum type, expecting crc|md5|sha1|sha224|sha256|sha384|sha512");
return NULL;
}
+}
+
+static char *
+checksum (const char *csumtype, const char *path)
+{
+ const char *program;
+ char *out, *err;
+ int r;
+ int len;
+
+ program = program_of_csum (csumtype);
+ if (program == NULL)
+ return NULL;
r = command (&out, &err, program, path, NULL);
if (r == -1) {