aboutsummaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorBrent Cook <bcook@openbsd.org>2015-10-18 09:28:10 -0500
committerBrent Cook <bcook@openbsd.org>2015-10-18 09:28:10 -0500
commit0197a589691274055e3a6f47a3652a6714d676bc (patch)
tree9a2c16f2cb86605522ce747c1a71bfd0c23db389 /crypto
parentc8918dd0be1bbadfcebfc6631bd63f3b3e83befd (diff)
downloadportable-0197a589691274055e3a6f47a3652a6714d676bc.tar.gz
portable-0197a589691274055e3a6f47a3652a6714d676bc.tar.bz2
portable-0197a589691274055e3a6f47a3652a6714d676bc.zip
Windows compatibility fixes
VS2013 has trouble with relative include paths for apps/openssl, so move certhash_win/apps_win.c back to apps/openssl. gmtime_r on mingw64 fails with negative time_t, override gmtime_s fails all of the time unit tests, override SHUT_RD/WR are defined in newer mingw64 headers, check before overriding
Diffstat (limited to 'crypto')
-rw-r--r--crypto/compat/timegm.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/crypto/compat/timegm.c b/crypto/compat/timegm.c
index 0655ce0..5a9e600 100644
--- a/crypto/compat/timegm.c
+++ b/crypto/compat/timegm.c
@@ -188,6 +188,18 @@ static int __secs_to_tm(long long t, struct tm *tm)
188 return 0; 188 return 0;
189} 189}
190 190
191#ifdef _WIN32
192struct tm *__gmtime_r(const time_t *t, struct tm *tm)
193{
194 if (__secs_to_tm(*t, tm) < 0) {
195 errno = EOVERFLOW;
196 return 0;
197 }
198 tm->tm_isdst = 0;
199 return tm;
200}
201#endif
202
191time_t timegm(struct tm *tm) 203time_t timegm(struct tm *tm)
192{ 204{
193 struct tm new; 205 struct tm new;