-/* $Cambridge: exim/src/src/lookups/dsearch.c,v 1.1 2004/10/07 13:10:01 ph10 Exp $ */
+/* $Cambridge: exim/src/src/lookups/dsearch.c,v 1.6 2009/11/16 19:50:38 nm4 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2004 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
/* The idea for this code came from Matthew Byng-Maddick, but his original has
-been heavily reworked a lot for Exim 4 (and it now uses stat() rather than a
-directory scan). */
+been heavily reworked a lot for Exim 4 (and it now uses stat() (more precisely:
+lstat()) rather than a directory scan). */
#include "../exim.h"
/* See local README for interface description. We open the directory to test
whether it exists and whether it is searchable. However, we don't need to keep
-it open, because the "search" can be done by a call to stat() rather than
+it open, because the "search" can be done by a call to lstat() rather than
actually scanning through the list of files. */
void *
* Find entry point *
*************************************************/
-/* See local README for interface description. We use stat() instead of
+/* See local README for interface description. We use lstat() instead of
scanning the directory, as it is hopefully faster to let the OS do the scanning
for us. */
return DEFER;
}
-if (Ustat(filename, &statbuf) >= 0)
+if (Ulstat(filename, &statbuf) >= 0)
{
*result = string_copy(keystring);
return OK;
if (errno == ENOENT) return FAIL;
save_errno = errno;
-*errmsg = string_sprintf("%s: stat failed", filename);
+*errmsg = string_sprintf("%s: lstat failed", filename);
errno = save_errno;
return DEFER;
}