X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fdaemon.h;h=ac6847927116bb3c89f5f28411b4fe1810b5dd68;hb=0d5b38f1d957609f3f96739507f491a6672f01d5;hp=86c68769f4b808a4cf397a61b708dfa2a43bea4a;hpb=abac360f324d8c881878c5d9b7fb64be93981125;p=libguestfs.git diff --git a/daemon/daemon.h b/daemon/daemon.h index 86c6876..ac68479 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -47,12 +47,21 @@ extern void sort_strings (char **argv, int len); extern void free_strings (char **argv); extern void free_stringslen (char **argv, int len); -extern int command (char **stdoutput, char **stderror, const char *name, ...); -extern int commandr (char **stdoutput, char **stderror, const char *name, ...); -extern int commandv (char **stdoutput, char **stderror, - char *const *argv); -extern int commandrv (char **stdoutput, char **stderror, - char const* const *argv); +#define command(out,err,name,...) commandf((out),(err),0,(name),__VA_ARGS__) +#define commandr(out,err,name,...) commandrf((out),(err),0,(name),__VA_ARGS__) +#define commandv(out,err,argv) commandvf((out),(err),0,(argv)) +#define commandrv(out,err,argv) commandrvf((out),(err),0,(argv)) + +#define COMMAND_FLAG_FOLD_STDOUT_ON_STDERR 1 + +extern int commandf (char **stdoutput, char **stderror, int flags, + const char *name, ...); +extern int commandrf (char **stdoutput, char **stderror, int flags, + const char *name, ...); +extern int commandvf (char **stdoutput, char **stderror, int flags, + char const *const *argv); +extern int commandrvf (char **stdoutput, char **stderror, int flags, + char const* const *argv); extern char **split_lines (char *str); @@ -155,7 +164,7 @@ extern void reply (xdrproc_t xdrp, char *ret); */ #define RESOLVE_DEVICE(path,fail_stmt) \ do { \ - if (strncmp ((path), "/dev/", 5) != 0) { \ + if (STRNEQLEN ((path), "/dev/", 5)) { \ reply_with_error ("%s: %s: expecting a device name", __func__, (path)); \ fail_stmt; \ } \ @@ -175,7 +184,7 @@ extern void reply (xdrproc_t xdrp, char *ret); */ #define REQUIRE_ROOT_OR_RESOLVE_DEVICE(path,fail_stmt) \ do { \ - if (strncmp ((path), "/dev/", 5) == 0) \ + if (STREQLEN ((path), "/dev/", 5)) \ RESOLVE_DEVICE ((path), fail_stmt); \ else { \ NEED_ROOT (fail_stmt); \ @@ -225,4 +234,14 @@ extern void reply (xdrproc_t xdrp, char *ret); # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #endif +#define STREQ(a,b) (strcmp((a),(b)) == 0) +#define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0) +#define STRNEQ(a,b) (strcmp((a),(b)) != 0) +#define STRCASENEQ(a,b) (strcasecmp((a),(b)) != 0) +#define STREQLEN(a,b,n) (strncmp((a),(b),(n)) == 0) +#define STRCASEEQLEN(a,b,n) (strncasecmp((a),(b),(n)) == 0) +#define STRNEQLEN(a,b,n) (strncmp((a),(b),(n)) != 0) +#define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0) +#define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0) + #endif /* GUESTFSD_DAEMON_H */