From 46e8c332cd63e52ccbd9ac3c895de4b59b9ac2f3 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 31 Jul 2007 16:45:16 +0000 Subject: 2007-08-01 Tatsuhiro Tsujikawa Make a2netcompat.h include a2io.h to fix compilation error: * src/a2netcompat.h * src/SocketCore.cc: Removed include of a2io.h * src/Util.cc: Removed include of a2io.h Gather time related functions to a2time.h: * src/a2time.h: New file. * src/DefaultPeerStorage.cc * src/SimpleLogger.cc * src/Util.{h, cc} * src/SimpleRandomizer.h * src/TimeA2.{h,cc} * src/DownloadCommand.cc * src/main.cc Removed #ifdef __MINGW32__ since gai_strerror is included in a2netcompat.h: * src/NameResolver.cc Fixed compilation error without openssl: * src/SocketCore.{h,cc}: Moved include of openssl/err.h to SocketCore.h Added default block to suppress compiler warnings: * src/MetalinkRequestInfo.cc (AccumulateNonP2PUrl::operator()) 2007-07-26 Ross Smith II MinGW build enhancements. The following files are added: * src/gai_strerror.{c,h} * src/gettimeofday.{c,h} Changes to support the above new files: * configure.ac * src/Makefile.am * src/a2netcompat.h * src/TimeA2.cc * src/DefaultPeerStorage.cc * src/NameResolver.cc: removed mingw_strerror() function. * src/SocketCore.cc: removed mingw_strerror() function. Miscellaneous MinGW build fixes. * src/a2io.h: Use _lseeki64() instead of lseek() * src/common.h * src/DefaultFileAllocator.cc * src/GlowFileAllocator.cc * src/main.cc: Moved #include "prefs.h" to quiet compile error. * src/NameResolver.cc (callback): Changed int32_t to int. (resolve): Changed int32_t to int. * src/Platform.cc * src/Platform.h * test/MultiDiskWriterTest.cc * test/PeerMessageUtilTest.cc * src/localtime_r.c: Add DeleteCriticalSection() and at exit(). Other enhancements and fixes. * src/HttpRequestCommand.cc (executeInternal) Use non-blocking socket for HTTPS (MinGW only). * src/SocketCore.cc: (error): New function to abstract errno/WSAGetLastError(). (errorMsg): New function to abstract errno/WSAGetLastError(). (initiateSecureConnection): Added more detailed error reporting. * src/SocketCore.h: Added private variable blocking, to allow proper handling of OpenSSL psuedo-errors. * src/message.h (EX_SSL_INIT_FAILURE) (EX_SSL_IO_ERROR) (EX_SSL_PROTOCOL_ERROR) (EX_SSL_UNKNOWN_ERROR) (EX_SSL_CONNECT_ERROR) (EX_SOCKET_BLOCKING) (EX_SOCKET_NONBLOCKING) (EX_SOCKET_UNKNOWN_ERROR) * src/Util.cc (setGlobalSignalHandler): Renamed signal to sig as signal is a reserved name. (httpGMT): Fixed typo. --- src/SocketCore.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/SocketCore.h') diff --git a/src/SocketCore.h b/src/SocketCore.h index 4ec5f36d..6c35b1ef 100644 --- a/src/SocketCore.h +++ b/src/SocketCore.h @@ -42,6 +42,7 @@ #ifdef HAVE_LIBSSL // for SSL # include +# include #endif // HAVE_LIBSSL #ifdef HAVE_LIBGNUTLS # include @@ -58,6 +59,7 @@ private: int32_t sockfd; // reference counter for this object. int32_t use; + bool blocking; bool secure; #ifdef HAVE_LIBSSL // for SSL @@ -79,6 +81,9 @@ private: void init(); SocketCore(int32_t sockfd); + static int error(); + static const char *errorMsg(); + static const char *errorMsg(const int err); public: SocketCore(); ~SocketCore(); @@ -123,12 +128,12 @@ public: */ void establishConnection(const string& host, int32_t port); - void setNonBlockingMode() const; + void setNonBlockingMode(); /** * Makes this socket blocking mode. */ - void setBlockingMode() const; + void setBlockingMode(); /** * Closes the connection of this socket. @@ -207,6 +212,5 @@ public: bool operator<(const SocketCore& s) { return sockfd < s.sockfd; } - }; #endif // _D_SOCKET_CORE_H_ -- cgit