#define AI_ADDRCONFIG 0
#endif
+#ifndef MAX
+#define MAX(a,b) ((a)>(b)?(a):(b))
+#endif
+
int verbose = 0;
static int print_shell_quote (FILE *stream, const struct printf_info *info, const void *const *args);
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.
*
/* Fork into the background. */
if (!dont_fork) {
+#ifndef WIN32
if (daemon (0, 1) == -1) {
perror ("daemon");
exit (EXIT_FAILURE);
}
+#else /* WIN32 */
+ 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 */
}
/* Enter the main loop, reading and performing actions. */