Martin Willi
bc9fd3735d
parser-helper: Detect absolute pathnames and concatenate paths on Windows
2014-06-04 15:53:09 +02:00
Martin Willi
67b3bcd13d
utils: Provide a path_absolute() function to check path for non-relativeness
...
The usually used trivial '/' check won't work on Windows platforms.
2014-06-04 15:53:09 +02:00
Martin Willi
2496eaffde
utils: Return plain drive letter as base/pathname for drive letters on Windows
2014-06-04 15:53:08 +02:00
Martin Willi
8182631bc3
utils: Support Windows path separators in path_basename/dirname
2014-06-04 15:53:08 +02:00
Martin Willi
a43f1e5631
utils: Define a platform directory separator character used in paths
2014-06-04 15:53:08 +02:00
Martin Willi
41bb8ba5d2
windows: Provide a getpass() implementation
2014-06-04 15:53:08 +02:00
Martin Willi
c5447bc2f5
chunk: On Windows, chunk_map() opens files in binary mode
2014-06-04 15:53:08 +02:00
Martin Willi
89e46c41f1
windows: Include for Vista instead of defining CondVar/SRWLock functions ourself
2014-06-04 15:53:05 +02:00
Martin Willi
8120b3c339
windows: Don't redeclare inet_ntop/pton if already defined
2014-06-04 15:53:05 +02:00
Martin Willi
1f3bf4175d
windows: Check for existence of error codes before defining them
2014-06-04 15:53:05 +02:00
Martin Willi
89c3ff6d2c
windows: Check for clock_gettime() function itself as well
...
CLOCK_THREAD_CPUTIME_ID seems to be defined sometimes even if clock_gettime() is
missing.
2014-06-04 15:53:05 +02:00
Martin Willi
3d50dd47ef
windows: Overload sleep() cancellable when it is defined in <unistd.h>
2014-06-04 15:53:04 +02:00
Martin Willi
9df2a04a93
sqlite: Avoid name clash when building on Windows
2014-06-04 15:53:04 +02:00
Martin Willi
8e1c0d15a9
mysql: Add Windows support
...
As the mysql_config script is not available for Windows, we use a hardcoded
library name and no additional CFLAGS. This builds fine against the binary
MySQL Connector/C distribution.
2014-06-04 15:53:04 +02:00
Martin Willi
efcf249aeb
windows: Provide a close(2) that can close both file handles and sockets
2014-06-04 15:53:04 +02:00
Martin Willi
740404d481
chunk: Fallback to recv() on Windows chunk_from_fd() when operating on socket
2014-06-04 15:53:04 +02:00
Martin Willi
9ff1716029
windows: Don't use function macros to overload send/recv() and friends
...
While the macro versions would not catch non-function invocations, we actually
have to use catch all to support the sender_t.send() function.
2014-06-04 15:53:03 +02:00
Martin Willi
06c33ebf6a
openssl: Fix includes to prevent <winsock2.h> to complain about include order
2014-06-04 15:53:03 +02:00
Martin Willi
4f310a2e75
openssl: Undef OpenSSLs X509_NAME defined by <wincrypt.h>
2014-06-04 15:53:02 +02:00
Martin Willi
b7a4d44bd0
openssl: Check and link against libeay32 instead of libcrypto on Windows
...
Most Windows OpenSSL builds come with the crypto library named libeay32.
2014-06-04 15:53:02 +02:00
Martin Willi
f3c809e615
windows: Provide a strndup(3) replacement
2014-06-04 15:53:02 +02:00
Martin Willi
8f3a3656d3
sha1: Include <library.h> instead of directly including <arpa/inet.h>
...
On Windows we don't have <arpa/inet.h>
2014-06-04 15:53:02 +02:00
Martin Willi
2dbb719b76
x509: Undef OCSP_RESPONSE from <wincrypt.h> before using it
2014-06-04 15:53:02 +02:00
Martin Willi
4163421f91
plugins: Don't link with -rdynamic on Windows
2014-06-04 15:53:02 +02:00
Martin Willi
110e42361e
unit-tests: Uninline dlopen() and friends, make more dynamic, fix dlerror()
...
As the error string contains a newline, we have to remove that before
returning the string.
2014-06-04 15:53:02 +02:00
Martin Willi
204098a752
thread-value: Immediately cleanup all Windows TLS values on destroy
2014-06-04 15:53:02 +02:00
Martin Willi
9dec601f30
windows: Prevent queueing of multiple thread cancel APCs
...
This avoids any races during cleanup invocation if multiple cancel() requests
come in.
2014-06-04 15:53:01 +02:00
Martin Willi
0fa9c95811
windows: Provide a complete native Windows threading backend
2014-06-04 15:53:01 +02:00
Martin Willi
a48570a046
windows: Provide a cancellable usleep(), but with ms resolution only
2014-06-04 15:53:01 +02:00
Martin Willi
986a577097
windows: Add a sleep function acting as cancellation point
2014-06-04 15:53:01 +02:00
Martin Willi
266ee0a190
windows: Provide a sched_yield() implementation
2014-06-04 15:53:01 +02:00
Martin Willi
4de7401a98
windows: Provide a time_monotonic() based on GetTickCount64()
2014-06-04 15:53:01 +02:00
Martin Willi
965e846cc3
library: Change init/deinit order to allow utils to depend on threading
2014-06-04 15:53:01 +02:00
Martin Willi
c46cee6f6d
chunk: Don't depend on pthread directly
2014-06-04 15:53:00 +02:00
Martin Willi
f1c9653e04
utils: Don't directly depend on pthread
2014-06-04 15:53:00 +02:00
Martin Willi
eb94f58595
strerror: Don't directly depend on pthread
2014-06-04 15:53:00 +02:00
Martin Willi
a506b922f3
windows: Provide a strdup variant safe when passing zero-length strings
2014-06-04 15:53:00 +02:00
Martin Willi
d8e56dfe32
unit-tests: Don't test Unix socket stream/services on Windows
2014-06-04 15:53:00 +02:00
Martin Willi
adaa9f3942
unit-tests: Use send/recv on socket in watcher tests
...
Windows does not support read/write on sockets.
2014-06-04 15:53:00 +02:00
Martin Willi
aa5b49c037
stream: Separate TCP/Unix stream helpers from stream/service implementations
...
This allows us to disable Unix sockets cleanly on Windows. Replaces some
read/write calls with recv/send counterparts, as Winsock does not like
read/writes.
2014-06-04 15:53:00 +02:00
Martin Willi
93f78d8225
watcher: Add Windows support
...
Instead of a pipe we use a TCP socketpair (can't select() a _pipe()), and
Windsock2 send/recv functions instead of read/write.
Currently supported (and required) are file descriptors provided by Winsock
only; we might use a separate mechanism for traditional file handles if
required (or switch to Windows events and WaitForMultipleObjects) for a future
version.
2014-06-04 15:52:59 +02:00
Martin Willi
df0769299a
windows: Map WSAGetLastError() to errno failures in wrapped send/recv/from/to
2014-06-04 15:52:59 +02:00
Martin Willi
20021277f2
windows: Add send/recv and sendto/recvfrom wrappers supporting MSG_DONTWAIT
2014-06-04 15:52:59 +02:00
Martin Willi
82fcb80276
windows: Implement socketpair() using TCP sockets
2014-06-04 15:52:59 +02:00
Martin Willi
87a79e6a03
windows: Add utils_init/deinit functions to initialize Winsock2
2014-06-04 15:52:59 +02:00
Martin Willi
fb81820796
windows: Provide a setenv() wrapper
2014-06-04 15:52:59 +02:00
Martin Willi
7458952575
unit-tests: Use Windows path for chunk tests, and socket functions if required
2014-06-04 15:52:59 +02:00
Martin Willi
a8c86599e4
unit-tests: Don't depend on sockaddr_un to test invalid host_t family
2014-06-04 15:52:59 +02:00
Martin Willi
4aaf0320d0
unit-tests: Add support for Windows build
...
Instead of signals we catch Windows exceptions. Currently not supported are
timers, which is more a convenience thing anyway.
2014-06-04 15:52:58 +02:00
Martin Willi
a2216a2868
windows: Fix up PRI* printf formatters when building against own backend
2014-06-04 15:52:58 +02:00