summaryrefslogtreecommitdiff
path: root/sftp-usergroup.h
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2022-09-19 10:46:00 +0000
committerDamien Miller <djm@mindrot.org>2022-09-19 20:51:14 +1000
commit9d952529113831fb3071ab6e408d2726fd72e771 (patch)
treee62e047ff441a29395857294ed5970a4fedb4746 /sftp-usergroup.h
parent8ff680368b0bccf88ae85d4c99de69387fbad7a6 (diff)
downloadopenssh-git-9d952529113831fb3071ab6e408d2726fd72e771.tar.gz
upstream: use users-groups-by-id@openssh.com sftp-server extension
(when available) to fill in user/group names for directory listings. Implement a client-side cache of see uid/gid=>user/group names. ok markus@ OpenBSD-Commit-ID: f239aeeadfa925a37ceee36ee8b256b8ccf4466e
Diffstat (limited to 'sftp-usergroup.h')
-rw-r--r--sftp-usergroup.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/sftp-usergroup.h b/sftp-usergroup.h
new file mode 100644
index 00000000..2711faf3
--- /dev/null
+++ b/sftp-usergroup.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2022 Damien Miller <djm@mindrot.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* sftp client user/group lookup and caching */
+
+/* Lookup uids/gids and populate cache */
+void get_remote_user_groups_from_glob(struct sftp_conn *conn, glob_t *g);
+void get_remote_user_groups_from_dirents(struct sftp_conn *conn, SFTP_DIRENT **d);
+
+/* Return user/group name from cache or NULL if not found */
+const char *ruser_name(uid_t uid);
+const char *rgroup_name(uid_t gid);