X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fguestfsd.c;h=9691053fb9f084f36b1418043df0dbe2c51ab3f1;hb=0a302b78780bad541debf3d3c2f46ad42afecef3;hp=64cf87fc7802ac127bb44a2ffb5d2435c67c0e97;hpb=33bc8fb6d25143ebba54f34c8ea6f5841a71f3e5;p=libguestfs.git diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index 64cf87f..9691053 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -60,6 +60,10 @@ static char *read_cmdline (void); #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); @@ -182,8 +186,16 @@ main (int argc, char *argv[]) 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. * @@ -327,10 +339,15 @@ main (int argc, char *argv[]) /* 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. */