diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-01-11 21:38:24 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-01-11 21:41:07 +0000 |
commit | b7e5a70bb1a81d05cf4838f483c4618806f2b792 (patch) | |
tree | 745eb24c205c4a93cd311c85aad278a30e308c3a | |
parent | Merge pull request #3091 (diff) | |
download | monero-b7e5a70bb1a81d05cf4838f483c4618806f2b792.tar.xz |
epee: detect strptime, use std::get_time as fallback
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | contrib/epee/include/storages/portable_storage_val_converters.h | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b27c10bd..a0508adfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -868,5 +868,9 @@ option(INSTALL_VENDORED_LIBUNBOUND "Install libunbound binary built from source CHECK_C_COMPILER_FLAG(-std=c11 HAVE_C11) +include(CheckLibraryExists) +include(CheckFunctionExists) + check_library_exists(c memset_s "string.h" HAVE_MEMSET_S) check_library_exists(c explicit_bzero "strings.h" HAVE_EXPLICIT_BZERO) +check_function_exists(strptime HAVE_STRPTIME) diff --git a/contrib/epee/include/storages/portable_storage_val_converters.h b/contrib/epee/include/storages/portable_storage_val_converters.h index 5d9664a65..36bb28627 100644 --- a/contrib/epee/include/storages/portable_storage_val_converters.h +++ b/contrib/epee/include/storages/portable_storage_val_converters.h @@ -150,8 +150,14 @@ POP_WARNINGS else if (boost::regex_match (from, boost::regex("\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\dZ"))) { // Convert to unix timestamp +#ifdef HAVE_STRPTIME struct tm tm; if (strptime(from.c_str(), "%Y-%m-%dT%H:%M:%S", &tm)) +#else + std::tm tm = {}; + std::istringstream ss(from); + if (ss >> std::get_time(&tm, "%Y-%m-%dT%H:%M:%S")) +#endif to = std::mktime(&tm); } else ASSERT_AND_THROW_WRONG_CONVERSION(); |