diff options
author | Justus Winter <justus@gnupg.org> | 2016-04-18 21:53:28 +0200 |
---|---|---|
committer | Justus Winter <justus@gnupg.org> | 2016-05-19 22:27:37 +0200 |
commit | 13efe6721a370c38b65e0da3d33f310f42cfa05f (patch) | |
tree | 5c05409d7e27b9cb0842af4bbe7bf242b7659ab7 /libfshelp/fshelp.h | |
parent | 3416078aa58b095566e559b7dbd9c9da4d1fc5d5 (diff) |
Unify the short-circuit translator logic
* libdiskfs/dir-lookup.c (short_circuited_callback1): Move function to
libfshelp.
(diskfs_S_dir_lookup): Use the function from libfshelp instead.
* libdiskfs/fsys-getroot.c (diskfs_S_fsys_getroot): Adapt accordingly.
* libdiskfs/trans-callback.c (_diskfs_translator_callback2_fn): Likewise.
* libfshelp/fetch-root.c (fshelp_short_circuited_callback1): New function.
* libfshelp/fshelp.h (struct fshelp_stat_cookie): New definition.
(fshelp_short_circuited_callback1): New prototype.
* libnetfs/dir-lookup.c (short_circuited_callback1): Drop function.
(netfs_S_dir_lookup): Use the function from libfshelp instead.
* libnetfs/fsys-getroot.c (netfs_S_fsys_getroot): Adapt accordingly.
* libnetfs/trans-callback.c (_netfs_translator_callback2_fn): Likewise.
Diffstat (limited to 'libfshelp/fshelp.h')
-rw-r--r-- | libfshelp/fshelp.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libfshelp/fshelp.h b/libfshelp/fshelp.h index d04c0561..ecd9335d 100644 --- a/libfshelp/fshelp.h +++ b/libfshelp/fshelp.h @@ -148,6 +148,22 @@ typedef error_t (*fshelp_fetch_root_callback1_t) (void *cookie1, void *cookie2, uid_t *uid, gid_t *gid, char **argz, size_t *argz_len); +/* A cookie for fshelp_short_circuited_callback1. Such a structure + must be passed to the call to fshelp_fetch_root. */ +struct fshelp_stat_cookie2 +{ + io_statbuf_t *statp; + mode_t *modep; + void *next; +}; + +/* A callback function for short-circuited translators. S_ISLNK and + S_IFSOCK must be handled elsewhere. */ +error_t fshelp_short_circuited_callback1 (void *cookie1, void *cookie2, + uid_t *uid, gid_t *gid, + char **argz, size_t *argz_len); + + /* This routine is called by fshelp_fetch_root to fetch more information. Return an unauthenticated node for the file itself in *UNDERLYING and *UNDERLYING_TYPE (opened with FLAGS). COOKIE1 is the cookie passed in |