#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) {