X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fdaemon.h;h=ebbeaa2e8a9a6b2f44d09a8cc833ae45a4d7bf2c;hb=d868221d9f746ab17b83e7220cef9227fcad3696;hp=612a6a662508156efdee78876d97491df9b2b7f7;hpb=940ef864d02584720e3ef4f55d680fa3432ba508;p=libguestfs.git diff --git a/daemon/daemon.h b/daemon/daemon.h index 612a6a6..ebbeaa2 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -66,8 +66,12 @@ extern int commandrvf (char **stdoutput, char **stderror, int flags, extern char **split_lines (char *str); +extern void trim (char *str); + extern int device_name_translation (char *device, const char *func); +extern int prog_exists (const char *prog); + extern void udev_settle (void); /* This just stops gcc from giving a warning about our custom @@ -116,21 +120,25 @@ extern int sync_disks (void); /*-- in proto.c --*/ extern void main_loop (int sock) __attribute__((noreturn)); -/* ordinary daemon functions use these to indicate errors */ +/* ordinary daemon functions use these to indicate errors + * NB: you don't need to prefix the string with the current command, + * it is added automatically by the client-side RPC stubs. + */ extern void reply_with_error (const char *fs, ...) __attribute__((format (printf,1,2))); -extern void reply_with_perror (const char *fs, ...) - __attribute__((format (printf,1,2))); +extern void reply_with_perror_errno (int err, const char *fs, ...) + __attribute__((format (printf,2,3))); +#define reply_with_perror(...) reply_with_perror_errno(errno, __VA_ARGS__) /* daemon functions that receive files (FileIn) should call * receive_file for each FileIn parameter. */ -typedef int (*receive_cb) (void *opaque, const void *buf, int len); +typedef int (*receive_cb) (void *opaque, const void *buf, size_t len); extern int receive_file (receive_cb cb, void *opaque); /* daemon functions that receive files (FileIn) can call this * to cancel incoming transfers (eg. if there is a local error), - * but they MUST then call reply_with_error or reply_with_perror. + * but they MUST then call reply_with_*. */ extern void cancel_receive (void); @@ -196,7 +204,7 @@ extern void reply (xdrproc_t xdrp, char *ret); */ #define REQUIRE_ROOT_OR_RESOLVE_DEVICE(path,fail_stmt) \ do { \ - if (STREQLEN ((path), "/dev/", 5)) \ + if (STREQLEN ((path), "/dev/", 5)) \ RESOLVE_DEVICE ((path), fail_stmt); \ else { \ NEED_ROOT (fail_stmt); \