Skip to content

Commit 92963eb

Browse files
committed
Support platforms with only 32-bit atomics
Given there is only one instance in our code of `AtomicU64` its simplest to just remove it rather than try to add some kind of wrapper.
1 parent e2e8847 commit 92963eb

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use prelude::*;
3636
use io;
3737
use alloc::collections::LinkedList;
3838
use sync::{Arc, Mutex, MutexGuard, FairRwLock};
39-
use core::sync::atomic::{AtomicBool, AtomicU64, Ordering};
39+
use core::sync::atomic::{AtomicBool, AtomicU32, Ordering};
4040
use core::{cmp, hash, fmt, mem};
4141
use core::ops::Deref;
4242
use core::convert::Infallible;
@@ -540,7 +540,7 @@ pub struct PeerManager<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: D
540540

541541
/// Used to track the last value sent in a node_announcement "timestamp" field. We ensure this
542542
/// value increases strictly since we don't assume access to a time source.
543-
last_node_announcement_serial: AtomicU64,
543+
last_node_announcement_serial: AtomicU32,
544544

545545
our_node_secret: SecretKey,
546546
ephemeral_key_midstate: Sha256Engine,
@@ -594,7 +594,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, OM: Deref, L: Deref> PeerManager<D
594594
/// minute should suffice.
595595
///
596596
/// (C-not exported) as we can't export a PeerManager with a dummy route handler
597-
pub fn new_channel_only(channel_message_handler: CM, onion_message_handler: OM, our_node_secret: SecretKey, current_time: u64, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
597+
pub fn new_channel_only(channel_message_handler: CM, onion_message_handler: OM, our_node_secret: SecretKey, current_time: u32, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
598598
Self::new(MessageHandler {
599599
chan_handler: channel_message_handler,
600600
route_handler: IgnoringMessageHandler{},
@@ -620,7 +620,7 @@ impl<Descriptor: SocketDescriptor, RM: Deref, L: Deref> PeerManager<Descriptor,
620620
/// cryptographically secure random bytes.
621621
///
622622
/// (C-not exported) as we can't export a PeerManager with a dummy channel handler
623-
pub fn new_routing_only(routing_message_handler: RM, our_node_secret: SecretKey, current_time: u64, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
623+
pub fn new_routing_only(routing_message_handler: RM, our_node_secret: SecretKey, current_time: u32, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
624624
Self::new(MessageHandler {
625625
chan_handler: ErroringMessageHandler::new(),
626626
route_handler: routing_message_handler,
@@ -684,7 +684,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
684684
/// incremented irregularly internally. In general it is best to simply use the current UNIX
685685
/// timestamp, however if it is not available a persistent counter that increases once per
686686
/// minute should suffice.
687-
pub fn new(message_handler: MessageHandler<CM, RM, OM>, our_node_secret: SecretKey, current_time: u64, ephemeral_random_data: &[u8; 32], logger: L, custom_message_handler: CMH) -> Self {
687+
pub fn new(message_handler: MessageHandler<CM, RM, OM>, our_node_secret: SecretKey, current_time: u32, ephemeral_random_data: &[u8; 32], logger: L, custom_message_handler: CMH) -> Self {
688688
let mut ephemeral_key_midstate = Sha256::engine();
689689
ephemeral_key_midstate.input(ephemeral_random_data);
690690

@@ -701,7 +701,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
701701
our_node_secret,
702702
ephemeral_key_midstate,
703703
peer_counter: AtomicCounter::new(),
704-
last_node_announcement_serial: AtomicU64::new(current_time),
704+
last_node_announcement_serial: AtomicU32::new(current_time),
705705
logger,
706706
custom_message_handler,
707707
secp_ctx,
@@ -2001,7 +2001,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
20012001
.or(self.message_handler.onion_message_handler.provided_node_features());
20022002
let announcement = msgs::UnsignedNodeAnnouncement {
20032003
features,
2004-
timestamp: self.last_node_announcement_serial.fetch_add(1, Ordering::AcqRel) as u32,
2004+
timestamp: self.last_node_announcement_serial.fetch_add(1, Ordering::AcqRel),
20052005
node_id: PublicKey::from_secret_key(&self.secp_ctx, &self.our_node_secret),
20062006
rgb, alias, addresses,
20072007
excess_address_data: Vec::new(),

0 commit comments

Comments
 (0)