mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-03 13:28:44 +00:00
fixed win32 build
This commit is contained in:
1 parent
7ad045bc33
commit
4f716e2b9a
3 files changed
+28
-24
No files matched your search
@@ -13,7 +13,6 @@ all:
|
|||||||
# -DNO_CGI - disable CGI support (-5kb)
|
# -DNO_CGI - disable CGI support (-5kb)
|
||||||
# -DNO_SSL - disable SSL functionality (-2kb)
|
# -DNO_SSL - disable SSL functionality (-2kb)
|
||||||
# -DCONFIG_FILE=\"file\" - use `file' as the default config file
|
# -DCONFIG_FILE=\"file\" - use `file' as the default config file
|
||||||
# -DNO_SSI - disable SSI support (-4kb)
|
|
||||||
# -DHAVE_STRTOUI64 - use system strtoui64() function for strtoull()
|
# -DHAVE_STRTOUI64 - use system strtoui64() function for strtoull()
|
||||||
|
|
||||||
|
|
||||||
@@ -54,19 +53,20 @@ solaris:
|
|||||||
# Assuming that studio is installed in d:\vc6, change VC variable below to
|
# Assuming that studio is installed in d:\vc6, change VC variable below to
|
||||||
# the correct path on your system. Run "d:\vc6\bin\nmake windows"
|
# the correct path on your system. Run "d:\vc6\bin\nmake windows"
|
||||||
|
|
||||||
VC= d:\vc2010\vc
|
VC= q:\vc6
|
||||||
#VC= d:\vc6
|
OUT= c:\out
|
||||||
SDK= d:\sdk\v7.1
|
|
||||||
#WINDBG= /Zi /DDEBUG /Od /DDEBUG
|
#WINDBG= /Zi /DDEBUG /Od /DDEBUG
|
||||||
WINDBG= /DNDEBUG /Os
|
WINDBG= /DNDEBUG #/Os
|
||||||
WINFLAGS= /MT /TC /nologo /W4 $(WINDBG) /I $(VC)/include \
|
CLFLAGS= /MD /TC /nologo /W4 /c $(WINDBG) /I $(VC)/include
|
||||||
/I $(SDK)\include /link /incremental:no /libpath:$(VC)\lib \
|
LINKFLAGS= /incremental:no /libpath:$(VC)\lib ws2_32.lib
|
||||||
/libpath:$(SDK)/lib ws2_32.lib
|
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
$(VC)\bin\cl.exe mongoose.c $(WINFLAGS) \
|
$(VC)\bin\cl main.c $(CLFLAGS) /Fo$(OUT)\main.obj
|
||||||
/DLL /DEF:win32\dll.def /out:_$(PROG).dll
|
$(VC)\bin\cl mongoose.c $(CLFLAGS) /Fo$(OUT)\mongoose.obj
|
||||||
$(VC)\bin\cl.exe mongoose.c main.c $(WINFLAGS) /out:$(PROG).exe
|
$(VC)\bin\link $(OUT)\mongoose.obj $(LINKFLAGS) \
|
||||||
|
/DLL /DEF:win32\dll.def /out:$(OUT)\_$(PROG).dll
|
||||||
|
$(VC)\bin\link $(OUT)\main.obj $(OUT)\mongoose.obj $(LINKFLAGS) \
|
||||||
|
/out:$(OUT)\$(PROG).exe
|
||||||
|
|
||||||
# Build for Windows under MinGW
|
# Build for Windows under MinGW
|
||||||
#MINGWDBG= -DDEBUG -O0
|
#MINGWDBG= -DDEBUG -O0
|
||||||
|
|||||||
+14
-8
@@ -66,10 +66,10 @@ typedef long off_t;
|
|||||||
#define strerror(x) _ultoa(x, (char *) _alloca(sizeof(x) *3 ), 10)
|
#define strerror(x) _ultoa(x, (char *) _alloca(sizeof(x) *3 ), 10)
|
||||||
#endif // _WIN32_WCE
|
#endif // _WIN32_WCE
|
||||||
|
|
||||||
#define EPOCH_DIFF 0x019DB1DED53E8000ULL // 116444736000000000 nsecs
|
|
||||||
#define RATE_DIFF 10000000 // 100 nsecs
|
|
||||||
#define MAKEUQUAD(lo, hi) ((uint64_t)(((uint32_t)(lo)) | \
|
#define MAKEUQUAD(lo, hi) ((uint64_t)(((uint32_t)(lo)) | \
|
||||||
((uint64_t)((uint32_t)(hi))) << 32))
|
((uint64_t)((uint32_t)(hi))) << 32))
|
||||||
|
#define RATE_DIFF 10000000 // 100 nsecs
|
||||||
|
#define EPOCH_DIFF MAKEUQUAD(0xd53e8000, 0x019db1de)
|
||||||
#define SYS2UNIX_TIME(lo, hi) \
|
#define SYS2UNIX_TIME(lo, hi) \
|
||||||
(time_t) ((MAKEUQUAD((lo), (hi)) - EPOCH_DIFF) / RATE_DIFF)
|
(time_t) ((MAKEUQUAD((lo), (hi)) - EPOCH_DIFF) / RATE_DIFF)
|
||||||
|
|
||||||
@@ -651,6 +651,10 @@ static int pthread_cond_signal(pthread_cond_t *cv) {
|
|||||||
return SetEvent(*cv) == 0 ? -1 : 0;
|
return SetEvent(*cv) == 0 ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int pthread_cond_broadcast(pthread_cond_t *cv) {
|
||||||
|
return PulseEvent(*cv) == 0 ? -1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int pthread_cond_destroy(pthread_cond_t *cv) {
|
static int pthread_cond_destroy(pthread_cond_t *cv) {
|
||||||
return CloseHandle(*cv) == 0 ? -1 : 0;
|
return CloseHandle(*cv) == 0 ? -1 : 0;
|
||||||
}
|
}
|
||||||
@@ -804,7 +808,7 @@ static int mg_stat(const char *path, struct mgstat *stp) {
|
|||||||
if (GetFileAttributesExW(wbuf, GetFileExInfoStandard, &info) != 0) {
|
if (GetFileAttributesExW(wbuf, GetFileExInfoStandard, &info) != 0) {
|
||||||
stp->size = MAKEUQUAD(info.nFileSizeLow, info.nFileSizeHigh);
|
stp->size = MAKEUQUAD(info.nFileSizeLow, info.nFileSizeHigh);
|
||||||
stp->mtime = SYS2UNIX_TIME(info.ftLastWriteTime.dwLowDateTime,
|
stp->mtime = SYS2UNIX_TIME(info.ftLastWriteTime.dwLowDateTime,
|
||||||
info.ftLastWriteTime.dwHighDateTime);
|
info.ftLastWriteTime.dwHighDateTime);
|
||||||
stp->is_directory =
|
stp->is_directory =
|
||||||
info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
||||||
ok = 0; // Success
|
ok = 0; // Success
|
||||||
@@ -916,16 +920,17 @@ static int start_thread(struct mg_context *ctx, mg_thread_func_t func,
|
|||||||
return hThread == NULL ? -1 : 0;
|
return hThread == NULL ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static HANDLE dlopen(const char *dll_name, int flags) {
|
static HANDLE dlopen(const char *dll_name, int flags) {
|
||||||
wchar_t wbuf[PATH_MAX];
|
wchar_t wbuf[PATH_MAX];
|
||||||
|
|
||||||
flags = 0; // Unused
|
flags = 0; // Unused
|
||||||
to_unicode(dll_name, wbuf, ARRAY_SIZE(wbuf));
|
to_unicode(dll_name, wbuf, ARRAY_SIZE(wbuf));
|
||||||
|
|
||||||
return LoadLibraryW(wbuf);
|
return LoadLibraryW(wbuf);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(NO_CGI)
|
#if !defined(NO_CGI)
|
||||||
|
#define SIGKILL 0
|
||||||
static int kill(pid_t pid, int sig_num) {
|
static int kill(pid_t pid, int sig_num) {
|
||||||
(void) TerminateProcess(pid, sig_num);
|
(void) TerminateProcess(pid, sig_num);
|
||||||
(void) CloseHandle(pid);
|
(void) CloseHandle(pid);
|
||||||
@@ -958,7 +963,7 @@ static pid_t spawn_process(struct mg_connection *conn, const char *prog,
|
|||||||
&si.hStdOutput, 0, MG_TRUE, DUPLICATE_SAME_ACCESS);
|
&si.hStdOutput, 0, MG_TRUE, DUPLICATE_SAME_ACCESS);
|
||||||
|
|
||||||
// If CGI file is a script, try to read the interpreter line
|
// If CGI file is a script, try to read the interpreter line
|
||||||
interp = conn->ctx->options[OPT_CGI_INTERPRETER];
|
interp = conn->ctx->config->cgi_interpreter;
|
||||||
if (interp == NULL) {
|
if (interp == NULL) {
|
||||||
line[2] = '\0';
|
line[2] = '\0';
|
||||||
(void) mg_snprintf(conn, cmdline, sizeof(cmdline), "%s%c%s",
|
(void) mg_snprintf(conn, cmdline, sizeof(cmdline), "%s%c%s",
|
||||||
@@ -982,7 +987,7 @@ static pid_t spawn_process(struct mg_connection *conn, const char *prog,
|
|||||||
}
|
}
|
||||||
|
|
||||||
(void) mg_snprintf(conn, cmdline, sizeof(cmdline), "%s%s%s",
|
(void) mg_snprintf(conn, cmdline, sizeof(cmdline), "%s%s%s",
|
||||||
interp, interp[0] == '\0' ? "" : " ", prog);
|
interp, interp[0] == '\0' ? "" : " ", prog);
|
||||||
|
|
||||||
(void) mg_snprintf(conn, line, sizeof(line), "%s", dir);
|
(void) mg_snprintf(conn, line, sizeof(line), "%s", dir);
|
||||||
change_slashes_to_backslashes(line);
|
change_slashes_to_backslashes(line);
|
||||||
@@ -2325,8 +2330,9 @@ static void handle_file_request(struct mg_connection *conn, const char *path,
|
|||||||
conn->request_info.status_code, msg, date, lm, etag,
|
conn->request_info.status_code, msg, date, lm, etag,
|
||||||
mime_vec.len, mime_vec.ptr, cl, range);
|
mime_vec.len, mime_vec.ptr, cl, range);
|
||||||
|
|
||||||
if (strcmp(conn->request_info.request_method, "HEAD") != 0)
|
if (strcmp(conn->request_info.request_method, "HEAD") != 0) {
|
||||||
send_file_data(conn, fp, cl);
|
send_file_data(conn, fp, cl);
|
||||||
|
}
|
||||||
(void) fclose(fp);
|
(void) fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-5
@@ -2,15 +2,13 @@ LIBRARY
|
|||||||
EXPORTS
|
EXPORTS
|
||||||
mg_start
|
mg_start
|
||||||
mg_stop
|
mg_stop
|
||||||
mg_get_option
|
mg_read
|
||||||
mg_set_option
|
|
||||||
mg_set_callback
|
|
||||||
mg_write
|
mg_write
|
||||||
mg_printf
|
mg_printf
|
||||||
mg_get_header
|
mg_get_header
|
||||||
mg_get_var
|
mg_get_var
|
||||||
|
mg_get_qsvar
|
||||||
|
mg_get_cookie
|
||||||
mg_version
|
mg_version
|
||||||
mg_show_usage_string
|
|
||||||
mg_modify_passwords_file
|
mg_modify_passwords_file
|
||||||
mg_md5
|
mg_md5
|
||||||
mg_get_cookie
|
|
||||||
Reference in new issue
Block a user