diff options
author | Zachary Michaels <mikezackles@gmail.com> | 2014-08-20 11:57:29 -0400 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2014-09-15 22:38:46 +0200 |
commit | 9db881864db916310c11270c1939db700689c9a3 (patch) | |
tree | 742b1cd07dde7581f9a3090698da29152cecf3ee /src/p2p/net_node.inl | |
parent | Use LTO by default (diff) | |
download | monero-9db881864db916310c11270c1939db700689c9a3.tar.xz |
Fix time_t serialization issue
On 32-bit MinGW-w64, time_t is int32_t. The existing code was serializing
time_t directly and implicitly assuming that time_t is int64_t. This commit
formalizes that assumption by serializing int64_t directly and casting to
time_t where appropriate.
Thanks go to greatwolf for reporting this issue.
monero-project/bitmonero#88
Diffstat (limited to 'src/p2p/net_node.inl')
-rw-r--r-- | src/p2p/net_node.inl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 870e7572e..954d794b7 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -624,7 +624,9 @@ namespace nodetool peerlist_entry pe_local = AUTO_VAL_INIT(pe_local); pe_local.adr = na; pe_local.id = pi; - time(&pe_local.last_seen); + time_t last_seen; + time(&last_seen); + pe_local.last_seen = static_cast<int64_t>(last_seen); m_peerlist.append_with_peer_white(pe_local); //update last seen and push it to peerlist manager @@ -1102,7 +1104,9 @@ namespace nodetool peerlist_entry pe; pe.adr.ip = context.m_remote_ip; pe.adr.port = port_l; - time(&pe.last_seen); + time_t last_seen; + time(&last_seen); + pe.last_seen = static_cast<int64_t>(last_seen); pe.id = peer_id_l; this->m_peerlist.append_with_peer_white(pe); LOG_PRINT_CCONTEXT_L2("PING SUCCESS " << epee::string_tools::get_ip_string_from_int32(context.m_remote_ip) << ":" << port_l); |