/* */ #include "Platform.h" #ifdef HAVE_LIBSSL # include # include #endif // HAVE_LIBSSL #ifdef HAVE_LIBGNUTLS # include #endif // HAVE_LIBGNUTLS #ifdef HAVE_WINSOCK2_H #ifndef _WIN32_WINNT # define _WIN32_WINNT 0x501 #endif // _WIN32_WINNT #include #undef ERROR #ifdef HAVE_WS2TCPIP_H # include #endif // HAVE_WS2TCPIP_H #endif // HAVE_WINSOCK2_H #include "DlAbortEx.h" #include "message.h" #include /* _fmode */ #include /* _O_BINARY */ #include // For setlocale, LC_* namespace aria2 { bool Platform::_initialized = false; Platform::Platform() { setUp(); } Platform::~Platform() { tearDown(); } bool Platform::setUp() { if (_initialized) { return false; } _initialized = true; #ifdef ENABLE_NLS setlocale (LC_CTYPE, ""); setlocale (LC_MESSAGES, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif // ENABLE_NLS #ifdef HAVE_LIBSSL // for SSL initialization SSL_load_error_strings(); SSL_library_init(); #endif // HAVE_LIBSSL #ifdef HAVE_LIBGNUTLS gnutls_global_init(); #endif // HAVE_LIBGNUTLS #ifdef HAVE_WINSOCK2_H WSADATA wsaData; memset(reinterpret_cast(&wsaData), 0, sizeof(wsaData)); if (WSAStartup(MAKEWORD(1, 1), &wsaData)) { throw DL_ABORT_EX(MSG_WINSOCK_INIT_FAILD); } #endif // HAVE_WINSOCK2_H #ifdef __MINGW32__ unsigned int _CRT_fmode = _O_BINARY; #endif // __MINGW32__ return true; } bool Platform::tearDown() { if (!_initialized) { return false; } _initialized = false; #ifdef HAVE_LIBGNUTLS gnutls_global_deinit(); #endif // HAVE_LIBGNUTLS #ifdef HAVE_WINSOCK2_H WSACleanup(); #endif // HAVE_WINSOCK2_H return true; } bool Platform::isInitialized() { return _initialized; } } // namespace aria2