#define _BSD_SOURCE /* for daemon(3) */
#ifdef HAVE_WINDOWS_H
-#include <windows.h>
+# include <windows.h>
#endif
#include <stdio.h>
#include <sys/wait.h>
#ifdef HAVE_PRINTF_H
-#include <printf.h>
+# include <printf.h>
#endif
#include "c-ctype.h"
/* This is only a hint. If not defined, ignore it. */
#ifndef AI_ADDRCONFIG
-#define AI_ADDRCONFIG 0
+# define AI_ADDRCONFIG 0
+#endif
+
+#ifndef MAX
+# define MAX(a,b) ((a)>(b)?(a):(b))
#endif
int verbose = 0;
#endif
#endif
+#ifdef WIN32
+static int
+daemon (int nochdir, int noclose)
+{
+ fprintf (stderr,
+ "On Windows the daemon does not support forking into the "
+ "background.\nYou *must* run the daemon with the -f option.\n");
+ exit (EXIT_FAILURE);
+}
+#endif /* WIN32 */
+
/* Location to mount root device. */
const char *sysroot = "/sysroot"; /* No trailing slash. */
int sysroot_len = 8;
#endif
#ifdef WIN32
-#define setenv(n,v,f) _putenv(n "=" v)
+# define setenv(n,v,f) _putenv(n "=" v)
#endif
/* Set up a basic environment. After we are called by /init the
* environment is essentially empty.
setenv ("SHELL", "/bin/sh", 1);
setenv ("LC_ALL", "C", 1);
+#ifndef WIN32
/* We document that umask defaults to 022 (it should be this anyway). */
umask (022);
+#else
+ /* This is the default for Windows anyway. It's not even clear if
+ * Windows ever uses this -- the MSDN documentation for the function
+ * contains obvious errors.
+ */
+ _umask (0);
+#endif
/* Get the vmchannel string.
*