summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--daemon/umask.c17
-rw-r--r--src/MAX_PROC_NR2
-rwxr-xr-xsrc/generator.ml11
3 files changed, 28 insertions, 2 deletions
diff --git a/daemon/umask.c b/daemon/umask.c
index 22d2cc93..a9ddeab0 100644
--- a/daemon/umask.c
+++ b/daemon/umask.c
@@ -44,3 +44,20 @@ do_umask (int mask)
return r;
}
+
+int
+do_get_umask (void)
+{
+ int r;
+
+ r = umask (022);
+ if (r == -1) {
+ reply_with_perror ("umask");
+ return -1;
+ }
+
+ /* Restore the umask, since the call above corrupted it. */
+ umask (r);
+
+ return r;
+}
diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
index b4249c47..eb08bc0b 100644
--- a/src/MAX_PROC_NR
+++ b/src/MAX_PROC_NR
@@ -1 +1 @@
-239
+240
diff --git a/src/generator.ml b/src/generator.ml
index b97584ab..61323a92 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -3034,7 +3034,8 @@ The default umask is C<022>. This is important because it
means that directories and device nodes will be created with
C<0644> or C<0755> mode even if you specify C<0777>.
-See also L<umask(2)>, C<guestfs_mknod>, C<guestfs_mkdir>.
+See also C<guestfs_get_umask>,
+L<umask(2)>, C<guestfs_mknod>, C<guestfs_mkdir>.
This call returns the previous umask.");
@@ -4484,6 +4485,14 @@ group.");
Set the value associated with C<path> to C<NULL>. This
is the same as the L<augtool(1)> C<clear> command.");
+ ("get_umask", (RInt "mask", []), 240, [FishOutput FishOutputOctal],
+ [InitEmpty, Always, TestOutputInt (
+ [["get_umask"]], 0o22)],
+ "get the current umask",
+ "\
+Return the current umask. By default the umask is C<022>
+unless it has been set by calling C<guestfs_umask>.");
+
]
let all_functions = non_daemon_functions @ daemon_functions