fix after merge
This commit is contained in:
parent
5ba95a99c8
commit
3a7aae5188
|
@ -31,6 +31,7 @@ pub use self::blocktxn::BlockTxn;
|
|||
pub use self::compactblock::CompactBlock;
|
||||
pub use self::feefilter::FeeFilter;
|
||||
pub use self::filterload::FilterLoad;
|
||||
pub use self::filterload::FilterFlags;
|
||||
pub use self::filterclear::FilterClear;
|
||||
pub use self::filteradd::FilterAdd;
|
||||
pub use self::getaddr::GetAddr;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#![allow(dead_code)]
|
||||
#![allow(dead_code)] // TODO: remove after connecting with Client
|
||||
|
||||
use bit_vec::BitVec;
|
||||
use murmur3::murmur3_32;
|
||||
|
@ -7,16 +7,16 @@ use ser::serialize;
|
|||
use message::types;
|
||||
use script::Script;
|
||||
|
||||
/// Constant optimized to create large differences in the seed for different values of hash_functions_num.
|
||||
/// Constant optimized to create large differences in the seed for different values of `hash_functions_num`.
|
||||
const SEED_OFFSET: u32 = 0xFBA4C795;
|
||||
|
||||
/// Filter, which controls data relayed over connection.
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug)]
|
||||
pub struct ConnectionFilter {
|
||||
/// Bloom filter, if set.
|
||||
bloom: Option<ConnectionBloom>,
|
||||
/// Filter update type.
|
||||
filter_flags: u8,
|
||||
filter_flags: types::FilterFlags,
|
||||
}
|
||||
|
||||
/// Connection bloom filter
|
||||
|
@ -30,6 +30,15 @@ struct ConnectionBloom {
|
|||
tweak: u32,
|
||||
}
|
||||
|
||||
impl Default for ConnectionFilter {
|
||||
fn default() -> Self {
|
||||
ConnectionFilter {
|
||||
bloom: None,
|
||||
filter_flags: types::FilterFlags::None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ConnectionFilter {
|
||||
#[cfg(test)]
|
||||
/// Create new connection with given filter params
|
||||
|
@ -58,8 +67,8 @@ impl ConnectionFilter {
|
|||
if bloom.contains(instruction_data) {
|
||||
is_match = true;
|
||||
|
||||
let is_update_needed = self.filter_flags == 1
|
||||
|| (self.filter_flags == 2 && (script.is_pay_to_public_key() || script.is_multisig_script()));
|
||||
let is_update_needed = self.filter_flags == types::FilterFlags::All
|
||||
|| (self.filter_flags == types::FilterFlags::PubKeyOnly && (script.is_pay_to_public_key() || script.is_multisig_script()));
|
||||
if is_update_needed {
|
||||
bloom.insert(&serialize(&OutPoint {
|
||||
hash: transaction_hash.clone(),
|
||||
|
@ -163,7 +172,7 @@ mod tests {
|
|||
use std::iter::{Iterator, repeat};
|
||||
use test_data;
|
||||
use message::types;
|
||||
use chain::{Transaction, RepresentH256};
|
||||
use chain::Transaction;
|
||||
use primitives::hash::H256;
|
||||
use primitives::bytes::Bytes;
|
||||
use super::{ConnectionFilter, ConnectionBloom};
|
||||
|
@ -173,7 +182,7 @@ mod tests {
|
|||
filter: Bytes::from(repeat(0u8).take(1024).collect::<Vec<_>>()),
|
||||
hash_functions: 10,
|
||||
tweak: 5,
|
||||
flags: 0,
|
||||
flags: types::FilterFlags::None,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -365,7 +365,7 @@ impl Server for SynchronizationServer {
|
|||
fn serve_getheaders(&self, peer_index: usize, message: types::GetHeaders, id: Option<u32>) -> Option<IndexedServerTask> {
|
||||
if let Some(best_common_block) = self.locate_known_block_header(message.block_locator_hashes) {
|
||||
trace!(target: "sync", "Best common block header with peer#{} is block#{}: {:?}", peer_index, best_common_block.number, best_common_block.hash.to_reversed_str());
|
||||
let server_task_index = id.map_or_else(|| ServerTaskIndex::None, |id| ServerTaskIndex::Final(id));
|
||||
let server_task_index = id.map_or_else(|| ServerTaskIndex::None, ServerTaskIndex::Final);
|
||||
let task = IndexedServerTask::new(ServerTask::ServeGetHeaders(best_common_block, message.hash_stop), server_task_index);
|
||||
Some(task)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue