From 76dd31055ed98b48bb93e21fe3b1aaf612922481 Mon Sep 17 00:00:00 2001 From: Sergey Lyubka Date: Sun, 5 Feb 2012 13:04:52 +0000 Subject: [PATCH] Exporting SystemDrive environment variable for CGIs on Windows --- mongoose.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mongoose.c b/mongoose.c index f216af36..7e80fe27 100644 --- a/mongoose.c +++ b/mongoose.c @@ -513,6 +513,9 @@ static void sockaddr_to_string(char *buf, size_t len, inet_ntop(usa->sa.sa_family, usa->sa.sa_family == AF_INET ? (void *) &usa->sin.sin_addr : (void *) &usa->sin6.sin6_addr, buf, len); +#elif defined(_WIN32) + // Only Windoze Vista (and newer) have inet_ntop() + strncpy(buf, inet_ntoa(usa->sin.sin_addr), len); #else inet_ntop(usa->sa.sa_family, (void *) &usa->sin.sin_addr, buf, len); #endif @@ -2877,10 +2880,15 @@ static void prepare_cgi_environment(struct mg_connection *conn, addenv(blk, "PATH=%s", s); #if defined(_WIN32) - if ((s = getenv("COMSPEC")) != NULL) + if ((s = getenv("COMSPEC")) != NULL) { addenv(blk, "COMSPEC=%s", s); - if ((s = getenv("SYSTEMROOT")) != NULL) + } + if ((s = getenv("SYSTEMROOT")) != NULL) { addenv(blk, "SYSTEMROOT=%s", s); + } + if ((s = getenv("SystemDrive")) != NULL) { + addenv(blk, "SystemDrive=%s", s); + } #else if ((s = getenv("LD_LIBRARY_PATH")) != NULL) addenv(blk, "LD_LIBRARY_PATH=%s", s);