From d4d3a3c54f5e26dec0cc79e273dc488f8a47f2b3 Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Fri, 5 Jul 2024 11:32:51 -0700 Subject: fix(node): Implement `fs.lchown` (and `process.getegid`) (#24418) Closes https://github.com/denoland/deno/issues/21260. Part of https://github.com/denoland/deno/issues/18218. Implements `node:fs.lchown`, and enables the node_compat test for it. The test uses `process.getegid`, which we didn't have implemented, so I went ahead and implemented that as well to get the test working. --- ext/node/ops/os/mod.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'ext/node/ops/os/mod.rs') diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs index 5b32113e5..b7374dc32 100644 --- a/ext/node/ops/os/mod.rs +++ b/ext/node/ops/os/mod.rs @@ -75,6 +75,25 @@ where Ok(euid) } +#[op2(fast)] +pub fn op_getegid
(state: &mut OpState) -> Result ();
+ permissions.check_sys("getegid", "node:os.getegid()")?;
+ }
+
+ #[cfg(windows)]
+ let egid = 0;
+ #[cfg(unix)]
+ // SAFETY: Call to libc getegid.
+ let egid = unsafe { libc::getegid() };
+
+ Ok(egid)
+}
+
#[op2]
#[serde]
pub fn op_cpus (state: &mut OpState) -> Result