-/* $Id: dir.c,v 1.24 2002-09-03 11:44:54 adam Exp $
+/* $Id: dir.c,v 1.27 2002-10-30 12:58:21 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
int zebra_file_stat (const char *file_name, struct stat *buf,
int follow_links)
{
- if (follow_links)
- return stat(file_name, buf);
- return lstat(file_name, buf);
+#ifndef WIN32
+ if (!follow_links)
+ return lstat(file_name, buf);
+#endif
+ return stat(file_name, buf);
}
struct dir_entry *dir_open (const char *rep, const char *base,
char path[1024];
char full_rep[1024];
size_t pathpos;
- struct dirent *dent;
+ struct dirent dent_s, *dent = &dent_s;
size_t entry_max = 500;
size_t idx = 0;
struct dir_entry *entry;
*full_rep = '\0';
strcat (full_rep, rep);
- logf (LOG_LOG, "dir_open %s", full_rep);
+ logf (LOG_DEBUG, "dir_open %s", full_rep);
if (!(dir = opendir(full_rep)))
{
logf (LOG_WARN|LOG_ERRNO, "opendir %s", rep);
pathpos = strlen(path);
if (!pathpos || path[pathpos-1] != '/')
path[pathpos++] = '/';
- while ((dent = readdir (dir)))
+ while (
+#if _REENTRANT
+ (readdir_r (dir, &dent_s, &dent) == 0 && dent)
+#else
+ (dent = readdir (dir))
+#endif
+ )
{
struct stat finfo;
if (strcmp (dent->d_name, ".") == 0 ||