| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
- static build option under cygwin
- _WIN32 build more modules with BUILD_STATIC
- _WIN32 remove older build config
|
|
|
|
| |
https://learn.microsoft.com/en-us/windows/win32/winsock/scatter-gather-i-o-2
|
|
|
|
| |
(e.g. LI_DECLARE_EXPORTS is not currently used)
|
| |
|
|
|
|
|
| |
alas, does not seem to make a difference;
across many core interfaces, MS handles non-ASCII UTF-8 poorly
|
|
|
|
|
|
|
|
|
|
|
| |
open(), stat(), mkdir() on UTF-8 paths
lighttpd provides large file support and 64-bit time,
so provide override to use _stati64() (and _wstati64())
Additionally, provide custom function to support stat on UTF-8 path,
which must first be converted to wide-char and _wstati64(),
since _stati64() is naive and does not properly support UTF-8.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: TCP half-close is reported by WSAPoll() as POLLHUP event.
(e.g. TCP half-close from shutdown(fd, SHUT_WR))
TODO: If performance tests of select() vs WSAPoll() do not show a
a measurable difference, select() may be preferred over WSAPoll().
For now, make both "poll" and "select" available options in _WIN32.
(On other platforms, lighttpd build does not built code to use select()
when poll() is available on the platform.)
|
| |
|
|
|
|
| |
Also, adjust mod_ssi to remove assumption that "/tmp" is temp directory
|
| |
|
|
|
|
|
|
|
|
| |
_WIN32 disable deflate.cache-dir due to NTFS filesystem limitations
deflate.cache-dir renames files into place and this fails if the
files are open (source or destination). deflate.cache-dir would
have to be reworked to fail gracefully and continue serving request
if the final rename fails.
|
| |
|
|
|
|
| |
The adjustments are minimal; not intended to be complete.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
mingw does not support strftime() "%F %T"
|
|
|
|
| |
use -lws2_32 instead of -lwsock32
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_WIN32 SOCKET (long long unsigned) handles are assigned differently
from how POSIX allocates file descriptors (lowest number available).
On _WIN32, the SOCKET descriptor should not be used to index an array
of (fdnode *), so this commit provides an alternative method to store
(fdnode *) for use by select() and by WSAPoll().
select(): commonly used unix select() idioms may be incorrect on _WIN32
https://devblogs.microsoft.com/oldnewthing/20221102-00/?p=107343
https://devblogs.microsoft.com/oldnewthing/20161221-00/?p=94985
WSAPoll():
https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsapoll
As of Windows 10 version 2004, when a TCP socket fails to connect,
(POLLHUP | POLLERR | POLLWRNORM) is indicated.
(note: this was broken in WSAPoll() in all earlier Windows versions)
|
| |
|
|
|
|
| |
_WIN32 select(), WSAPoll() operate only on sockets
|
|
|
|
|
|
|
| |
check WSAGetLastError() after socket operations return non-zero
Notably, MS winsock2 returns WSAEWOULDBLOCK instead of WSAEINPROGRESS
for connect() if socket is configured nonblocking
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_WIN32 is sufficiently different -- *different*; not better -- that
isolating _WIN32 code is clearer than #ifdef _WIN32 in almost every
func in fdevent.c
_WIN32-specific fdevent_socket_* funcs
_WIN32 SOCKET fds must be closed with closesocket(), not close()
_WIN32 HANDLE_FLAG_INHERIT for FD_CLOEXEC
_WIN32 use _sopen_s() without _O_TEMPORARY
Use _sopen_s() without _O_TEMPORARY in fdevent_mkostemp().
_O_TEMPORARY would remove file once last handle to file is closed.
Temporary files in chunkqueue may be closed for large request/response
_WIN32 fdevent_rename() using MoveFileExA
_WIN32 rename() fails if the target file already exists.
Alternatives are MoveFileExA() or ReplaceFileA().
Both of the above fail if either oldfile or newfile are open, so
- not atomic
- may fail sporadically
|
| |
|
| |
|
| |
|
|
|
|
| |
(selective implementations; not complete)
|
|
|
|
| |
_WIN32 FindFirstFile(), FindNextFile(), FindClose()
|
|
|
|
| |
_WIN32 FindFirstFile(), FindNextFile(), FindClose()
|
| |
|
|
|
|
| |
_WIN32 minimal glob() impl for configfile.c:config_parse_file()
|
|
|
|
|
|
|
| |
Use #define __USE_MINGW_ANSI_STDIO 1
to use __mingw_printf() to support %lld %zu and other C11 stdio support
msvcrt.dll only supports C89, and has not been linked into dlls by MS
since VC++ 6
|
|
|
|
| |
Note: behavior under bash.exe might be different than under cmd.exe
|
| |
|
|
|
|
|
|
|
| |
no lstat()
no S_IFSOCK
no S_ISSOCK()
...
|
| |
|
| |
|
|
|
|
| |
wrap fork() and kill()
|
| |
|
| |
|
|
|
|
|
|
| |
sys/queue.h
LICENSE: BSD 3-clause
(not _WIN32 specific)
|