X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fdaemon.h;h=bb1ebb3ad9c4425f0f4431774b0e6409a0a4e888;hb=2109327021f4d464e2693e507fa92f1497ba0792;hp=612a6a662508156efdee78876d97491df9b2b7f7;hpb=940ef864d02584720e3ef4f55d680fa3432ba508;p=libguestfs.git diff --git a/daemon/daemon.h b/daemon/daemon.h index 612a6a6..bb1ebb3 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -116,11 +116,15 @@ 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. @@ -130,7 +134,7 @@ 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 +200,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); \