summaryrefslogtreecommitdiff
path: root/conf/cf-lex.l
diff options
context:
space:
mode:
Diffstat (limited to 'conf/cf-lex.l')
-rw-r--r--conf/cf-lex.l10
1 files changed, 10 insertions, 0 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 9ea05e9d..07392228 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -27,13 +27,16 @@
%{
#undef REJECT /* Avoid name clashes */
+#include "sysdep/config.h"
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
#include <unistd.h>
#include <libgen.h>
+#ifdef HAVE_GLOB
#include <glob.h>
+#endif
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -461,7 +464,9 @@ cf_include(char *arg, int alen)
struct include_file_stack *base_ifs = ifs;
int new_depth, rv, i;
char *patt;
+#ifdef HAVE_GLOB
glob_t g = {};
+#endif
new_depth = ifs->depth + 1;
if (new_depth > MAX_INCLUDE_DEPTH)
@@ -491,6 +496,7 @@ cf_include(char *arg, int alen)
return;
}
+#ifdef HAVE_GLOB
/* Expand the pattern */
rv = glob(patt, GLOB_ERR | GLOB_NOESCAPE, NULL, &g);
if (rv == GLOB_ABORTED)
@@ -526,6 +532,10 @@ cf_include(char *arg, int alen)
globfree(&g);
enter_ifs(ifs);
+#else
+ cf_error("Pattern match unsupported %s: %m", patt);
+ return;
+#endif /* !HAVE_GLOB */
}
static int