From d2e38aab3626d3564f24b7ec1aacb54a4e1f086c Mon Sep 17 00:00:00 2001 From: Nils Maier Date: Thu, 29 May 2014 17:24:50 +0200 Subject: [PATCH] Use _setmode to set binary mode in mingw The _CRT_fmode stuff was never working correctly anyway, and is entirely unsupported in mingw-w64 these days, it seems. --- src/AppleTLSContext.cc | 2 +- src/LibgnutlsTLSContext.cc | 2 +- src/LibsslTLSContext.cc | 2 +- src/Platform.cc | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/AppleTLSContext.cc b/src/AppleTLSContext.cc index af32a76b..10e034fd 100644 --- a/src/AppleTLSContext.cc +++ b/src/AppleTLSContext.cc @@ -343,7 +343,7 @@ bool AppleTLSContext::tryAsPKCS12(const std::string& certfile) { #if defined(__MAC_10_6) std::stringstream ss; - BufferedFile(certfile.c_str(), "rb").transfer(ss); + BufferedFile(certfile.c_str(), BufferedFile::READ).transfer(ss); auto data = ss.str(); if (data.empty()) { A2_LOG_ERROR("Couldn't read certificate file."); diff --git a/src/LibgnutlsTLSContext.cc b/src/LibgnutlsTLSContext.cc index 743bb72f..98d0a2d7 100644 --- a/src/LibgnutlsTLSContext.cc +++ b/src/LibgnutlsTLSContext.cc @@ -110,7 +110,7 @@ bool GnuTLSContext::addCredentialFile(const std::string& certfile, bool GnuTLSContext::addP12CredentialFile(const std::string& p12file) { std::stringstream ss; - BufferedFile(p12file.c_str(), "rb").transfer(ss); + BufferedFile(p12file.c_str(), BufferedFile::READ).transfer(ss); auto datastr = ss.str(); const gnutls_datum_t data = { (unsigned char*)datastr.c_str(), diff --git a/src/LibsslTLSContext.cc b/src/LibsslTLSContext.cc index c8419ced..413607d0 100644 --- a/src/LibsslTLSContext.cc +++ b/src/LibsslTLSContext.cc @@ -156,7 +156,7 @@ bool OpenSSLTLSContext::addCredentialFile(const std::string& certfile, bool OpenSSLTLSContext::addP12CredentialFile(const std::string& p12file) { std::stringstream ss; - BufferedFile(p12file.c_str(), "rb").transfer(ss); + BufferedFile(p12file.c_str(), BufferedFile::READ).transfer(ss); auto data = ss.str(); void *ptr = const_cast(data.c_str()); diff --git a/src/Platform.cc b/src/Platform.cc index 0939882b..c9ce101e 100644 --- a/src/Platform.cc +++ b/src/Platform.cc @@ -158,7 +158,9 @@ bool Platform::setUp() #endif // HAVE_WINSOCK2_H #ifdef __MINGW32__ - unsigned int _CRT_fmode = _O_BINARY; + (void)_setmode(_fileno(stdin), _O_BINARY); + (void)_setmode(_fileno(stdout), _O_BINARY); + (void)_setmode(_fileno(stderr), _O_BINARY); #endif // __MINGW32__ return true;