X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fmknod.c;h=46a183924252c79d22f7f65f8aa9106e5d4252b1;hb=ce68503d5c74585f7f4df8a9ad3d54f927dfbcad;hp=315ea7df7b51b65299eec0e4c8d85ae3dbd01141;hpb=a7b73d4a1e09f12b2002083618056f0c823c1dcf;p=libguestfs.git diff --git a/daemon/mknod.c b/daemon/mknod.c index 315ea7d..46a1839 100644 --- a/daemon/mknod.c +++ b/daemon/mknod.c @@ -29,14 +29,27 @@ #include "../src/guestfs_protocol.h" #include "daemon.h" #include "actions.h" +#include "optgroups.h" +#ifdef HAVE_MKNOD int -do_mknod (int mode, int devmajor, int devminor, char *path) +optgroup_mknod_available (void) { - int r; + return 1; +} +#else +int +optgroup_mknod_available (void) +{ + return 0; +} +#endif - NEED_ROOT (-1); - ABS_PATH (path, -1); +int +do_mknod (int mode, int devmajor, int devminor, const char *path) +{ +#ifdef HAVE_MKNOD + int r; CHROOT_IN; r = mknod (path, mode, makedev (devmajor, devminor)); @@ -48,22 +61,25 @@ do_mknod (int mode, int devmajor, int devminor, char *path) } return 0; +#else + NOT_AVAILABLE (-1); +#endif } int -do_mkfifo (int mode, char *path) +do_mkfifo (int mode, const char *path) { return do_mknod (mode | S_IFIFO, 0, 0, path); } int -do_mknod_b (int mode, int devmajor, int devminor, char *path) +do_mknod_b (int mode, int devmajor, int devminor, const char *path) { return do_mknod (mode | S_IFBLK, devmajor, devminor, path); } int -do_mknod_c (int mode, int devmajor, int devminor, char *path) +do_mknod_c (int mode, int devmajor, int devminor, const char *path) { return do_mknod (mode | S_IFCHR, devmajor, devminor, path); }