dirlist
char **dirlist, *dirname;
dirlist = gl.gl_pathv;
dirlist = onefile;
while ((dirname = *dirlist++)) {
if (dirname[0] == '-' && *dirlist == NULL &&
u_int32_t dirlist; /* Offset of directory list in
uint32_t dirlist; /* Offset of directory list in string table */
dirlist = COND_SWAP(hdr.dirlist);
if (dl + dirlist < dl) {
dl += dirlist;
dbg("invalid directory list offset %d", dirlist);
if (pread(fd, p, dirlistlen + 1, strtab + dirlist) !=
dirlistlen + 1, strtab + dirlist,
struct dirlist *dirp;
struct dirlist *dirp;
char *dirlist;
dirlist = strtab + COND_SWAP(hdr->dirlist);
if (*dirlist != '\0')
while ((p = strsep(&dirlist, ":")) != NULL)
hdr.dirlist = 0;
ccharp **dirlist;
dirlist = &bindirs;
dirlist = &mandirs;
dirlist = &sourcedirs;
*dirlist = realloc(*dirlist, (i + 1) * sizeof(char *));
(*dirlist)[i] = NULL;
decolonify(argv[optind], dirlist, &i);
LIST_ENTRY(dirlist) link;
static LIST_HEAD(, dirlist) dirlist;
lessp(const struct dirlist *a, const struct dirlist *b)
equal(const struct dirlist *a, const struct dirlist *b)
struct dirlist *dp, *dp2, *last;
LIST_FOREACH(dp2, &dirlist, link) {
LIST_INSERT_HEAD(&dirlist, dp, link);
struct dirlist *dp, *dp2;
for (dp = LIST_FIRST(&dirlist); dp; dp = dp2) {
struct dirlist *dp;
struct dirlist *ex_dirl;
struct dirlist *ex_defdir;
put_exlist(struct dirlist *dp, XDR *xdrsp, struct dirlist *adp, int *putdefp,
struct dirlist *dirhead;
dirhead = (struct dirlist *)NULL;
dirhead = (struct dirlist *)NULL;
dirhead = (struct dirlist *)NULL;
static char *add_expdir(struct dirlist **, char *, int);
static void add_dlist(struct dirlist **, struct dirlist *,
static int check_options(struct dirlist *);
static int chk_host(struct dirlist *, struct sockaddr *, int *, int *,
static struct dirlist *dirp_search(struct dirlist *, char *);
static void free_dir(struct dirlist *);
static void hang_dirp(struct dirlist *, struct grouplist *,
static int put_exlist(struct dirlist *, XDR *, struct dirlist *,
add_expdir(struct dirlist **dpp, char *cp, int len)
struct dirlist *dp;
dp = malloc(sizeof (struct dirlist));
if (dp == (struct dirlist *)NULL)
dp->dp_right = (struct dirlist *)NULL;
static int scan_tree(struct dirlist *, struct sockaddr *);
hang_dirp(struct dirlist *dp, struct grouplist *grp, struct exportlist *ep,
struct dirlist *dp2;
add_dlist(struct dirlist **dpp, struct dirlist *newdp, struct grouplist *grp,
struct dirlist *dp;
dp->dp_left = (struct dirlist *)NULL;
static struct dirlist *
dirp_search(struct dirlist *dp, char *dirp)
chk_host(struct dirlist *dp, struct sockaddr *saddr, int *defsetp,
scan_tree(struct dirlist *dp, struct sockaddr *saddr)
free_dir(struct dirlist *dp)
check_options(struct dirlist *dp)
struct dirlist *dp_left;
struct dirlist *dp_right;