X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fmknod.c;h=ee2d1ffa108add1f42b58df9535291fd5fbc6cc1;hb=2ba2ddf2113db7bb2afe3f739dc3cbaa5416a4ba;hp=adaeb80e6e797cb54fd43bf12a565d8a8d8559d5;hpb=84fc760439e82e6b3616abd0d1f9bd7d7eb01ec0;p=libguestfs.git diff --git a/daemon/mknod.c b/daemon/mknod.c index adaeb80..ee2d1ff 100644 --- a/daemon/mknod.c +++ b/daemon/mknod.c @@ -26,25 +26,49 @@ #include #include -#include "../src/guestfs_protocol.h" +#include "guestfs_protocol.h" #include "daemon.h" #include "actions.h" +#include "optgroups.h" + +#ifdef HAVE_MKNOD +int +optgroup_mknod_available (void) +{ + return 1; +} +#else +int +optgroup_mknod_available (void) +{ + return 0; +} +#endif int do_mknod (int mode, int devmajor, int devminor, const char *path) { +#ifdef HAVE_MKNOD int r; + if (mode < 0) { + reply_with_error ("%s: mode is negative", path); + return -1; + } + CHROOT_IN; r = mknod (path, mode, makedev (devmajor, devminor)); CHROOT_OUT; if (r == -1) { - reply_with_perror ("mknod: %s", path); + reply_with_perror ("%s", path); return -1; } return 0; +#else + NOT_AVAILABLE (-1); +#endif } int