1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/lib/util/tftw.h
Andreas Schneider 7abf1d0339 util: Add file tree walk interface
Add tftw() utility to emulate nftw() behavior with a userdata pointer.
This is repurposed from the csync project custom file tree walker.

Signed-off-by: Justin Stephenson <jstephen@redhat.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Bjoern Jacke <bjacke@samba.org>
2019-01-28 15:44:18 +01:00

33 lines
780 B
C

#include <talloc.h>
enum tftw_flags_e {
/* Regular file. */
TFTW_FLAG_FILE,
/* Directory. */
TFTW_FLAG_DIR,
/* Unreadable directory. */
TFTW_FLAG_DNR,
/* Unstatable file. */
TFTW_FLAG_NSTAT,
/* Symbolic link. */
TFTW_FLAG_SLINK,
/* Special file (fifo, ...). */
TFTW_FLAG_SPEC,
/* Directory, all subdirs have been visited. */
TFTW_FLAG_DP,
/* Symbolic link naming non-existing file. */
TFTW_FLAG_SLN
};
/* Maximum number of subdirectories to descend into */
#define TFTW_MAX_DEPTH 50
typedef int (*tftw_walker_fn)(TALLOC_CTX *mem_ctx,
const char *fpath,
const struct stat *sb,
enum tftw_flags_e flag,
void *userdata);
int tftw(TALLOC_CTX *mem_ctx, const char *fpath, tftw_walker_fn fn, size_t depth, void *userdata);